Inspiration
Recruiting season is stressful, and most interview prep is passive: you reread your resume and rehearse answers in your head. We wanted a way to practice under real pressure, with a realistic interviewer and honest feedback on how we actually come across, not just what we say.
What it does
OmniPrep AI is a real-time, voice-driven mock interview simulator.
- Upload your resume (PDF) and a target job description, and it asks role-tailored questions.
- Hands-free turn-taking: it detects when you've stopped speaking and responds automatically.
- A live coaching overlay on your webcam feed warns you about speaking too fast, filler words ("basically," "um"), and drifting eye contact.
- Three interviewer personas with distinct AI voices.
- After the interview, it scores your answers with the STAR method (Situation, Task, Action, Result) and emails you a styled scorecard.
How we built it
- Backend: Python and FastAPI, which parses resumes with
pypdfand drives the interviewer with Gemini. - Vision: MediaPipe FaceMesh and OpenCV to track eye contact and head posture.
- Audio: speech pace (words per minute) and filler-word detection, plus Web Speech API transcription.
- Voice: ElevenLabs for natural interviewer voices.
- Frontend: JavaScript, HTML5, and a Three.js 3D "boardroom" backdrop.
- Workflows: n8n webhooks send the post-interview debrief, and the API is hosted on Render.
Challenges we ran into
- Making conversation feel natural. We tuned voice-activity detection so the system waits 1.5 seconds of silence (after at least three spoken words) before it answers.
- Keeping the app usable without every API key, so we built a local fallback that scores from transcript length, filler counts, and eye-contact ratios.
- [Add one real challenge you remember, such as a bug, an integration that broke, or something that took longer than planned.]
What we learned
How to combine several services (vision, audio, an LLM, and voice synthesis) into one real-time experience, and why graceful fallbacks matter when you depend on outside APIs.
What's next
Longer interview sessions, more interviewer personas, and saving progress across sessions.
Built With
- elevenlabs
- html5
- javascript
- llm
- mediapipe
- python
- three.js
Log in or sign up for Devpost to join the conversation.