Od 1995 do 1996 pracował w strukturach podległych Ministerstwu Spraw Wewnętrznych, następnie w latach 1996–2000 był dyrektorem katolickiego liceum w Dąbrowie Górniczej. W 2000 został zatrudniony w Biurze Edukacji Publicznej Oddziału IPN w Krakowie, zajął się pracami edukacyjnymi, wydawniczymi i wystawienniczymi. W listopadzie 2007 zastąpił Ryszarda Terleckiego na stanowisku dyrektora krakowskiego oddziału Instytutu Pamięci Narodowej. Został też wykładowcą w Wyższej Szkole Filozoficzno-Pedagogicznej Ignatianum w Krakowie. Od 2002 do 2010 sprawował mandat radnego sejmiku małopolskiego (z ramienia Platformy Obywatelskiej). Nie uzyskał reelekcji na kolejną kadencję, jednak ponownie objął mandat radnego w 2011, zastępując jednego z nowo wybranych parlamentarzystów.
W 2014 został zaprezentowany jako kandydat Prawa i Sprawiedliwości na prezydenta Krakowa. W drugiej turze głosowania przegrał z Jackiem Majchrowskim, uzyskał natomiast mandat radnego miejskiego w Krakowie, obejmując następnie funkcję wiceprzewodniczącego rady miejskiej. Zrezygnował z mandatu w trakcie kadencji w związku z objęciem w 2017 funkcji dyrektora Muzeum Armii Krajowej w Krakowie. Zarządzał tą placówką do 2023.