Growing up in Dundrum, South Dublin, Clarke played with local sides Greystones, Park Celtic and St. Joseph's Boys as well as being part of a very successful school side at Oatlands College which were both Leinster and All-Ireland school champions, where he played alongside James Kavanagh, who he would go on to play with later in his career. It was at St. Joseph's where Clarke was spotted by League of Ireland clubs and he trained with Bray Wanderers due to their partnership with St. Joseph's, but it was UCD manager Martin Russell, along with Kavanagh, who convinced Clarke to sign for the Students. Clarke earned a place on the College’s scholarship programme, studying Economics and Politics played with their Under 19's initially, where he impressed enough to be called up to the first team.
UCD
Clarke was first called up to the first team in September 2011, with his debut coming off the bench in a 3–0 win over Dundalk at the UCD Bowl. He played 2 more league games before the end of the 2011 season. UCD's 2012 season was Clarke's first full season in senior football and it saw him become a mainstay in the side, playing 20 league games. The first goal of his senior career came on 19 April 2013, when he scored in a 3–2 defeat away to Drogheda United. UCD had a good season that year finishing in a solid 9th place, with Clarke having a brilliant season personally, scoring 8 goals and missing just 3 of their 33 league games. 2014 was a huge disappointment for both UCD and Clarke however. Aaron Callaghan replaced Russell as manager but Callaghan never got to see the best of Clarke as he struggled badly with injuries throughout the entire season, playing just 6 league games and scoring once, as the Students were relegated from the League of Ireland Premier Division following an 11th place finish and a 5–1 aggregate defeat to Galway United in the Promotion/relegation playoff.
Limerick
Following UCD's relegation to the League of Ireland First Division, when offered the chance to sign for Limerick by his formed manager Martin Russell, Clarke jumped at the chance and was announced by the Superblues ahead of the 2015 season. With Limerick starting the season at Jackman Park while they waited for their new stadium to be completed and the poor facilities at Jackman proved to be something that the side badly struggled with as they sat at the bottom of the table come the halfway point of the season. Once they moved into the Markets Field, the team and Clarke's form skyrocketed and they produced incredible form to somehow get themselves off the foot of the table with Clarke bagging 6 goals in 32 games along the way but unfortunately they lost 2–1 on aggregate to First Division side Finn Harps in the Promotion/relegation playoff.
Shamrock Rovers
On 15 December 2015, Clarke returned to Dublin and signed for Shamrock Rovers. Rovers manager Pat Fenlon played Clarke as a support striker rather than his usual position on the wing. He played Clarke in 29 league games but the season was a disappointment to everyone at the club as they finished 22 points off Champions Dundalk in 4th place, were embarrassed in the FAI Cup, losing 5–0 at home to Cork City in the Quarter final and being knocked out of the UEFA Europa League in the first round, losing 3–1 on aggregate to RoPS of Finland, in Clarke's first two European appearances of his career.
Return to Limerick
With 2016 seeing Limerick promoted back to the Premier Division, Clarke was happy to return to Martin Russell's side and on 19 December 2016, he was announced as a Limerick player once again. With Limerick in bad form, Russell was sacked in April and replaced by Neil McDonald, who preferred to use Clarke as a winger and often as a full-back also at times. Clarke's only goal of the season came in a 5–3 win over Bray Wanderers as Limerick's form improved which saw them stay in the Premier Division with games to spare and also saw them narrowly miss an FAI Cup Final at the Aviva Stadium as they lost 1–0 to Munster rivals Cork City in the Semi final.
On 1 December 2017, Clarke signed for his third Dublin club, St Patrick's Athletic ahead of the 2018 season. On 9 March 2018, Clarke scored his first goal for Pat's in a 1–0 win over Bohemians at Dalymount Park in the Dublin derby. His next goal came on 30 March 2018, scoring in a 2–1 defeat to Derry City at the Ryan McBride Brandywell Stadium. He followed that up by scoring his side's fifth goal in a comprehensive 5–0 win at home to Bray Wanderers. Clarke opened the scoring in a 2–0 win over Sligo Rovers on 15 May. On 17 July 2018 he played against Premier League side Newcastle United in a friendly at Richmond Park. He scored in a 1–1 draw away to Champions Cork City on 19 August 2018. He finished the season with 5 goals in 36 competitions in all competitions.
2019 season
Clarke signed a new 1 year contract with the club on 19 November 2018. Struggles with injuries, coupled with new manager Harry Kenny mainly deploying formations that had no out and out wingers, resulted in little game time for Clarke in the early part of the season. He made his first appearance of the season on 8 March 2019, coming off the bench in the 65th minute in a 1–0 loss to Shamrock Rovers in a sold out Richmond Park. On 12 April 2019, he scored an injury time equaliser away to Cork City, his first goal of the season. Clarke earned his side all 3 points when he scored the winner away to Waterford on 5 July 2019. 6 days later he made his first European appearance in 3 years when he came off the bench for Gary Shaw in a 2–0 defeat to IFK Norrköping of Sweden. He played the full 90 minutes in a friendly against UEFA Europa League Champions Chelsea, of the Premier League on 13 July, being marked by Emerson and then Premier League winner Marcos Alonso. He made his 200th League of Ireland Premier Division appearance in the final game of the season against Champions Dundalk at Oriel Park.
On 4 January 2020, it was announced that Clarke had recently signed a new contract with the club for the 2020 season under new manager Stephen O'Donnell.
Career statistics
Professional appearances – correct as of 12 March 2020.