John is the eldest son of Johnny McGahon and Mary McGahon (nee Doyle). He is a nephew of former Louth TD Brendan McGahon.
John was born and raised in Dundalk. He attended Dun Dealgan National School and Dundalk Grammar school. He obtained a BA Honours degree in History & Politics from University College Dublin. He has worked for political organisations in Liverpool, London and Dublin.
John was elected at 23 years of age to Louth County Council on his first attempt in 2014 and was subsequently elected Cathaoirleach of the Dundalk Municipal District for 2017/18.
John has played an active part in the sporting life of Dundalk. He currently plays rugby for Dundalk RFC and is a member of Dundalk Young Irelands. He has also played football with Seatown FC and Dundalk School Boys League.