Oates began his career at Barnsley after joining them at the age of six[2] and in May 2013, during his second year, signed his first professional contract for one year,[3] this after he was nominated for the "Academy Scholar of the Year".[4]
After spending pre-season in Spain with the Barnsley team Oates was loaned out to Conference North side Gainsborough Trinity on a one-month deal to stand a better chance of getting first team football.[5] Oates made his Gainsborough Trinity debut against Telford United the next day[6] then scored a brace in a 2–2 draw against Worcester City.[7] After making five appearances and scoring twice Oates returned to his parent club despite attempts to extend his loan at Gainsborough Trinity.[8][9]
On 31 January 2014 Oates joined another Conference North side Stockport County in the 2013–14 season.[10] By the end of February he had his loan at Stockport County extended for another month,[11] and scored his first Stockport County goal in a 2–2 draw against Barrow on 5 March 2014, earning himself "Man of the Match".[12] Oates made his return to his parent club after scoring once in twelve appearances and signed a new one-year contract with Barnsley in May 2014.[13]
After coming on as a substitute for Sam Winnall in the 89th minute against Crewe during his Barnsley debut,[14] Oates signed for Conference Premier team Grimsby Town on a one-month loan on 19 September 2014.[15] His Grimsby debut came in a Conference Premier match against Kidderminster Harriers where he came on as a 63rd-minute substitute for Jack Mackreth and fired in from 20 yards on 85 minutes.[16] He made six appearances and scored once for Grimsby Town but returned to his parent club despite Grimsby Town keen to extend for another month.[17][18]
Oates then signed on loan until 20 December 2014[19] for Conference Premier team Chester and made his debut the same day, coming on as a substitute for Craig Hobson in the 65th minute in a 3–1 loss against Macclesfield Town,[20] but then scored two goals in two consecutive games, firstly against Bristol Rovers[21] then Dartford.[22] After scoring twice in seven appearances in all competitions Oates' loan spell with Chester finished and he returned to his parent club.[23]
After returning to Barnsley Oates played his first match on 26 December 2014 coming on as a substitute for Kane Hemmings in the 67th minute of a 1–0 loss against Preston North End,[24] he then provided two assists in separate matches, firstly in a 5–1 loss on 14 February 2015[25] against Crawley Town and then against Rochdale in a 5–0 win in the last game of the season.[26] After this, Oates was among seven players released by the club.[27]
Hartlepool United
After being released by Barnsley, Oates joined League Two side Hartlepool United on 28 May 2015.[28] His first appearance for Hartlepool came as a late substitute in a 2–0 win against Morecambe on the opening day of the 2015–16 season.[29] Oates' first goal came in a 1–1 draw with Barnet.[30] On his final appearance for Hartlepool, Oates scored a goal in a 2–1 win at Tranmere Rovers.[31] Oates was released on 17 May 2018 after making 109 appearances for the club.[32]
Morecambe
In June 2018 it was announced that he would sign for Morecambe on a two-year contract on 1 July 2018, alongside Zak Mills.[33] Oates was released at the end of the 2019–20 season.[34]
Hartlepool United
Oates signed for Hartlepool for a second time on 1 August 2020 following his release from Morecambe.[35] Oates made his debut in his second spell at Hartlepool as a substitute in a 2–1 win against Aldershot Town.[36] His first goal of the 2020–21 season came in his twelfth appearance of the season in a 4–0 win over Stockport County.[37][38] Following an injury to goalkeeperBen Killip against Boreham Wood (and with no goalkeepers on the bench), Oates played in goal for the remainder of the match from the 39th minute.[39] Hartlepool drew the match 2–2 with Oates conceding no goals.[39]
Oates reached double figures for the 2020–21 season with two goals in a 7–2 victory against Wealdstone.[40][41] Following the arrival of Luke Armstrong in December 2020, the pair would form a strong partnership that brought over 30 goals.[42][43] This good form saw him score his highest goal tally for a season of 17 goals.[43]
This included a brace in the play-off eliminator win against Bromley.[44] He was then voted as the Players' and Fans' Player of the Year.[45] Oates then scored the only goal in the play-off semi-final as Hartlepool beat Stockport County to book a place in the final.[46] Oates got the assist in the 2021 National League play-off final as Hartlepool defeated Torquay United on penalties after an initial 1–1 draw to gain promotion back to the Football League.[47]
Mansfield Town
On 8 July 2021, Oates joined Mansfield Town on a two-year contract after the expiration of his contract with Hartlepool.[48] On his exit from Hartlepool, manager Dave Challinor criticised Oates for the manner of his departure in an official statement by the club claiming that he didn't communicate to any of Hartlepool's staff of his final decision.[49] He scored a fifth-minute winner in an FA Cup away tie against Sunderland at the Stadium of Light.[50] Oates started for Mansfield in the 2022 EFL League Two play-off final, a 3–0 defeat to Port Vale, however he finished the season with 12 goals.[51] On 29 October 2022, Oates signed a contract extension until the summer of 2024.[52]
In January 2024, manager Nigel Clough confirmed that Oates would be out for a period of nine months due to a knee injury.[53] On 6 June 2024, Oates was announced to have signed a new one-year contract with the club.[54]
Career statistics
As of match played 1 January 2024
Appearances and goals by club, season and competition
^"Parslow Recalled". Grimsby Town F.C. 20 October 2014. Archived from the original on 20 October 2014. Retrieved 13 June 2015.{{cite web}}: CS1 maint: unfit URL (link)
^"Town Look To Extend Loan Deals". Grimsby Town F.C. 16 October 2014. Archived from the original on 20 October 2014. Retrieved 13 June 2015.{{cite web}}: CS1 maint: unfit URL (link)