InterviewGuide: AI Mock Interview Platform
interview-guide: The Intelligent AI Interview Platform is a deployable, full-stack AI application covering resume parsing, skill-driven mock interviews, real-time voice conversations, and a RAG knowledge base. Its core features are free and open-source under AGPL-3.0. A paid companion course offers structured guidance on design decisions. This is a solid target for developers seeking a showcase-quality AI project with clean architecture, provided they can host the full stack (PostgreSQL, Redis, S3-compatible storage).
What is the Intelligent AI Interview Platform?
The Intelligent AI Interview Platform is a self-hosted interview preparation suite built on Spring Boot 4.1 and Spring AI 2.0. It lets users upload resumes in PDF, DOCX, or TXT format for AI-powered analysis, run text or voice-based mock interviews across 10+ skill tracks (Java backend, frontend, algorithms, system design, and more), manage interview calendars with AI-parsed meeting links, and query a RAG knowledge base backed by pgvector. All core features are free and open-source under AGPL-3.0.
The Challenge of Interview Preparation
Job seekers lack a realistic way to practice for technical interviews beyond reading articles or grinding algorithm problems. Existing platforms either charge for basic features, skip resume feedback entirely, or treat voice interviews as an afterthought. Recruiters and training organizations need tools to manage candidates and knowledge assets in one place rather than juggling disconnected spreadsheets and third-party services.
Key Features for Interview Success
- ✓Resume parsing with Apache Tika supporting PDF, DOCX, DOC, and TXT, processed asynchronously via Redis Stream with automatic retry (up to 3 attempts) and content-hash deduplication
- ✓Skill-driven mock interviews across 10+ tracks (Java backend, Algo, System Design, AI Agent, etc.), each defined by a SKILL.md file with difficulty distribution and reference knowledge bases
- ✓Real-time voice interviews using WebSocket + Qwen3 ASR/TTS with sentence-level concurrent TTS, server-side VAD for automatic segmentation, and echo prevention mechanisms
- ✓RAG knowledge base with pgvector for semantic search, SSE-based streaming responses, and the ability to generate structured questions from uploaded documents
- ✓Unified evaluation engine shared by text and voice interviews, with batched scoring, structured output, and fallback logic when API calls fail
- ✓Multi-provider LLM support (DashScope, LM Studio, Kimi, DeepSeek, GLM) with runtime configuration switching for both chat and embedding models
- ✓Interview scheduling with AI-parsed meeting links (Feishu, Tencent Meeting, Zoom formats) and a calendar view supporting drag-and-drop rescheduling
- ✓PDF export for both resume analysis reports and mock interview evaluation summaries using iText 8 with a built-in Chinese font
Who Benefits from InterviewGuide?
- •Job seekers who want resume feedback and a realistic mock interview environment before facing real interviews
- •HR teams and recruiters who need to evaluate candidate resumes in bulk with consistent criteria
- •Training organizations that manage interview knowledge bases and track student progress across multiple sessions
- •Java developers looking for a showcase-quality AI project with production patterns (async processing, vector search, streaming responses) to discuss in interviews
Getting Started: Local & Docker Deployment
Getting Started: Local & Docker Deployment **Local development** requires JDK 25, Node.js 18+, and pnpm 10+. After cloning the repo, copy `.env.example` to `.env` and set at minimum `AI_BAILIAN_API_KEY`. Start infrastructure services with `docker compose -f docker-compose.dev.yml up -d` (PostgreSQL, Redis, RustFS). Then run the backend via `./gradlew :app:bootRun` (port 8080) and the frontend via `cd frontend && pnpm install && pnpm dev` (port 5173). **Docker deployment** runs all services — frontend (Nginx), backend, PostgreSQL, Redis, and MinIO — via a single `docker-compose up -d --build`. Copy `.env.example` to `.env`, fill in `AI_BAILIAN_API_KEY` and `APP_AI_CONFIG_ENCRYPTION_KEY`, then `docker-compose up -d --build`. Access the app at localhost, Swagger UI at localhost:8080/swagger-ui.html, and MinIO console at localhost:9001.
Strengths
- ✓Complete, self-hostable AI application covering resume analysis, mock interviews, voice conversations, and knowledge base management — no feature paywalls
- ✓Clean architectural patterns: Redis Stream for async job processing, pgvector for semantic retrieval, WebSocket for real-time voice, and Flyway for database migrations
- ✓Skill-driven interview system with 10+ predefined tracks and per-session question deduplication to ensure varied practice sessions
- ✓Unified evaluation engine used by both text and voice interview modes, with batched processing, structured JSON output, and graceful fallback when API calls fail
- ✓Docker Compose setup with MinIO, PostgreSQL, and Redis makes local infrastructure reproducible without manual service configuration
- ✓Actively maintained with a public roadmap tracking WebRTC migration for voice, expanded TTS voice options, and feature parity between interview modes
Current Limitations and Future Plans
- △End-to-end voice interview latency is noticeably high due to server-side audio relay, and the current TTS implementation supports only a single voice style — the roadmap acknowledges these gaps and plans WebRTC integration and additional voice options
- △Echo leakage occurs when using speakers without a headset during voice interviews; the platform provides manual-submit mode as a workaround, but hardware echo cancellation is not yet implemented
- △Deployment requires running multiple services (PostgreSQL, Redis, S3-compatible storage) — lightweight users who want zero-install interview practice should look elsewhere
- △The AGPL-3.0 license requires publishing source code modifications if the application is offered as a networked service, which may conflict with proprietary deployment plans
Alternatives for Interview Practice
Frequently Asked Questions
InterviewGuide is released under AGPL-3.0. This means any modified source code must be published if the application is offered as a networked service. The README notes this explicitly as a design choice tied to the project's open-source commitment.
The backend runs Spring Boot 4.1 with Java 25 virtual threads and Spring AI 2.0 for LLM integration. Data lives in PostgreSQL with the pgvector extension for vector storage. Redis Stream handles async job processing while Redisson manages caching. The frontend is React 18 with TypeScript, Vite, and Tailwind CSS. Voice features rely on DashScope SDK for Qwen3 ASR and TTS.
Copy `.env.example` to `.env`, set `AI_BAILIAN_API_KEY` and `APP_AI_CONFIG_ENCRYPTION_KEY`, then run `docker-compose up -d --build`. This spins up six services: frontend (Nginx), Spring Boot backend, PostgreSQL, Redis, MinIO, and a bucket initialization task. Data persists via Docker named volumes.
Yes. The minimum required key is `AI_BAILIAN_API_KEY` for DashScope text, ASR, and TTS models. If you configure additional providers (Kimi, DeepSeek, GLM, LM Studio) in the settings page, you will need their respective API keys as well.
Docker deployments use named volumes for PostgreSQL, Redis, and MinIO, so data survives `docker-compose down`. Local development using `docker-compose.dev.yml` also preserves data unless you explicitly run `docker-compose down -v` to remove volumes. The application writes runtime LLM provider configs to `~/.interview-guide/` on the host filesystem.
The README lists four known issues: high end-to-end latency from server-side audio relay, echo leakage when using speakers without a headset, limited TTS voice options (single voice style), and audio stuttering on weak networks. The roadmap plans WebRTC migration, client-side VAD noise reduction, and additional TTS voices to address these.
Who should try it — and who should skip
InterviewGuide suits Java developers who want a tangible, explainable AI project for their resume and the infrastructure skills to run it. Training orgs needing a self-hosted interview management system will find the feature set comprehensive. However, job seekers who want immediate, zero-setup practice without managing Docker containers should try cloud tools first. Teams requiring a fully tested, commercially supported product will also find the AGPL-3.0 licensing and known voice latency issues a barrier.
Related repositories
Curious whether interview-guide is right for you?
Let ChatGPT, Claude, or Perplexity look into it — click below and see what AI actually says about interview-guide.
