Built by @harshitethic for his college bhais β€οΈ
A real, browser-based AI mock interview platform built for students who want to practice interviews without paying for expensive AI APIs.
No OpenAI. No Gemini. No ElevenLabs. No paid API keys.
Everything important runs locally on your machine using open-source/local tools.
MockMate turns your resume into an actual mock interview.
Upload Resume
β
Choose Job Role
β
Local AI generates questions
β
AI interviewer asks the question
β
You speak through your microphone
β
Whisper transcribes your answer
β
Local AI evaluates your answer
β
Camera + integrity signals are tracked
β
You get your interview score
Upload:
- DOCX
- TXT
The resume is parsed locally and used to create questions relevant to the candidate.
Uses Ollama + Llama 3.2.
The project can run with:
llama3.2:1b
which is lightweight enough for many student laptops.
Questions can include:
- Technical
- Resume-specific
- Projects
- Behavioral
- Role-specific
This isn't a fake text box.
The browser actually records your microphone.
The audio is sent to the local Python backend and transcribed using:
faster-whisper
No cloud transcription API is required.
The interviewer can speak questions using:
pyttsx3
which uses local system text-to-speech.
The interview uses your actual webcam.
OpenCV periodically checks the camera frames.
It can detect:
- No face
- One face
- Multiple faces
MockMate tracks observable integrity signals such as:
- Tab switching
- Copy attempts
- No-face detections
- Multiple-face detections
- Camera interruptions
β οΈ These are integrity signals, not proof of cheating. A real system cannot honestly claim that a webcam detected "cheating" with certainty.
Each answer receives scores for:
- Overall
- Technical
- Communication
- Relevance
- Structure
It also gives:
- Strengths
- Improvements
- Verdict
- Follow-up feedback
| Part | Technology |
|---|---|
| Frontend | React + Vite |
| Backend | FastAPI |
| Local LLM | Ollama |
| Model | Llama 3.2 |
| Speech-to-text | faster-whisper |
| Text-to-speech | pyttsx3 |
| Computer vision | OpenCV |
| Resume PDF parsing | PyMuPDF |
| DOCX parsing | python-docx |
| Data | Local files |
| Styling | Custom CSS |
This project was specifically designed to avoid paid cloud AI APIs.
Your:
- Resume
- Interview audio
- Webcam frames
- Transcripts
- Answers
are processed locally by the application.
There is no requirement for:
OPENAI_API_KEY
GEMINI_API_KEY
ELEVENLABS_API_KEY
or any other paid AI key.
Recommended:
- Windows / macOS / Linux
- Python 3.12
- Node.js 18+
- 8 GB RAM+
- Webcam
- Microphone
- Ollama
- GPU is helpful but not mandatory
The local Whisper dependency stack is considerably easier to run reliably on Python 3.12 than the newest Python releases.
git clone https://github.com/harshitethic/AI-Mock-Interviewer.git
cd AI-Mock-InterviewerInstall Ollama and then download the lightweight model:
ollama pull llama3.2:1bTest it:
ollama run llama3.2:1bTry:
Say hello in one sentence.
If it answers, Ollama is ready.
Create a Python 3.12 virtual environment.
py -3.12 -m venv .venvActivate:
.venv\Scripts\Activate.ps1Verify:
python --versionIt should say:
Python 3.12.x
Install dependencies:
python -m pip install --upgrade pip
pip install -r backend\requirements.txtTest Whisper:
python -c "from faster_whisper import WhisperModel; print('WHISPER OK')"Start the backend:
cd backend
python -m uvicorn app:app --host 127.0.0.1 --port 8000You should see:
Uvicorn running on http://127.0.0.1:8000
Keep this terminal open.
Open another terminal.
cd frontend
npm install
npm run devOpen:
http://localhost:5173
The easiest way to run the complete project is:
ollama run llama3.2:1b.venv\Scripts\Activate.ps1
cd backend
python -m uvicorn app:app --host 127.0.0.1 --port 8000cd frontend
npm run devThen open:
http://localhost:5173
You can check whether the local services are connected:
curl.exe http://127.0.0.1:8000/api/healthA healthy response should contain:
{
"ok": true,
"ollama": true,
"models": [
"llama3.2:1b"
]
}AI-Mock-Interviewer/
β
βββ backend/
β βββ app.py
β βββ requirements.txt
β β
β βββ services/
β βββ llm.py
β βββ resume.py
β βββ speech.py
β βββ vision.py
β
βββ frontend/
β βββ package.json
β βββ vite.config.js
β βββ index.html
β β
β βββ src/
β βββ main.jsx
β βββ styles.css
β
βββ screenshots/
β βββ home.png
β βββ interview.png
β βββ evaluation.png
β βββ results.png
β
βββ README.md
Resume
β
Python resume parser
β
Relevant resume context
β
Ollama
β
Llama 3.2
β
Interview questions
Microphone
β
Browser MediaRecorder
β
Local FastAPI server
β
faster-whisper
β
Transcript
β
Ollama
β
Score + feedback
Webcam
β
Browser frame
β
FastAPI
β
OpenCV
β
Face count
β
Integrity signal
This is a serious working student project, but it is not pretending to be a commercial interview-proctoring system.
A small model such as:
llama3.2:1b
is faster and easier to run locally, but it won't evaluate answers as deeply as a much larger model.
The system detects signals, not intent.
For example:
2 faces β confirmed cheating
Someone else could simply walk into the room.
Similarly:
tab switch β confirmed cheating
The student could have accidentally switched windows.
That's why the report calls them integrity signals.
College students shouldn't need to spend money on multiple AI APIs just to build a good final-year or semester project.
The goal of MockMate is simple:
Take this repo, run it locally, understand the code, customize it, and use it as your college project.
You can extend it with:
- More job roles
- Better resume parsing
- More local models
- Interview history
- User accounts
- Question difficulty adaptation
- Voice emotion analysis
- Better proctoring
- PDF report generation
- Admin dashboard
- Interview analytics
Built by @harshitethic
For his college bhais β€οΈ
Made for students who want a project that actually works instead of another dead demo with:
"Insert API key here"
π€
Star the repository.
Fork it.
Break it.
Fix it.
Make it better.
And if you use it for your college project, actually understand the code before your viva. π
MIT License β use it, modify it, learn from it, and build on it.



