An open-source platform that automates video interview evaluation using computer vision, speech analysis, and NLP. Designed to help hiring companies screen candidates more objectively and help candidates practice and improve.
The system analyzes recorded video interviews across three dimensions:
| Signal | Method | Output |
|---|---|---|
| Facial emotions | Keras CNN on FER-2013 | Frame-by-frame emotion distribution (happy, sad, angry, neutral, surprised) |
| Speech patterns | Parselmouth (Praat) | Words/min, pauses, filler words, tone variation |
| Resume–JD fit | NLTK + TF-IDF similarity | Relevance score between candidate resume and job description |
Backend: Python · Flask · OpenCV · Keras/TensorFlow · Parselmouth · NLTK · PyMongo
Frontend: React.js · Redux · React Router · Axios · WebRTC
Database: MongoDB
For Companies
- Post and manage job openings with descriptions
- Schedule video interviews with candidates
- View per-candidate analysis: emotion timeline, speech metrics, resume match score
- Review full interview recordings
For Candidates
- Browse and apply to open positions
- Join video interviews directly in the browser (WebRTC)
- Upload and manage resume
- Practice interview skills with recorded sessions
- Python 3.7+
- Node.js 14+ and npm
- MongoDB (local or Atlas)
- FFmpeg
git clone https://github.com/harivilasp/Interview-Video-Analysis.git
cd Interview-Video-Analysis/backend
pip install -r requirements.txt
python server.pycd frontend
npm install
npm start
# Opens at http://localhost:3000| Role | Username | Password |
|---|---|---|
| Candidate | hari_vilas |
hari@123 |
| Company 1 | company1 |
comp1@123 |
| Company 2 | company2 |
comp2@123 |
Emotion Detection — Keras model trained on FER-2013 (Kaggle). Classifies 7 emotions at inference time from OpenCV face crops.
Speech Analysis — Parselmouth wraps Praat acoustics. Measures fundamental frequency, speaking rate, and pause distribution.
Resume Matching — TF-IDF vectorization with NLTK preprocessing (stopword removal, stemming). Cosine similarity between resume and job description embeddings.
- Real-time feedback during live interviews
- Group interview support
- More sophisticated semantic resume matching (sentence transformers)
- Analytics dashboard with cross-candidate comparisons
- Docker Compose setup for one-command local deployment
MIT License — see LICENSE for details.
