Why I built this Every time I applied for an internship, I did the same tedious thing: read the job description, guess what interview questions might come up, and google "common interview questions for [role]" — hoping something would stick.
I wanted something smarter.
Something that actually looked at my resume and the specific job description, and told me exactly where I stood and what to prepare.
That's how PrepAI was born — an AI-powered career assistant that analyzes your resume against a job description and generates a match score, a skill-gap breakdown, personalized interview questions, and a 7-day preparation roadmap. 🔗 Live: prep-ai-navy-nine.vercel.app 💻 Code: github.com/Lalitprajapat47 What it does Upload your resume + paste a job description PrepAI extracts skills, experience, and keywords from both It generates: An ATS-style match score A skill-gap analysis (what the job wants vs. what you have) Personalized interview questions based on the actual role A 7-day roadmap to close the gaps before the interview Tech stack Frontend: React.js Backend: Node.js + Express.js Database: MongoDB AI: Google Gemini API for resume/JD analysis and question generation Classic MERN, with Gemini doing the heavy lifting on the reasoning side.
The interesting part: prompting Gemini reliably The hardest part wasn't calling the API — it was getting consistent, structured output back every time.
Interview prep needs predictable JSON (question lists, scores, roadmaps), not freeform paragraphs that break your UI.
What helped: Being explicit in the prompt about the exact JSON shape I wanted back Feeding in resume text and JD text as clearly labeled sections, not just mashed together Adding a fallback parse step on the backend in case Gemini added extra text around the JSON This taught me a lot about prompt engineering as an actual engineering discipline — not just "ask nicely," but treating the prompt like an API contract.
What I learned How to design a backend that talks to an LLM API and still behaves like a normal REST API to the frontend Handling unpredictable AI output gracefully (retries, validation, fallback states) Turning a personal frustration (bad interview prep) into an actual shipped product What's next Adding support for multiple resume versions Tracking prep progress over the 7-day roadmap Mock interview mode with follow-up questions based on your answers If you're prepping for interviews, give it a try, and I'd genuinely love feedback: prep-ai-navy-nine.vercel.app Happy to answer any questions about the Gemini integration or the MERN setup in the comments 👇