Born in Newcastle upon Tyne, Whitmore started his career with local youth side Wallsend Boys Club, where he played until the age of sixteen.[4] In July 2012, he joined Burnley on a two-year scholarship deal.[4] He progressed through the youth side and was named as captain in his second season at the club, signing his first professional contract in March 2014.[5] He was moved into the development squad and remained there for one season before he signed a new one-year contract extension in April 2015.[6] He received a place in the first team squad for the pre-season tour of Scotland in the summer of 2015.[7]
In November 2015, he joined National League side Chester on a one-month youth loan deal.[8] He made his senior debut in the 1–1 league draw with Dover Athletic, playing the full ninety minutes.[9] He made five appearances during his month at the Deva Stadium, however, he turned down the option to extend his loan despite interest from Chester manager Steve Burr.[10]
In January 2016, he instead chose to join National League rivals Gateshead on a loan deal until the end of the season, preferring to move closer to his North East roots.[10][11] He was a first team regular for the club and made twenty-three appearances in all competitions, scoring twice.[9] His performances during the spell convinced Burnley to extend his contract for a further year.[12]
In July 2016, he joined League Two side Morecambe on a loan deal until January 2017.[13] He made his debut in August 2016, in the opening day 2–0 defeat to Grimsby Town.[9] He made 23 appearances for Morecambe during his loan spell, playing regularly despite missing seven games due to suspension after receiving two red cards.[14] Later in January 2017, Whitmore returned to Morecambe until the end of the season on loan after their transfer embargo was lifted.[15]
On 31 July 2017, Whitmore signed for Football League One side Bury on loan until January 2018.[16] He made a total of eleven appearances in all competitions before returning to Burnley having found it difficult to hold down a first team place.[17]