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 pypdf and 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

Share this project:

Updates