Franks began his football career when he joined the Middlesbrough academy on a two-year scholarship.[2] Franks and Middlesbrough teammate Nathan Porritt were often selected for either wing for England's youth team. After impressing in the reserve side, Franks was rewarded with a professional contract in 2007.[3] Two years later, Franks signed another professional contract with the club.[4]
Franks played his first competitive match for Middlesbrough in their last match of the 2008–09 season on 24 May 2009, against West Ham United.[5] At the beginning of the 2009–10 season, after featuring in the club's pre-season friendlies, Franks began to play in the first team and was given the number 28 shirt.[6] He scored his first goal for Middlesbrough, in a 4–1 win against Doncaster Rovers on 26 January 2010.[7] He added his second on 23 March 2010, against Preston North End[8] and scored again on 5 April 2010, against Plymouth Argyle.[9] Franks made 24 appearances and scored three times in all competitions.
Franks missed the start of the 2010–11 season due to surgery on a recurring back injury that had troubled him in the previous season.[10] In February 2011, he missed out on the chance to join Bournemouth on loan following a training ground injury.[11] Franks made his first appearance of the season on 1 March 2011, coming on as a substitute for Tarmo Kink in the 66th minute, in a 1–1 draw against Norwich City.[12]
On 31 August 2011, Franks signed on loan for League Two side Oxford United until January 2012.[13] However, his debut was delayed when he dislocated his shoulder, resulting in him being sidelined for six weeks and returning to his parent club for treatment.[14] Luckily, his loan spell at Oxford resumed following his recovery.[15] Franks made his debut for the club, coming on as a substitute in the second half in a 4–1 loss against Crawley Town on 19 November 2011. On 16 December 2011, it was announced that Franks had left Oxford United, allowing him to return to his parent club.[16]
On 22 February 2012, Franks and teammate Jonathan Grounds joined League One side Yeovil Town on a month's loan with an option to extend the agreement until the end of the season.[17] On 13 March 2012, Franks scored his first goal against Scunthorpe United in a 2–2 draw,[18] and also netted twice in three days, against Rochdale[19] and Notts County[20] respectively. At the end of the season, Yeovil Town confirmed their interest in signing Franks and Grounds permanently.[21] Franks, himself, refused to rule himself out of re-joining the club on a permanent basis.[22]
On 11 August 2012, Franks made his debut for the club in a 5–0 loss against Crewe in the League Cup[25] and made his league debut in a 0–0 draw against Swindon Town 7 days later.[26] He scored his first goal for the club on 1 September, in a 2–0 win at home against Scunthorpe United.[27] Franks' second goal soon came on 20 September 2012, in a 2–2 draw against Shrewsbury Town.[28] Franks' third goal came on 23 February 2013, in a 2–1 win against Scunthorpe United,[29] followed up by his fourth goal against Crewe Alexandra three days later.[30] In his first season at Hartlepool, which ended with the club being relegated to League Two, Franks made 45 league appearances, scoring four times.
In the 2013–14 season, Franks began well, starting the first two matches before scoring his first goal of the season in a 5–0 win over Bradford City in the first round of the Football League Trophy.[31] On 14 September 2013, Franks scored his first league goal of the season, in a 2–1 win over Accrington Stanley.[32] On 14 December 2013, Franks scored twice, in a 2–2 draw against Cheltenham Town, which ended his goal drought of fifteen games.[33] After the match, Manager Colin Cooper praised Franks' impact as a centre forward.[34] Franks scored his fourth league goal of the season, in a 2–1 win over Morecambe on 29 December 2013.[35] His fifth league goal then later came on 15 March 2014, in a 4–0 win over Bristol Rovers.[36] In his second season at Hartlepool United, Franks made 39 appearances and scored five times.
Ahead of the 2014–15 season, Franks scored three goals in two pre-season friendly matches, against Billingham Town[37] and Bradford Park Avenue.[38] After the match, Manager Cooper praised Franks' performance and said he hoped he would continue with this form.[39] Franks then scored his first league goal of the season, in the first round of the League Cup, which saw Hartlepool United 6–2 to Port Vale.[40] Franks then added three more goals in the FA Cup, scoring twice against East Thurrock United[41] and scoring once against Blyth Spartans.[42] After going twenty seven matches without scoring, Franks scored in a 3–2 win over Plymouth Argyle on 31 January 2015.[43]
At the end of the 2014–15 season,Franks left the club after he turned down a new contract offer on reduced terms.[44]
Ross County
On 18 June 2015, Franks agreed a two-year deal with Scottish Premiership side Ross County.[45] On 13 March 2016, he came on as a late substitute as Ross County beat Hibernian 2–1 to win the Scottish League Cup.[46] He was released in May 2017 after County decided not to renew his contract.[47]
Hartlepool United
On 17 August 2017, Franks signed for Hartlepool United for a second time who were now competing in the National League.[48] Franks scored in three consecutive games early in his second spell in wins against Guiseley, Maidstone United and Dagenham & Redbridge.[49] Amidst the risk of administration for the club, Hartlepool were placed under a transfer embargo.[50] Franks' contract ended in mid-January, with Hartlepool unable to re-sign him.[50]
Wrexham
After leaving Hartlepool, Franks joined Wrexham on 6 February 2018.[51] Franks was released by Wrexham in May 2018.[52]
On 24 January 2020, Franks returned to his hometown to play for Stockton Town, who play in the Northern League Division One, in the ninth-tier of the English football league. Franks said of the transfer: "I'd always spoken to the Chairman about playing for the Club before I finished playing and now this opportunity has arisen I'm genuinely excited to be part of the Club again and help the Club achieve its ambitions."[54] Franks came on as a substitute in his first game, a top-of-the-table match away to Shildon, where he scored with, "what was probably his first touch", in a match Stockton won 2–0.[55]
Whitby Town
On 26 May 2022, Franks signed for Whitby Town on a one-year contract.[56]