Born in York,[2] Hirst played for York & District Schoolboys and was named their Most Valuable Player at an end of season awards ceremony in June 2013.[3] He later joined York City's youth system and became a first-year scholar in the summer of 2014.[4][5] He made his first-team debut aged 16 as a 73rd-minute substitute for Ryan Jarvis in a 1–1 away draw with Tranmere Rovers in the opening match of the 2014–15 season on 9 August 2014.[6] Having made five first-team appearances, he signed a professional contract with York in November 2014, tying him to the club until the summer of 2016.[7]
Hirst joined Northern Premier League Division One North club Scarborough Athletic on a one-month loan on 29 September 2015, with his chances at York limited.[8][9] He made his debut that day, as a substitute in a 4–2 away defeat to Clitheroe.[9] He returned to York in November 2015, having made four appearances for Scarborough.[10] Hirst was released by York when his contract expired at the end of 2015–16.[11]