An intelligent platform that helps you ace your job interviews with AI-powered mock interviews and personalized feedback
- Smart Workflow Management: Create and manage interview workflows for different positions
- Resume Analysis: Upload your PDF resume for AI-powered analysis and optimization suggestions
- Personalized Q&A: Get tailored interview questions based on your background and target role
- Resource Recommendations: Access curated learning materials and preparation resources
- Real-time Conversations: Engage in natural conversations with AI interviewer via text or voice
- Adaptive Questioning: Dynamic follow-up questions based on your responses
- Session Management: Timed interview sessions with automatic transcript generation
- Multi-modal Support: Text and audio communication options
- Comprehensive Analysis: Detailed performance evaluation across multiple dimensions
- Strength Recognition: Highlight what you did well during the interview
- Improvement Areas: Specific suggestions with examples and actionable advice
- Progress Tracking: Monitor your improvement over multiple interview sessions
- Resource Library: Curated links to help you improve identified weak areas
- Session History: Access all your past interview transcripts and feedback
- Position-based Filtering: Filter interviews by specific job positions
- Performance Trends: Track your progress across different interview sessions
- Exportable Reports: Download interview transcripts and feedback for review
- Flutter Web - Cross-platform UI framework for responsive web applications
- Dart - Programming language optimized for building user interfaces
- Material Design - Google's design system for consistent UI/UX
- FastAPI - Modern, fast Python web framework for building APIs
- Python 3.9+ - Core backend programming language
- Google ADK - Agent Development Kit for AI agent orchestration
- WebSocket - Real-time bidirectional communication
- Claude 3.5 (Anthropic) - Advanced language model for interview conversations (Primary)
- Google Gemini 2.0 - Alternative AI model (Legacy support)
- Anthropic API - Claude AI integration
- Google Cloud AI - Cloud-based AI services and infrastructure (Optional)
- Firestore - NoSQL document database for scalable data storage
- Firebase Auth - Authentication and user management
- Flutter SDK (3.0+)
- Python (3.10+) -
- Node.js (16+)
- Firebase Project with Firestore and Authentication enabled
- Claude API Key
- Google Cloud Project (Optional - for legacy Gemini support)
-
Clone the repository `` git clone https://github.com/jvivard/intervoice
-
Set up Python environment
cd backend python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate # Install Claude dependencies (recommended - latest) pip install -r requirements_claude.txt # OR install legacy Gemini dependencies # pip install -r requirements_working.txt
-
Configure environment variables Create a
.envfile in thebackend/directory:# backend/.env # Claude AI (Primary) ANTHROPIC_API_KEY=sk-ant-your-key-here USE_CLAUDE=true # Optional: Google Cloud (for legacy Gemini support) GOOGLE_CLOUD_PROJECT=your-actual-project-id GOOGLE_CLOUD_LOCATION=us-central1 GOOGLE_GENAI_USE_VERTEXAI=True # Optional: Search API (for search agent) TAVILY_API_KEY=your-tavily-key
Get your Claude API key: Visit https://console.anthropic.com
-
Set up Firebase credentials Create a
credentialsfolder and put yourfirebase_key.jsoninside itFIREBASE_KEY_PATH=credentials/firebase_key.json #Or change it to your actual path of firebase_key.json -
Test Claude setup (optional but recommended)
# From project root python backend/services/test_claude.py -
Run the backend server Important: Run from the project root directory, not from inside the backend folder
uvicorn backend.app:app --reload --port 8000
-
Navigate to frontend directory
cd frontend/mocker_web -
Install Flutter dependencies flutter pub get
-
Configure Firebase and Google Sign-In Client ID
- Add your
firebase_options.dartfile or change the ID and key to your own version in the existingfirebase_options.dartfile - Add your own Google Sign-In Client ID in
lib/services/auth_service.dartandweb/index.htmlfile
- Add your
-
Run the web application
flutter run -d chrome --web-port 3000
mocker/
βββ backend/ # Python FastAPI backend
β βββ agents/ # AI agents (interviewer, judge)
β βββ api/ # REST API endpoints
β βββ data/ # Database models and schemas
β βββ coordinator/ # Session management
β βββ service/
βββ frontend/ # Flutter web frontend
β βββ mocker_web/
β βββ lib/
β β βββ pages/ # UI pages/screens
β β βββ services/ # API service layer
β β βββ models/ # Data models
β β βββ widgets/ # Reusable UI components
β β βββ config/ # App configuration
β βββ web/ # Web-specific assets
βββ README.md # Project documentation
- Create Account: Sign up using your email or social login
- Prepare Workflow: Upload your resume and create a workflow for your target position
- Get Recommendation Q&A: Review AI-generated interview questions tailored to your profile
- Practice Interview: Start a mock interview session with our AI interviewer
- Receive Feedback: Get detailed analysis and suggestions for improvement
- Track Progress: Monitor your performance across multiple sessions
Once the backend is running, visit http://localhost:8000/docs for interactive API documentation powered by Swagger UI.
Intervoice now uses Claude 3.5 by Anthropic as the primary AI model, offering superior reasoning and analysis capabilities compared to Gemini.
- β Summarizer Agent - Migrated (using Haiku for cost-efficiency)
- β Question Generator - Migrated (using Sonnet for quality)
- β³ Answer Generator - Ready to migrate
- β³ Interview Judge - Ready to migrate
- β³ Search Agent - Requires Tavily API
- β³ Mock Interviewer - Text-only (audio requires additional setup)
You can migrate agents one at a time using feature flags:
# backend/.env
USE_CLAUDE=false # Default to Gemini
# Enable Claude per agent
SUMMARIZER_USE_CLAUDE=true
QUESTION_GEN_USE_CLAUDE=true
ANSWER_GEN_USE_CLAUDE=false # Keep on Gemini- π Setup Guide:
SETUP_CLAUDE.md - π Migration Guide:
CLAUDE_MIGRATION_GUIDE.md - π Progress Tracker:
MIGRATION_PROGRESS.md - β‘ Quick Start:
QUICK_START_CLAUDE.md
`
We welcome contributions!
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
If you have any questions or need help, please:
- π§ Contact support for assistance
- π¬ Join our community discussions
- π Check the documentation
Built with β€οΈ using Flutter, Python, and Google AI
β Star this repo if you find it helpful!