After playing youth football with Kippax Athletic, he joined Leeds United's youth academy aged seven and signed his first forms with the club aged nine.[6] He made his U23 debut at the start of the 2016–17 season.[citation needed] In October 2016, former academy director Neil Redfearn praised him as one of the most promising talents at the club, stating that: "I think he's a good footballer, he's got great feet. He's not the biggest, but he's very tenacious. He reads the game well."[6][7] In the summer of 2017, Shackleton signed a two-year professional contract with Leeds United.[8] On 8 May 2018, he was named in Leeds' first team squad by head coach Paul Heckingbottom for their post-season friendlies tour to Myanmar.[9] He made his first start for Leeds' first team in a pre-season friendly 1–1 draw against York City on 20 July 2018, under recently appointed Leeds' head coach Marcelo Bielsa.[10][11] During the pre-season, Shackleton played in a right-back position, as opposed to the central midfielder role he had typically occupied during his youth career.[6]
Shackleton was given the number 46 shirt for the 2018–19 season,[12] and his first call up to a first-team squad came on 11 August 2018, when he was named on the bench against Derby County;[13] he made his debut in the 4–1 win after coming on as a substitute.[13][14] On 13 August 2018, two days after his professional debut, Shackleton signed a three-year contract extension with Leeds United.[13][14] Shackleton made his first start for Leeds the following day in an EFL Cup match against Bolton Wanderers, which Leeds won 2–1, with Shackleton playing as a right-back.[15] He made his full league debut the following week, starting at right back away to Swansea City after replacing captain Liam Cooper who had been injured during warm-up; he assisted Kemar Roofe for Leeds United's first goal in a 2–2 draw.[16] As the season progressed, the majority of Shackleton's appearances would come as a substitute,[6] with 16 of his 19 league appearances during the regular season coming as a substitute,[3] including an appearance as an injury-time substitute against West Bromwich Albion on 1 March 2019 where he managed to assist Ezgjan Alioski for the final goal in a 4–0 win.[17] Leeds finished the regular season in third place after dropping out of the automatic promotion places with three games left after a defeat to 10 man Wigan Athletic on 19 April.[18][19] As a result of their third-place finish, Leeds qualified for the promotion play-offs with Shackleton coming on as a first-half substitute for the injured Adam Forshaw in the first leg of their semi-final against Derby County; a match which Leeds won 1–0.[6][20] With Forshaw still injured, Shackleton started the second leg as Leeds lost 4–2 as Derby progressed to the final against Aston Villa.[6][21] He was one of three players nominated for the club's Young Player Of The Season award for the 2018–19 season alongside Tyler Roberts and Jack Clarke, but lost out on the award with Jack Clarke receiving the award at the club's annual ceremony in April 2019.[22]
Despite being in Marcelo Bielsa's starting XI for much of the beginning of the 2019–20 season, Shackleton became the manager's late-game direct replacement for Pablo Hernández and, to a lesser extent, Mateusz Klich as the season wore on. Named in the starting team against Derby County in the penultimate game of the season on 19 July 2020, Shackleton scored his first league goal for the club at Pride Park in Leeds' 3–1 win, their first game after being confirmed champions of the Championship.[23] Within days he had netted his second goal — against Charlton Athletic (as a substitute for Hernández), which would prove to be Leeds’ final goal scored in the 2019–20 campaign.[24] The 2019–20 season saw Leeds promoted to the Premier League after finishing top of the Championship on 93 points, 10 points clear of second-placed West Bromwich Albion.[25][26]
In August 2020, Shackleton signed a new four-year contract with Leeds.[27] Shackleton made his Premier League debut in the first match of the season against Liverpool on 12 September 2020, coming on as a substitute in the 4–3 defeat at Anfield to the reigning champions.[28][29]
Loan to Millwall
On 19 July 2022, Shackleton joined Millwall on a season long loan.[30]
Sheffield United
On 4 July 2024, Shackleton signed for fellow Championship club Sheffield United on a free transfer, after turning down a contract offer from Leeds.[31]
Shackleton can play as a central midfielder or as a right-back and left-back.[4][6] Shackleton is known for his pace and high level fitness, with Joe Urquhart of the Yorkshire Evening Post writing that "his feet scarcely seem to touch the turf when he skims across it".[4]
Coaching career
In October 2018, Shackleton revealed he was going to undertake his UEFA B Licence in coaching despite being only 19 years of age.[34]