Leeds United 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. He made his U23 debut at the start of the 2016–17 season. 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." In the summer of 2017, Shackleton signed a two-year professional contract with Leeds United. 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. 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. 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. 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; he made his debut in the 4–1 win after coming on as a substitute. On 13 August 2018, two days after his professional debut, Shackleton signed a three-year contract extension with Leeds United. 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. As the season progressed, the majority of Shackleton's appearances would come as a substitute, 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. 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. With Forshaw still injured, Shackleton started the second leg as Leeds lost 4–2 as Derby progressed to the final against
Aston Villa. 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. 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. 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. 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. In August 2020, Shackleton signed a new four-year contract with Leeds. 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.
Loan to Millwall On 19 July 2022, Shackleton joined Millwall on a season long loan from Leeds.
Sheffield United On 4 July 2024, Shackleton signed for newly relegated Championship club
Sheffield United on a free transfer, after turning down a contract offer from Leeds. ==International career==