Building PrepAI An AI-Powered Interview Prep Platform with the Gemini API

작성자

카테고리:

← 피드로
DEV Community · Lalit Prajapat · 2026-09-06 개발(SW)

Lalit Prajapat

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 👇

원문에서 계속 ↗