O'Brien made his debut in a 2–1 victory over Gretna on 7 October 2007, he filled in as a right-back due to all of Celtic's recognised players in that position being injured.
O'Brien was loaned from Celtic to Dunfermline Athletic during the 2006–07 season. He made his debut in their 3–2 Scottish Cup victory over Rangers on 7 January 2007. He scored his first goal in Dunfermline's 4–1 victory over Motherwell on 7 May 2007.
O'Brien joined Dundee United on loan on 31 January until May 2008.
Motherwell
On 8 August 2008, O'Brien signed for Motherwell. O'Brien scored four goals in 64 league appearances for Motherwell, earning selection for the PFA Scotland team of the year in 2009–10.
On 7 May 2010, O'Brien signed a pre-contract agreement with English Championship side Barnsley, then under the stewardship of Mark Robins. He scored his first goal for the club during a 5–2 win againstLeeds United at Oakwell in September 2010. As of 5 April 2013, O'Brien had scored 5 and assisted 8 goals for Barnsley. In May 2014, O'Brien rejected a new contract offer from Barnsley.
Coventry City
Jim O'Brien completed a move to Coventry City on 4 July 2014 on a two-year contract. He made his league debut on the opening day of the 2014/15 season in a 3–2 defeat to Bradford City. He scored a disputed first goal for the club against Sheffield United at Sixfields which has later been credited as an own goal for Blades defender Bob Harris. His second goal for the club was less disputable as he scored from close-range to make the score 2–2 against Peterborough United at the Ricoh Arena on 25 October 2014, the Sky Blues went on to win the game 3–2. On 15 February 2016, O'Brien was loaned out to Scunthorpe United on an emergency basis.
On 17 June 2016, O'Brien completed a move to League One side Shrewsbury Town. He signed a two-year deal arriving as a free agent following his release from Coventry. A first-team regular during the first half of the season, he scored his first goal for the club in an FA Cup second-round replay against Fleetwood Town. He left the club by mutual consent in July 2017, despite having a year left to run on his contract.
On 18 January 2017, O'Brien joined Scottish Premiership side Ross County on loan until the end of the 2016–17 season. He made his debut for the club as a substitute in a Scottish Cup fourth-round tie against Dundee United, scoring the final goal in a 6–2 victory. Having left Shrewsbury in July 2017, O'Brien then signed a two-year contract with Ross County. In September 2018 he signed a short-term contract with Bradford City. He left the club in January 2019.
Notts County
On 8 January 2019, O'Brien signed for Notts County the same day he was released by Bradford City. He was released by Notts County at the end of the 2018–19 season. On 1 August 2019, O'Brien rejoined Notts County.
International career
Although O'Brien represented the Republic of Ireland at under-19 and under-21 levels, he opted to switch allegiances and represent the nation of his birth, citing a chance to work with Craig Levein, who he also worked with while at Dundee United.