AI Automation · Production — Oxibit Technologies
AI Interview Practice Platform
A full-stack platform that lets candidates practice job interviews with a real-time AI interviewer over live video and audio — configurable by role, difficulty, and personality — and walk away with a coaching report and a hiring-style assessment, no human scheduling required.
Role: Full-Stack AI Engineer
Resume-personalized questions, no scheduling
Setup
Real-time video/audio via LiveKit + OpenAI Realtime
Conversation
Dual reports — coaching feedback + hiring assessment
Output
The Problem
Traditional interview prep has clear gaps: mock interviews with peers or coaches require scheduling and aren't always available, practice partners vary widely in skill and relevance to the target role, feedback tends to be generic rather than grounded in how someone actually performed, and candidates often hesitate to practice with abrasive or high-pressure interviewers before facing the real thing. The goal was a platform where anyone could run a realistic, configurable mock interview on demand and walk away with actionable, transcript-based feedback.
- Scheduling friction — mock interviews with peers or coaches require coordination and aren't always available.
- Inconsistent quality — practice partners vary in skill, tone, and relevance to the target role.
- Weak feedback — generic tips don't reflect how someone actually performed in a live conversation.
- No safe space to fail — candidates hesitate to practice with abrasive or high-pressure interviewers before the real thing.
The Approach
- 01Personalized setup: resume parsing (PDF/DOCX) builds a structured candidate profile that the AI interviewer uses to tailor questions to experience, skills, and the target role.
- 02Configurable sessions: role description, interviewer personality (Friendly, Excited, Neutral, Hostile, Abrasive), difficulty, language, and session length, all set before the interview starts.
- 03Real-time conversation: live video/audio via LiveKit, powered by OpenAI's Realtime API (with optional Gemini Live), with natural turn-taking and optional interruption handling.
- 04Dual post-interview outputs: candidate-facing coaching feedback and a structured hiring-style assessment report, both scored and exportable as branded PDFs.
- 05Engineered session-isolated concurrency so multiple candidates can interview simultaneously without any data mixing between sessions.
- 06Deployed as a production-ready system on Docker Compose with Nginx reverse proxy and Let's Encrypt SSL.
Key Features
Interview Configuration
- Role description, interviewer personality, difficulty, language (8 supported), and session length (3–20 minutes) all configurable before the session starts.
- Interruption handling and AI model selection (GPT-4o, GPT-5, admin-gated Gemini Live) for fine control over the interview experience.
Resume-Powered Profiles
- Candidates upload a PDF or DOCX resume; the backend extracts text and parses it with an LLM into structured JSON — education, experience, projects, skills.
- That structured profile is injected into prompt generation so the AI asks relevant, context-aware questions instead of generic ones.
Live Interview Experience
- Webcam preview, real-time transcript with timestamps, and audio waveform visualization for both agent and candidate speech.
- Live timer and staged setup progress (prompt generation → agent init → connection) driven by WebSocket status updates throughout the session.
Post-Interview Results
- Three-tab results dashboard: candidate-facing coaching feedback, a hiring-style report (suitability, concerns, category ratings, 1–100 score), and the full timestamped transcript.
- Polar-area charts for skill breakdowns and downloadable, white-label-styled PDF reports.
Interview History
- Dashboard listing all past sessions in grid or list view, with status badges, duration, and quick access to feedback vs. assessment scores.
Technical Highlights
Dual-Agent AI Architecture
- A conversation agent drives the live interview while a separate supervisor agent handles post-session analysis, using dynamic meta-prompting tailored to the configured role and personality.
Session-Isolated Concurrency
- Engineered so multiple candidates can run live interviews at the same time with no cross-session data mixing — each session's audio, transcript, and state stay fully isolated.
Real-Time AV Pipeline
- LiveKit server, livekit-client, and the LiveKit Agents SDK handle WebRTC audio/video, while OpenAI's Realtime API drives natural, low-latency conversation with optional interruption support.
Structured Feedback Generation
- Post-interview analysis uses the Responses API to generate structured JSON — coaching feedback and hiring assessment — rendered into scored, chartable, exportable reports.
My Contribution
- Built the real-time interview UI with LiveKit integration, audio waveforms, transcript display, and WebSocket-driven setup progress.
- Implemented interview configuration and session management flows on the frontend.
- Developed the post-interview results dashboard with Chart.js visualizations and PDF report generation.
- Contributed to the dual-agent AI architecture — conversation and supervisor agents with dynamic meta-prompting.
- Engineered session-isolated concurrency so multiple users can interview simultaneously without data mixing.
- Built AI-powered resume parsing to personalize interview questions from uploaded CVs.
- Set up Docker-based deployment with Nginx, SSL, and dev/prod environment separation.