Skip to content

AI-Powered Job Interview Simulator using Gemini Live API with real-time bidirectional audio.

License

Notifications You must be signed in to change notification settings

dkirichev/interviewSimulator

Repository files navigation

Interview Simulator Logo

πŸŽ™οΈ AI Interview Simulator

Practice job interviews with a real-time AI interviewer powered by Google Gemini

Features β€’ Quick Start β€’ Documentation β€’ Tech Stack β€’ Contributing

Java 21 Spring Boot 4.0.0 PostgreSQL Gemini AI License: GPL v3


✨ Features

🎀 Real-Time Voice Conversation

Have natural, bidirectional voice conversations with an AI interviewer using Google's Gemini Live API. No typing required - just speak!

πŸ“„ CV/Resume Integration

Upload your PDF or DOCX resume. The AI uses it to ask personalized questions about your experience and projects.

🌍 Multi-Language Support

Interview in English or Bulgarian. The AI adapts its questions and speech to your chosen language.

🎭 4 Interviewer Voices

Choose from 4 distinct AI voices:

  • πŸ‘¨ George/Π“Π΅ΠΎΡ€Π³ΠΈ (Algieba)
  • πŸ‘© Victoria/Виктория (Kore)
  • πŸ‘¨ Max/Макс (Fenrir)
  • πŸ‘© Diana/Π”ΠΈΠ°Π½Π° (Despina)

πŸ“Š AI-Powered Grading

Get detailed performance feedback after each interview:

  • Overall, Communication, Technical, & Confidence scores
  • Strengths & areas for improvement
  • Verdict: STRONG HIRE / HIRE / MAYBE / NO HIRE

🎯 Difficulty Levels

Level Style Best For
😌 Chill Relaxed, CV-focused conversation Beginners, confidence building
βš–οΈ Standard Balanced technical + soft skills General interview prep
πŸ”₯ Stress High-pressure, deep technical Senior roles, tough companies

πŸ’Ό Position-Specific Questions

The AI tailors questions to your target role:

  • Java/Backend Developer β†’ OOP, Spring Boot, databases, API design
  • Frontend Developer β†’ HTML/CSS/JS, React/Vue/Angular, UX
  • QA Engineer β†’ Testing methodologies, automation, SDLC
  • DevOps Engineer β†’ CI/CD, cloud, containerization
  • Project/Product Manager β†’ Leadership, planning, stakeholders

πŸš€ Quick Start

Option 1: Docker (Recommended)

# Clone the repository
git clone https://github.com/dkirichev/interviewSimulator.git
cd interviewSimulator

# Start with Docker Compose
docker-compose up -d

# Open in browser
open http://localhost:8080

πŸ‘‰ See Docker Deployment Guide for detailed instructions.

Option 2: Local Development

Prerequisites:

  • Java 21+
  • PostgreSQL 14+
  • Maven 3.9+
  • Gemini API Key (free from Google AI Studio)
# Clone and navigate
git clone https://github.com/dkirichev/interviewSimulator.git
cd interviewSimulator

# Set up environment variables
export DB_HOST=localhost
export DB_PORT=5432
export DB_NAME=interview_simulator
export DB_USERNAME=postgres
export DB_PASSWORD=your_password
export GEMINI_API_KEY=your_api_key
export APP_MODE=DEV

# Build and run
./mvnw spring-boot:run

πŸ‘‰ See Local Setup Guide for detailed instructions.


πŸ“– Documentation

Document Description
πŸ“‹ Local Setup Guide Complete local development setup
🐳 Docker Guide Production deployment with Docker
πŸ—οΈ Architecture System design, privacy model, and admin panel
πŸ”Œ API Reference REST and WebSocket endpoints
🀝 Contributing How to contribute to the project

πŸ› οΈ Tech Stack

Spring
Spring Boot 4
Java
Java 21
PostgreSQL
PostgreSQL
Gemini
Gemini AI
Thymeleaf
Thymeleaf
Docker
Docker

Backend:

  • Spring Boot 4.0.0 with WebSocket/STOMP
  • Spring Security
  • Flyway database migrations
  • OkHttp for Gemini WebSocket client
  • Apache PDFBox & POI for CV parsing
  • Thymeleaf for server-side templating

Frontend:

  • Vanilla JavaScript (minimal, ~1,500 lines)
  • Thymeleaf templates with i18n support
  • Tailwind CSS (via CDN)
  • Web Audio API for audio capture/playback

AI:

  • Gemini 2.5 Flash (real-time audio conversations)
  • Gemini 3 Flash (interview grading)

πŸ”§ Application Modes

Mode API Key Use Case
DEV Backend provides key Local development, testing
PROD User provides own key Production deployment
REVIEWER Multi-key rotation (server) Competition judges, demos

In PROD mode, users are prompted to enter their free Gemini API key. This keeps hosting costs at zero while giving each user their own rate limits.

In REVIEWER mode, the API key modal is hidden and the server uses multiple pre-configured keys with automatic model fallback rotation. This is designed for competition judges who shouldn't have to set up API keys.


πŸ”’ Privacy & Security

This project is built with a privacy-by-design philosophy:

Principle Implementation
No user accounts Users are never required to register or create accounts β€” minimizing collected personal data
No CV/resume storage Uploaded CV files are parsed for text in-memory and immediately discarded. The file is never saved to disk or database
No audio storage Voice recordings are streamed in real-time and never persisted
No transcript retention Interview transcripts are not permanently stored β€” they exist only during the session for grading purposes
Automatic data cleanup A scheduled task runs every 6 hours and deletes all interview session reports older than 2 weeks
Mobile device blocking Mobile phones and tablets are redirected away from the app via a server-side interceptor β€” a professional interview requires a desktop environment with a proper microphone
Mode-aware legal pages Privacy Policy and Terms & Conditions adapt their content based on the app mode (DEV/PROD/REVIEWER), so users only see information relevant to their context

πŸ›‘οΈ Admin Panel

The application includes a password-protected admin panel at /admin:

  • Dashboard with interview session statistics (total sessions, today's sessions, average score, top position)
  • Session browser with filtering by position, difficulty, and language
  • Pagination for navigating through sessions
  • Password management β€” change the admin password from the dashboard

⚠️ Default admin credentials:
Username: admin
Password: noit2026P4$$

Change this immediately after first login via the admin dashboard password change form.

The admin panel is secured via Spring Security with form-based authentication at /admin/login.


πŸ–₯️ Screenshots

Coming soon - screenshots of the setup wizard, interview screen, and report page


🀝 Contributing

We welcome contributions! Please see our Contributing Guide for details on:

  • πŸ› Reporting bugs
  • πŸ’‘ Suggesting features
  • πŸ”§ Submitting pull requests
  • πŸ“ Code style guidelines

πŸ“„ License

This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.

This means you can:

  • βœ… Use the software for any purpose
  • βœ… Change the software to suit your needs
  • βœ… Share the software with anyone
  • βœ… Share the changes you make

As long as you:

  • πŸ“‹ Include the original license
  • πŸ“‹ State significant changes made
  • πŸ“‹ Make source code available when distributing

πŸ™ Acknowledgements


Made with ❀️ for interview prep enthusiasts

⭐ Star this repo β€’ πŸ› Report Bug β€’ πŸ’‘ Request Feature

About

AI-Powered Job Interview Simulator using Gemini Live API with real-time bidirectional audio.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors