Skip to content

About

A free, local-AI mock interview platform for students with resume-based questions, voice interviews, webcam monitoring, and AI evaluation.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

Β 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ€– MockMate β€” AI Mock Interviewer

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.


🎯 What does it do?

MockMate turns your resume into an actual mock interview.

The flow

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

✨ Features

πŸ“„ Resume-based interview

Upload:

  • PDF
  • DOCX
  • TXT

The resume is parsed locally and used to create questions relevant to the candidate.

🧠 Local AI interviewer

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

πŸŽ™οΈ Real voice answers

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.

πŸ”Š AI interviewer voice

The interviewer can speak questions using:

pyttsx3

which uses local system text-to-speech.

πŸ“· Webcam

The interview uses your actual webcam.

OpenCV periodically checks the camera frames.

It can detect:

  • No face
  • One face
  • Multiple faces

πŸ•΅οΈ Integrity monitoring

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.

πŸ“Š AI evaluation

Each answer receives scores for:

  • Overall
  • Technical
  • Communication
  • Relevance
  • Structure

It also gives:

  • Strengths
  • Improvements
  • Verdict
  • Follow-up feedback

πŸ–ΌοΈ Screenshots

Home / Setup

MockMate Home

Live Interview

MockMate Interview

Answer Evaluation

MockMate Evaluation

Final Results

MockMate Results


πŸ› οΈ Tech Stack

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

πŸ”’ Privacy

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.


πŸ’» Requirements

Recommended:

  • Windows / macOS / Linux
  • Python 3.12
  • Node.js 18+
  • 8 GB RAM+
  • Webcam
  • Microphone
  • Ollama
  • GPU is helpful but not mandatory

Why Python 3.12?

The local Whisper dependency stack is considerably easier to run reliably on Python 3.12 than the newest Python releases.


πŸš€ Installation

1. Clone the repository

git clone https://github.com/harshitethic/AI-Mock-Interviewer.git
cd AI-Mock-Interviewer

2. Install Ollama

Install Ollama and then download the lightweight model:

ollama pull llama3.2:1b

Test it:

ollama run llama3.2:1b

Try:

Say hello in one sentence.

If it answers, Ollama is ready.


🐍 Backend setup

Create a Python 3.12 virtual environment.

Windows

py -3.12 -m venv .venv

Activate:

.venv\Scripts\Activate.ps1

Verify:

python --version

It should say:

Python 3.12.x

Install dependencies:

python -m pip install --upgrade pip
pip install -r backend\requirements.txt

Test 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 8000

You should see:

Uvicorn running on http://127.0.0.1:8000

Keep this terminal open.


🌐 Frontend setup

Open another terminal.

cd frontend
npm install
npm run dev

Open:

http://localhost:5173

🧩 Three-terminal setup

The easiest way to run the complete project is:

Terminal 1 β€” Ollama

ollama run llama3.2:1b

Terminal 2 β€” Backend

.venv\Scripts\Activate.ps1
cd backend
python -m uvicorn app:app --host 127.0.0.1 --port 8000

Terminal 3 β€” Frontend

cd frontend
npm run dev

Then open:

http://localhost:5173

πŸ§ͺ Test the backend

You can check whether the local services are connected:

curl.exe http://127.0.0.1:8000/api/health

A healthy response should contain:

{
  "ok": true,
  "ollama": true,
  "models": [
    "llama3.2:1b"
  ]
}

πŸ“ Project structure

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

🧠 How the AI pipeline works

Question generation

Resume
  ↓
Python resume parser
  ↓
Relevant resume context
  ↓
Ollama
  ↓
Llama 3.2
  ↓
Interview questions

Answer evaluation

Microphone
  ↓
Browser MediaRecorder
  ↓
Local FastAPI server
  ↓
faster-whisper
  ↓
Transcript
  ↓
Ollama
  ↓
Score + feedback

Integrity monitoring

Webcam
  ↓
Browser frame
  ↓
FastAPI
  ↓
OpenCV
  ↓
Face count
  ↓
Integrity signal

⚠️ Limitations

This is a serious working student project, but it is not pretending to be a commercial interview-proctoring system.

Local AI performance depends on your hardware

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.

Cheating detection isn't perfect

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.


πŸŽ“ Why I built this

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

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"

😀


⭐ If this helped you

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. 😭


License

MIT License β€” use it, modify it, learn from it, and build on it.

About

A free, local-AI mock interview platform for students with resume-based questions, voice interviews, webcam monitoring, and AI evaluation.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages