This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend
What I Built
FRIEND is in placement season and told me one thing scares them most: SPECIFIC FEAR, e.g. "I freeze when they ask about my own project." Paid mock interview tools cost money and want a full resume uploaded to someone else's server.
So I built Mock Interview Partner: upload a resume, pick a role, and it interviews you. It asks questions about your actual projects, pushes back on vague answers with follow-ups, scores each answer strictly from 1 to 5, and writes a report with weaknesses and a practice plan. It runs completely on a laptop.
Demo
(Optional: a 30 to 60 second screen recording.)
Code
b25246-star
/
mock-interview-partner
Free, private mock interview partner for placement season. Runs fully offline on a local open-source model (Ollama).
š¤ Mock Interview Partner
A free, private mock interviewer for placement season. Upload a resume, choose a target role, and get tailored questions, follow-ups, strict per-answer feedback and a final report. It runs entirely on your own laptop with an open-weight model, so nothing is sent to a server.
Built for the Hacktoberfest Weekend Challenge: Build for a Friend.
Why local and open-source
A resume contains a phone number, address, grades and email, and a mock interview records someone's honest mistakes. Neither belongs on a server you don't control. Running a local open-weight model means nothing leaves the laptop, and no internet is needed once the model is downloaded.
Open source also gives you:
- Free practice: no per-token cost, so a student can do 20 sessions without worrying about a bill.
- Swappable models: pick any model you have pulled in Ollama from the sidebar dropdown.
- Editable behaviour: the interviewer'sā¦
How I Built It
-
Model:
llama3.2:3bthrough Ollama, fully on a 6 GB RTX 4050 - Backend: Python, Pydantic for validating the model's JSON, SQLite for session history
- UI: Streamlit with a sidebar for model, persona, focus and level
- Voice (optional): faster-whisper, with filler-word counts
The flow is: resume text ā structured profile ā question plan ā answer ā score and feedback ā optional follow-up ā final report.
Everything behavioural lives in plain text: the prompts, three interviewer personas and a rubric.yaml with score anchors.
What went wrong: WRITE ONE REAL FAILURE. Ideas: the model gave 4 or 5 out of 5 to weak answers until I added explicit score anchors and told it to grade like a strict interviewer. Or the 7B model split between GPU and CPU on 6 GB of VRAM and was painfully slow, so I moved to the 3B model (X seconds per answer instead of Y).
Why Does Open Innovation Matter?
- Privacy: a resume holds contact details and grades, and a mock interview records someone's honest mistakes. With a local open-weight model, none of it leaves the laptop.
- Cost: practice only works in volume. With no per-token cost, FRIEND can do as many sessions as they want.
- Swappable models: I compared MODEL A and MODEL B. INCLUDE A REAL OBSERVATION, e.g. speed and feedback quality.
- Editable behaviour: the interviewer's strictness, persona and rubric are text files. I changed FRIEND's interviewer from one persona to another in seconds without touching code.
- Offline: it works in a hostel with bad Wi-Fi.
What my friend said
I ran a mock interview with FRIEND_NAME, who is preparing for placements, and asked for honest feedback afterwards.
Their first reaction was a simple "wow."
What they found most useful was the improved sample answers and the review after each question. When I asked what the tool showed them that they hadn't noticed, they said: "I missed too many things, and this app pointed them out. I improved my answer."
I also asked whether any scoring felt unfair, since a strict grader is only useful if it's fair. They said no, the feedback looked fair to them.
Their verdict on using it again before placements: "Yes, it will help me a lot."
That last answer is what I built it for: a free place to practise as many times as they need, without a resume or answers going to anyone else's server.

Top comments (0)