🧙♂️ JobGoblin: Your Personal AI Mock Interview Coach
💡 Inspiration
The technical interview is one of the biggest hurdles for software engineers. It’s a high-stress environment that demands a perfect mix of technical knowledge, problem-solving, and clear communication—all under pressure.
While practice is key, finding realistic, personalized, and constructive feedback is incredibly difficult. Most existing platforms are text-based, lack natural interaction, and offer generic advice that doesn’t reflect how real interviews feel.
We were inspired to build something that bridges this gap — a tool that feels alive, personalized, and motivating.
I personally have my third round of technical interviews for a software engineering role this Thursday, and each round has been harder than the last — from algorithm questions to deep system design and behavioral evaluations. That frustration and grind inspired us to create a system that could coach people like me, but better.
Why it matters: Studies show that Computer Science majors go through multiple interview rounds before receiving an offer:
- Over 50% of graduates attend three or more interviews, and
- Roughly 1 in 5 go through five or more before landing a job.
- The average job opening receives 250+ applications, with only 4–6 interviews conducted per position — and just one hire.
With stakes this high, being prepared isn’t optional — it’s essential.
Thus, JobGoblin was born.
🧠 What It Does
JobGoblin is an interactive, voice-driven mock interview platform powered entirely by the Google Gemini API. It simulates a complete interview experience — from behavioral and technical questions to a live coding round — and concludes with a detailed AI-generated performance report.
👣 User Journey
🎯 Personalize Your Session Upload your resume (PDF) and paste the job description for your target role. Add optional hints like "focus on system design" to fine-tune the interview’s focus.
🗣️ Voice-to-Voice Interview Have a real-time, spoken conversation with our animated AI interviewer, the JobGoblin. The goblin’s mouth is lip-synced to speech, creating an immersive, natural experience. Questions are dynamically generated based on your resume, skills, and job requirements.
💻 Interactive Coding Session Transition into a live coding phase where a LeetCode-style prompt appears. As you talk through your approach, the app records both your typed code and spoken reasoning for analysis.
📊 Comprehensive Performance Report After the session, the AI generates an in-depth evaluation including:
- Overall score (0–10)
- Strengths and weaknesses
- Actionable improvement tips
- Coding evaluation — correctness, efficiency, and thought clarity
🏗️ How We Built It
JobGoblin is a client-side web application built with modern web tech and powered by the Gemini 2.5 Flash model suite.
⚙️ Core AI & Conversation
- Uses Google Gemini Live API (
gemini-2.5-flash-native-audio-preview-09-2025) for low-latency, bidirectional audio streaming. - Real-time transcription captures both user and interviewer speech, forming a full, live transcript.
🧾 Report Generation & Analysis
- After the session, a separate Gemini 2.5 Flash call generates the performance report.
Inputs include:
- Resume + Job Description context
- Full conversation transcript
- Coding submissions (code + thought transcript)
A strict responseSchema ensures consistently structured JSON output for display.
💻 Frontend
- Built as a Web Component using LitElement + TypeScript for modularity and performance.
🔊 Audio & Visuals
Utilizes the Web Audio API for:
- Capturing microphone input
- Playing AI’s PCM audio stream
- Real-time lip-sync animation via
AnalyserNodeamplitude tracking
📄 Resume Parsing
- Implemented with pdfjs-dist to extract resume text directly in-browser — no backend needed.
🧩 Challenges We Ran Into
🎧 Real-Time Audio Handling: Managing raw PCM streams with Web Audio API required custom decoding and precise clock management for smooth playback.
🔁 State Management: Tracking the entire interview (current question, transcript, code session) in a fully client-side app without React or Redux demanded careful state design.
Opening GoDaddy page: Due to the school Wi-Fi blocking the site and the hackathon hotspot being too slow, we were unable to open our GoDaddy link. We used the deployed URL from another source.
🤖 Reliable AI Output: Early report prompts were inconsistent — sometimes skipping sections. We refined the schema and prompts to enforce completeness via structured JSON output.
🏆 Accomplishments That We're Proud Of
A True Conversational Experience: The Gemini Live API’s low latency makes the interview feel real — it’s not a chatbot, it’s an actual dialogue.
“Thought Process” Capture: Capturing spoken reasoning alongside typed code enables deep, multidimensional feedback rarely seen in mock interview tools.
Engaging UI: The animated, lip-syncing Goblin transforms a stressful experience into something fun, personable, and motivating.
🧭 What We Learned
This project taught us the power of multimodal AI — how real-time audio, structured reasoning, and contextual grounding can merge into something human-like.
We learned to:
- Orchestrate audio streaming and AI responses in real time
- Design structured prompt schemas for consistency
- Use Gemini’s multimodal capabilities for both conversation and evaluation
🚀 What’s Next for JobGoblin
Our future roadmap includes:
- 🎥 Video Analysis — feedback on body language, posture, and eye contact
- 📈 Performance Tracking — user accounts, historical progress visualization
- 🧑🏫 Multiple Interviewer Personas — from a friendly HR rep to a stern senior engineer
- 🌐 Backend Expansion — to persist conversations, track progress, and enable group analytics
Built With
- gemini
- geminiapi
- geminiliveapi
- lit
- pdf.js
- typescript
- webaudioapi

Log in or sign up for Devpost to join the conversation.