← all repositories
Snailclimb/interview-guide

A full-stack AI interview coach built to be dissected

An open-source learning project that wires together Spring Boot 4, Spring AI, pgvector, and real-time voice to simulate the entire interview pipeline.

interview-guide
Velocity · 7d
+15
★ / day
Trend
steady
star history

What it does InterviewGuide is a full-stack platform for resume parsing, AI mock interviews (text and voice), interview scheduling, and RAG-powered knowledge bases. It targets job seekers, HR, and training institutions with a deliberately broad feature set: upload a PDF resume for async AI analysis, run a structured mock interview with skill-driven question generation, manage real interview schedules with calendar drag-and-drop, or query a custom knowledge base via pgvector-backed RAG. The voice interview module streams real-time dialogue over WebSocket using Qwen3’s unified ASR/TTS/LLM API, with server-side VAD and sentence-level concurrent TTS synthesis.

The interesting bit The author explicitly designed this as a pedagogical project with “low learning barrier,” and the README’s honesty is refreshing: Redis Stream replaces Kafka to avoid “too many components,” PostgreSQL + pgvector handles vectors because “it’s enough,” and Gradle was chosen because the author simply prefers it. The voice module even lists known flaws—high end-to-end latency, echo leakage without headphones, single TTS timbre, weak-network stuttering—rather than pretending it’s production-ready.

Key highlights

  • Skill-driven interviews: 10+ interview directions (Java backend, system design, AI Agent, etc.) defined by SKILL.md files with scoped difficulty and linked knowledge bases
  • Unified evaluation engine: Text and voice interviews share the same scoring pipeline (batch evaluation → structured output → secondary aggregation → fallback)
  • Async processing via Redis Stream: Resume analysis and knowledge-base vectorization are decoupled, with progress tracking and automatic retry (max 3 attempts)
  • Real-time voice with caveats: WebSocket streaming, 200ms first-packet latency, server-side VAD, echo protection, and Micrometer metrics for TTS/ASR latency
  • Multi-model provider management: Runtime switching between DashScope, DeepSeek, Kimi, GLM, LM Studio without code changes; API keys encrypted at `~/.interview-guide/n- Interview logistics: AI + rule-based parsing of Feishu/Tencent Meeting/Zoom invites, calendar views, status workflows, and configurable reminders

Caveats

  • The voice interview is explicitly experimental; the README lists end-to-end latency, echo issues, and weak-network audio drops as unresolved
  • Several features remain on the TODO list: WebRTC migration for lower latency, more TTS voices, and connecting mock interviews directly to the knowledge base
  • The project is positioned as a learning/resume piece first; production hardening (beyond rate limiting and retry logic) isn’t a stated goal

Verdict Worth cloning if you’re a Java developer trying to understand how Spring AI, pgvector, and Redis Stream fit together in a real(ish) application, or if you need a substantial portfolio project with explainable architecture decisions. Skip it if you need a polished, drop-in interview tool—this is coursework with ambition, not a product.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.