Project Name
Evalvate - AI-Native Interview Preparation & Talent Intelligence Platform
Demo
Live Demo: https://evalvate.dev/
GitHub Repository
Source Code: Evalvate on GitHub
Project Description
Inspiration
Candidates walk out of interviews asking the same questions: "Was I confident enough? Did I ramble? Did my answers even hold together?" Most prep tools only check whether an answer sounds correct - they ignore everything else an interviewer actually notices: eye contact, tone, hesitation, and whether your story stays consistent under pressure.
Evalvate started as a project incubated by the London School of Economics (LSE) Generate program and went on to win the SE Hackathon. That validation pushed us to rebuild the platform from a simple Q&A bot into a real multimodal interview simulator - one that watches, listens, and cross-checks a candidate the way a tough human interviewer would.
What It Does
Evalvate simulates high-pressure hiring environments and gives candidates deep, actionable feedback across content quality, communication style, confidence signals, and behavioral consistency.
Key capabilities:
- Adaptive 1-on-1 Interview Engine: role/difficulty-tailored questions, selectable interviewer personas (mentor, friendly, aggressive, devil's advocate), and dynamic follow-up challenges triggered when uncertainty or score drops are detected.
- Contradiction & Consistency Detection: semantic comparison of new answers against a candidate's prior claims, surfacing logical inconsistencies with confidence and severity scores.
- Real-Time Voice Intelligence (Hume AI): live prosody analysis: pitch variation, pace (WPM), volume dynamics, filler-word density, and 48 vocal emotions streamed over WebSocket.
- Real-Time Video & Behavioral Intelligence (MediaPipe + DeepFace): iris-landmark gaze tracking, posture/gesture analysis, dominant emotion tracking, and multi-face background flagging.
- Group Interview Simulation: rotating panel formats (Technical, HR, Mixed) with per-turn evaluation and a synthesized final summary.
- Team-Fit Meeting Room Simulation: scenario-based team discussions that score leadership, listening, and collaboration fit.
- Resume Parsing & ATS Coaching: LLM-based parsing of PDF/DOCX resumes into structured data with ATS-style improvement tips.
- Longitudinal Coaching Analytics : trendlines across sessions, weakness/strength clustering, radar charts, and auto-generated weekly coaching plans.
How We Built It
- Frontend (
se-hack/): Next.js (App Router) for interview flows, live media capture, WebSocket connectivity, and analytics dashboards; Zustand for state management. - Backend (
backend/): FastAPI, handling auth (Google OAuth + JWT cookies), AI-provider orchestration, scoring formulas, and the MediaPipe/DeepFace media pipelines. - Database: PostgreSQL, storing user profiles, structured resume data, interview sessions, meeting logs, and longitudinal snapshots.
- AI/ML services: Hume AI for vocal prosody and emotion, Simli for avatar-driven interviewer presence, DeepFace + MediaPipe for facial/gaze/pose analysis, and an LLM (via OpenRouter) for question generation, resume parsing, and contradiction detection.
System flow: Candidate video/audio/text → MediaPipe/DeepFace + Hume AI signal extraction → LLM-based semantic and contradiction analysis → deterministic scoring formulas → structured coaching report.
We use deterministic, multi-modal scoring rather than a single opaque AI score:
$$\text{Overall} = (0.35 \times \text{Technical} + 0.25 \times \text{Communication} + 0.20 \times \text{EyeContact} + 0.10 \times \text{Emotion} + 0.10 \times \text{Structure}) \times 10$$
$$\text{EyeContactScore} = \frac{\text{frames with gaze score} > 0.6}{\text{total frames}} \times 10$$
$$\text{Communication} = \frac{\text{pace_score} + \text{clarity_score} + \text{confidence_score} + \text{energy_score}}{4}$$
Challenges
- Fusing three asynchronous real-time streams (video, audio, text) into one coherent, per-turn evaluation without lag.
- Building genuinely useful contradiction detection - distinguishing a real inconsistency from a candidate just rephrasing themselves.
- Tuning gaze-estimation math (iris landmarks relative to eye sockets) to be robust across different cameras, lighting, and face angles.
- Designing adaptive challenge logic so the interviewer persona feels responsive rather than scripted.
- Keeping feedback specific and constructive instead of generic "good/bad" scoring, while still being deterministic and explainable.
Accomplishments
- Rebuilt Evalvate from a single-signal Q&A prototype into a full multimodal platform (voice + video + text + resume + longitudinal tracking).
- Shipped real-time vocal and facial/gaze analysis pipelines, not just post-session scoring.
- Built working contradiction detection across a candidate's full session history.
- Incubated by LSE Generate and won the SE Hackathon.
- Use Evalvate ourselves to prep for our own interviews.
What We Learned
Interview performance is multimodal - what you say is only part of the picture; how you say it and whether your story holds together matter just as much. Real-time multimodal fusion is hard: voice, video, and text signals arrive on different clocks and need careful synchronization to produce coaching that feels immediate rather than delayed. Deterministic, explainable scoring builds far more user trust than a black-box AI number. And testing on ourselves first was the fastest way to catch feedback that was technically accurate but practically useless.
What's Next
- Expand group interview and meeting-room simulations with richer multi-agent dynamics.
- Broaden longitudinal analytics into personalized, multi-week coaching curricula.
- Add multilingual support for a wider range of candidates.
- Pilot with universities and corporate hiring teams to validate impact on real placement and hiring outcomes.
- Extend the behavioral-analysis engine beyond interviews into presentations, admissions interviews, and public speaking practice.
Vision: Become the platform candidates and institutions trust for honest, multimodal performance feedback - anywhere confidence and communication are being evaluated.
Summary
Evalvate is a multimodal AI interview coach that fuses real-time voice prosody, facial/gaze behavior, and semantic contradiction detection into deterministic, explainable feedback - helping candidates prepare for the interview that actually happens, not just the questions on the page.
Built With
- computer-vision
- deepface
- fastapi
- google-oauth
- hume-ai
- jwt
- llm
- mediapipe
- natural-language-processing
- nextjs
- node.js
- opencv
- openrouter
- postgresql
- python
- react
- simli
- tailwindcss
- typescript
- webrtc
- websocket
- zustand
Log in or sign up for Devpost to join the conversation.