Born in Techiman, Bono East Region, Kamaldeen was a part of the Right to Dream Academy before joining its cooperative club in Denmark, FC Nordsjælland, in January 2020. He signed a five-year deal with the club on his 18th birthday and made his debut for the club a week later, 22 February 2020, against SønderjyskE in the Danish Superliga. Kamaldeen started on the bench, but replaced Mohammed Diomande in the 61st minute.
In August 2020, he was handed shirt number 10, after the departure of Mohammed Kudus to Ajax. He has been considered as one of the most promising young talents of the Danish Superliga, regarded for his technical ability, his dribbling and his speed, making him one of the most creative players in the league. During the 2020–21 winter transfer window, his name was linked with several European clubs interested in him, in particular Ajax and Bayer Leverkusen, without this amounting to a move.
After scoring five goals in five games, Kamaldeen was voted the Superliga Player of the Month for April 2021.
On 16 July 2021, Kamaldeen signed a five-year contract with Ligue 1 club Rennes, for a reported €20 million. Thereby, he surpassed the former Danish leagues transfer record holder, Alexander Sørloth.
Kamaldeen made his full debut for Rennes on 8 August 2021 against Lens in the first game of the Ligue 1 season. He scored Rennes' only goal after 14 minutes in a game that ended 1–1.
Kamaldeen received his first call-up for the Ghana national team on 25 September 2020 ahead of the game against Mali. He debuted with Ghana in a 3–0 friendly loss to Mali on 9 October 2020. Kamaldeen was also used in the friendly game against Qatar three days later, when he came on as a substitute for the last 30 minutes.