About the project

PrepTalk is a voice-first interview practice app that helps candidates prepare with realistic, resume-grounded coaching. Instead of generic mock questions, PrepTalk generates targeted interview prompts from the user’s uploaded resume and job description, then gives actionable feedback and exports a study guide that the user can review before real interviews.

What it does

  1. Contextual setup Users upload a resume and a target job description (file or URL).

  2. Interview question generation The app generates tailored questions aligned to role expectations and the candidate's background.

  3. Voice practice session (turn-based) Users answer by voice in a guided turn-based flow with controls for submit/help/mute/end.

  4. Resume-grounded coaching “Request Help” produces answer guidance tied to evidence from the uploaded resume, plus identified gaps.

  5. Scoring + exports At the session end, PrepTalk produces a score summary and a downloadable PDF/TXT study guide with transcript, strengths, and focus areas.

  6. Privacy by default On intake, PrepTalk redacts personal contact identifiers from the resume text (last name, phone, email, and LinkedIn handle) before generating questions and coaching, while preserving role-relevant context.

Responsive UI

PrepTalk is designed for desktop, tablet, and mobile web.

  • Desktop: Full two-column coaching workspace with persistent session controls and transcript context.
  • Tablet: Optimized stacked/condensed layout that preserves core controls and readability.
  • Mobile: Compact single-column flow with touch-friendly controls, anchored session actions, and export support.

The same core interview workflow is available across all form factors: setup → generate questions → voice practice → score → PDF/TXT export

How we built it

  • Backend: FastAPI APIs for setup, voice turns, help, scoring, export, and telemetry.
  • Gemini integration (core):
    • gemini-3-flash-preview for question generation, answer evaluation, and coaching/scoring.
    • gemini-2.5-flash-native-audio-preview-12-2025 available in architecture for live audio transport capability.
  • Voice output path: Primary provider in deployment is OpenAI TTS (gpt-4o-mini-tts) with fallback support to Gemini TTS models.
  • Frontend: Vanilla JS + browser audio APIs with adaptive audio profiles (16/24/48 kHz) and responsive mobile/desktop UI.
  • Export: WeasyPrint-based PDF generation plus TXT export.
  • Observability: Journey telemetry for setup/session/score/export verification. ## Challenges we ran into
  • Turn-taking reliability: distinguishing pauses from completed answers.
  • Voice fallback consistency: handling provider/model latency and empty-audio cases without breaking session flow.
  • Cross-browser behavior: Safari vs Chrome differences in speech recognition/playback.
  • Feedback quality: making coaching specific and tough-but-useful instead of generic.

Accomplishments we’re proud of

  • Strong Gemini-generated questions that feel role-specific and practical.
  • Helpful, evidence-based coaching grounded in what the candidate actually provided.
  • Actionable outputs (study guide + transcript + score) users can study immediately.
  • Revision-safe operations with test/prod endpoints, rollback capability, and telemetry checks.

What we learned

  • Voice UX is extremely sensitive to latency and recovery behavior.
  • “Smart fallback” design matters as much as model quality.
  • Explicit session controls improve confidence in high-stakes practice.
  • Instrumentation is essential for quickly finding and fixing real user issues.

What’s next

  • Deeper session continuity across longer interviews.
  • More interviewer personas and company-specific styles.
  • Expanded analytics pipeline for richer journey insights.
  • Additional coaching signals around delivery and structure.

Gemini integration summary

PrepTalk uses Gemini as the core reasoning engine for interview generation and coaching. gemini-3-flash-preview powers question generation, turn evaluation, and scoring/feedback logic from uploaded resume + JD context. We also maintain compatibility with Gemini live audio transport (gemini-2.5-flash-native-audio-preview-12-2025) in the architecture, while the current user flow is turn-based. The app is designed so that Gemini outputs are tied to the candidate-provided evidence, producing practical coaching drafts and gap guidance rather than generic interview tips.

Testing instructions

  • Demo URL: https://preptalk-west-cz47ti6tbq-uw.a.run.app/
  • Access token: practice_again
  • Browser: Chrome or Safari recommended

Demo flow

  1. Upload resume and job description.
  2. Click Generate Questions.
  3. Start the turn-based voice practice session.
  4. Use Request Help at least once.
  5. Submit answers and end practice.
  6. Export PDF/TXT study guide.

Menu + Extras

PrepTalk runs as turn-based. Use Menu → Extras to adjust available voice output/provider/model options for testing and comparison.

Built With

Share this project:

Updates

posted an update

On 2026-02-08, we confirmed that Gemini per-model daily limits were a production risk. Observed caps were 50/day for gemini-2.5-pro-preview-tts and 100/day for gemini-2.5-flash-preview-tts, both of which were exceeded during testing. We also observed gemini-3-pro-preview returning RESOURCE_EXHAUSTED with per-model daily limit effectively 0 for our current project quota path. We mitigated by moving interview generation to gemini-3-flash-preview, and keeping OpenAI TTS as the primary provider for coach audio reliability

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

posted an update

I started using Gemini 3 Live for audio responses, but it was error-prone, and I lost the conversation context, which resulted in a P0 show stopper and prevented moving forward. I released the app, but I am not able to enable live turn-based play. You have to tell the TTS that you are ready to submit your answer. It sort of killed the magic of a live conversation, but the insight into using Gemini 3 for the question and rubric is still very helpful vs a cold interview with no preparation.

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