Welch-Hayes signed a professional contract with Oxford United in May 2016, at the age of 19.[3] He made his League One debut for the club on 17 August 2016, playing the full 90 minutes of a 2–0 away defeat to Fleetwood Town at Highbury Stadium.[4] He was released without making further appearances in May 2017[5] and joined Bath City on a permanent contract a week or so later.[6] In October 2017 he began a one-month loan at Oxford City[7] and started in the team that beat Colchester United of League Two in a first-round FA Cup upset on 4 November 2017.[8] He was named in the Conference South team of the year in the 2017−18 season just after missing out on the play-offs with Bath City.
In June 2018, he signed for Macclesfield Town, newly promoted to League Two.[9] He scored his first goal for the club at Walsall on 14 December 2019.[10] On 1 February 2020 it was announced that he was one of three players to have left financially troubled Macclesfield during the January 2020 transfer window, following a meeting with the English Football League.[11]
On 21 February 2020, Welch-Hayes joined Colchester United on a contract until summer 2022.[12] He made his debut in Colchester's 3–2 aggregate League Two play-off semi-final defeat to Exeter City on 22 June 2020.[13] He scored his first goal for the club on 3 October 2020 during their 3–3 draw with Oldham Athletic.[14] Welch-Hayes was released at the end of the 2021–22 season.[15]
In June 2022 he signed for Harrogate Town, also of League Two.[16] In January 2023, he joined National League club Altrincham on loan until the end of the season.[17]