An academy graduate at Hajduk Split, Karlo was sent out on loan early in his career to Mosor and then Val in the Croatian second tier.
He returned to make his first-team debut in August 2017 and kept a clean sheet in a 1-0 victory against Slaven Belupo.
Making a total of 19 league appearances, he also made headlines when he scored in injury time to secure a 3-2 win against Istra 1961 in March 2018.
In June that year he moved to Club Brugge on a four-year deal and made 12 First Division appearances in his first season with the club. The following August he signed for Italian Serie A club SPAL on loan.
Karlo represented Croatia at the U19 European Championship in 2016 and the following year made his U21 debut against Austria.