🧙‍♂️ 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

  1. 🎯 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.

  2. 🗣️ 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.

  3. 💻 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.

  4. 📊 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 AnalyserNode amplitude 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

Share this project:

Updates