# InterviewMate — Your Private AI Interview Coach


Interview preparation can become repetitive very quickly. You can practice hundreds of generic questions, but that doesn't necessarily mean you're practicing questions relevant to your resume and the role you're targeting.
So I built InterviewMate for a friend preparing for internships and placements.
What does it do?
InterviewMate creates a personalized interview practice loop:
Resume + Job Description → Interview Question → Candidate Answer → AI Feedback
You provide:
- Your resume
- The job description you're preparing for
InterviewMate then generates a relevant interview question using a local open-weight AI model.
You answer the question as if you were speaking to an interviewer, and the system evaluates your response with:
- Score
- Strengths
- Improvements
- A safe, grounded version of your answer
Why did I build it for a friend?
My friend was preparing for interviews and needed something more useful than a list of random interview questions.
The goal was simple:
Give them a private space where they can practice questions relevant to the opportunity they're actually preparing for and immediately understand how their answer could improve.
Why open innovation?
The core AI system uses Gemma 3:1B, an open-weight model running locally through Ollama.
This was important for two reasons.
Privacy
Interview preparation involves personal information such as resumes, projects, experience, and answers.
With local inference, the project doesn't require sending that information to a hosted AI provider just to practice an interview.
Experimentation
Using an open-weight model makes it possible to experiment with the AI layer, prompts, evaluation behavior, and future improvements without depending entirely on a proprietary hosted API.
This project is a small example of how open AI models can be turned into practical tools for individual users.
Tech Stack
Frontend
- Next.js
- React
- TypeScript
- Tailwind CSS
Backend
- Python
- FastAPI
- Pydantic
AI
- Gemma 3:1B
- Ollama
- Local inference
Architecture
Next.js Frontend
|
| HTTP API
↓
FastAPI Backend
|
↓
Ollama
|
↓
Gemma 3:1B
What I learned
One of the biggest challenges was making the AI feedback useful without allowing the model to invent details about the candidate.
For example, an interview coach should not add projects, technologies, achievements, or experiences that the candidate never mentioned.
So I designed the feedback flow with a strong focus on keeping the candidate's actual experience grounded in their original answer.
Run it locally
You'll need:
- Node.js
- Python 3.12+
- Ollama
Pull the model:
ollama pull gemma3:1b
Start the backend:
cd backend
python -m venv venv
source venv/bin/activate
pip install fastapi uvicorn ollama pydantic
python -m uvicorn main:app --reload
Start the frontend in another terminal:
cd frontend
npm install
npm run dev
Then open:
http://localhost:3000
Screenshots
I included screenshots showing:
- Resume and job description input
- Generated interview question and candidate answer
- AI-generated interview feedback
GitHub
Repository:
https://github.com/RuchitaDaga/InterviewMate
What's next?
Possible future improvements include:
- Multi-question mock interviews
- Interview history
- Progress tracking
- Role-specific question categories
- Voice-based interview practice
- Support for additional open-weight models
- Improved grounded answer refinement
Built for the DEV Weekend Challenge — Build for a Friend.
Top comments (0)