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 👇