Ramaj speelde in de jeugd van SpVgg Cannstatt, VfB Stuttgart en Stuttgarter Kickers, voor hij in 2018 terechtkwam in de opleiding van 1. FC Heidenheim. Bij deze club zat hij in april 2019 voor het eerst op de bank tijdens een wedstrijd van het eerste elftal. In de zomer van dat jaar werd hij een vast lid van het eerste elftal.[1] In de twee seizoenen die volgden kwam de doelman niet tot speelminuten, waarna hij voor een bedrag van circa honderdduizend euro werd overgenomen door Eintracht Frankfurt.[2]
Voor Eintracht maakte hij op 16 januari 2022 zijn professionele debuut, toen hij in de Bundesliga van coach Oliver Glasner mocht starten tegen FC Augsburg bij afwezigheid van Kevin Trapp.[3] Hij zag zijn teamgenoot Daichi Kamada de score openen en daarna moest hij een treffer van Michael Gregoritsch slikken: 1–1. Na de wedstrijd kreeg Ramaj complimenten van zijn coach.[4] In de seizoenen 2021/22 en 2022/23 kwam Ramaj telkens tot één competitieduel achter zijn naam.
In augustus 2023 verkaste de Duitser naar Ajax, waar hij zijn handtekening zette onder een verbintenis voor de duur van vijf seizoenen. In eerste instantie werd in de media een bedrag genoemd van circa acht miljoen euro (met bonussen mogelijk oplopend naar tien miljoen).[5] Volgens latere berichtgeving zou Ajax maximaal vijf miljoen euro betalen voor de overgang van de doelman.[6] Hij werd door Ajax als tweede keeper gehaald, achter eerste keeper Gerónimo Rulli.[7] Nadat Rulli geblesseerd raakte, koos trainer Maurice Steijn ervoor om Jay Gorter op te stellen. Na een blessure van Gorter tijdens de uitwedstrijd tegen FC Utrecht op 22 oktober debuteerde Ramaj als invaller voor Ajax. De wedstrijd ging met 4–3 verloren.[8][9] Tijdens de rest van het seizoen bleef hij de eerste keuze. Tijdens de voorbereiding op het seizoen 2024/25 verkoos de nieuwe trainer Francesco Farioli niet Ramaj, maar Remko Pasveer als eerste doelman.[10]