Skip to content

AI-powered interview simulation platform for candidate practice and company screening. Features real-time AI interviewers, multi-LLM support, and WebSocket communication.

License

Notifications You must be signed in to change notification settings

HopeLoom/AI-Interview

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

31 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

πŸš€ AI Interview Simulation Platform

License: MIT TypeScript Python CI Contributions Welcome PRs Welcome

An open-source AI-powered interview simulation platform for candidate practice and company screening. Features real-time AI interviewers, multi-LLM support, and WebSocket communication.

Key Features:

  • πŸ€– AI-Powered Interviewers - Multiple LLM providers (OpenAI, DeepSeek, Gemini, Grok)
  • 🎯 Dual-Mode Operation - Candidate practice and company screening modes
  • ⚑ Real-Time Communication - WebSocket-based bidirectional communication
  • 🎨 Modern UI - Built with React, TypeScript, and Tailwind CSS
  • πŸ”§ Flexible Configuration - JSON-based interview configuration system
  • πŸ“Š Comprehensive Evaluation - Automated scoring and feedback system

🌟 Overview

This platform transforms the interview experience by providing AI-powered interviewers, real-time evaluation, and comprehensive feedback. Built with React, TypeScript, and modern web technologies, it supports three distinct deployment modes for different use cases.

🎯 Three-Mode Architecture

Mode 1: Candidate Practice (candidate-practice)

Purpose: Independent candidates practice interviews to improve skills

  • Features: Full signup, practice scenarios, skill development, resume upload
  • Target Users: Job seekers, students, professionals wanting to practice
  • Experience: Comprehensive practice platform with learning features

Mode 2: Company Interviewing (company-interviewing)

Purpose: Companies create and manage AI-powered interview screening

  • Features: Company signup, interview creation, candidate management, analytics
  • Target Users: HR teams, hiring managers, recruitment agencies
  • Experience: Full interview management and candidate screening platform

Mode 3: Company Candidate Interview (company-candidate-interview)

Purpose: Candidates take company-created interviews

  • Features: No signup, interview code login, focused interview experience
  • Target Users: Candidates invited by companies for screening
  • Experience: Streamlined, professional interview session

πŸ› οΈ Technology Stack

  • Frontend: React 18 + TypeScript
  • Build Tool: Vite
  • Styling: Tailwind CSS + shadcn/ui components
  • Routing: Wouter (lightweight React router)
  • State Management: React Context API
  • Real-time Communication: WebSocket
  • AI Integration: OpenAI, DeepSeek, Gemini, Grok APIs
  • Audio/Video: WebRTC, ElevenLabs, Google Speech

πŸš€ Quick Start

Prerequisites

Installation

# Clone the repository
git clone git@github.com:HopeLoom/AI-Interview.git
cd AI-Interview

# Frontend setup
npm install

# Backend setup
cd backend
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
pip install -r requirements.txt
cd ..

# Configure environment (see SETUP.md for details)
cp .env.example .env
cp backend/.env.example backend/.env
# Edit .env files with your API keys and configuration

Development

Start Backend:

cd backend
python main.py
# Backend runs on http://localhost:8000

Start Frontend (in another terminal):

# Candidate Practice Mode
npm run dev:candidate

# Company Interviewing Mode  
npm run dev:company

# Company Candidate Interview Mode
npm run dev:company-candidate

# Default development mode
npm run dev
# Frontend runs on http://localhost:3000

πŸ“– For detailed setup instructions, see SETUP.md

Building for Production

# Build for different modes

# Candidate Practice Platform
npm run build:candidate

# Company Interviewing Platform
npm run build:company

# Company Candidate Interview Platform
npm run build:company-candidate

# Default build
npm run build

βš™οΈ Environment Configuration

The platform uses environment-specific configuration files that are automatically loaded based on the build mode.

Environment File Structure

.env                                    # Base environment (fallback)
.env.staging                           # Staging backend config
.env.production                        # Production backend config

# Mode-specific configurations
.env.candidate-practice               # Development candidate mode + staging backend
.env.company-interviewing             # Development company mode + staging backend
.env.company-candidate-interview      # Development company candidate mode + staging backend

# Production mode-specific configurations
.env.candidate-practice.production    # Production candidate mode + production backend
.env.company-interviewing.production  # Production company mode + production backend
.env.company-candidate-interview.production # Production company candidate mode + production backend

Environment Variables

# Core Configuration
VITE_APP_MODE=candidate-practice      # Application mode
VITE_API_BASE_URL=api.hopeloom.com   # Backend API URL
VITE_ENV=production                   # Environment (staging/production)

# Feature Flags
VITE_ENABLE_COMPANY_FEATURES=true     # Enable company-specific features
VITE_ENABLE_CANDIDATE_FEATURES=true   # Enable candidate-specific features

# Application Metadata
VITE_APP_TITLE=AI Interview Practice  # Application title
VITE_APP_DESCRIPTION=Practice interviews with AI-powered interviewers

πŸ—οΈ Architecture Overview

For detailed architecture documentation with diagrams, see ARCHITECTURE.md.

Core Components

Master Agent System:

  • Orchestrates the entire interview process
  • Manages communication between all agents
  • Handles WebSocket communication with frontend
  • Tracks interview state and flow

AI Panelist Agents:

  • Multiple AI panelists with distinct personalities
  • Each panelist has memory, decision-making, and response generation
  • Supports multiple LLM providers (OpenAI, DeepSeek, Gemini, Grok)

Activity Agent:

  • Monitors coding activities during interviews
  • Analyzes candidate code submissions
  • Provides feedback to panelists

WebSocket Communication:

  • Real-time bidirectional communication
  • Handles audio, text, and code submissions
  • Manages interview state synchronization

Project Structure

Simulation/
β”œβ”€β”€ client/                          # Frontend React application
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/             # Reusable UI components
β”‚   β”‚   β”‚   β”œβ”€β”€ signup/            # Signup form components
β”‚   β”‚   β”‚   β”œβ”€β”€ interview/         # Interview-related components
β”‚   β”‚   β”‚   β”œβ”€β”€ configuration/     # Interview configuration components
β”‚   β”‚   β”‚   └── ui/               # Base UI components (shadcn/ui)
β”‚   β”‚   β”œβ”€β”€ pages/                # Page components
β”‚   β”‚   β”œβ”€β”€ contexts/             # React context providers
β”‚   β”‚   β”œβ”€β”€ hooks/                # Custom React hooks
β”‚   β”‚   β”œβ”€β”€ lib/                  # Utility libraries
β”‚   β”‚   └── services/             # API service layer
β”‚   └── package.json
β”œβ”€β”€ backend/                       # Python backend services
β”‚   β”œβ”€β”€ master_agent/             # Master agent orchestration
β”‚   β”œβ”€β”€ panelist_agent/           # AI panelist agents
β”‚   β”œβ”€β”€ interview_configuration/  # Configuration management
β”‚   β”œβ”€β”€ routers/                  # API route handlers
β”‚   β”œβ”€β”€ core/                     # Core functionality
β”‚   β”‚   β”œβ”€β”€ database/            # Database abstraction
β”‚   β”‚   β”œβ”€β”€ memory/              # Agent memory systems
β”‚   β”‚   └── prompting/          # Prompt strategies
β”‚   └── server/                  # WebSocket server
β”œβ”€β”€ shared/                        # Shared TypeScript schemas
β”œβ”€β”€ .env.*                        # Environment configuration files
└── README.md

Database Support

The platform supports multiple database backends:

  • SQLite - Easiest for development (included with Python)
  • PostgreSQL - Production-ready relational database
  • Firebase - NoSQL cloud database

See SETUP.md for database configuration.

πŸ”§ Mode Configuration

Mode-Specific Features

Each mode has different feature sets enabled:

Feature Candidate Practice Company Interviewing Company Candidate Interview
Candidate Signup βœ… βœ… ❌
Company Signup ❌ βœ… ❌
Candidate Dashboard βœ… βœ… ❌
Company Dashboard ❌ βœ… ❌
Interview Configuration βœ… βœ… ❌
Practice Mode βœ… ❌ ❌
Screening Mode ❌ βœ… βœ…

Routing Configuration

Each mode has different allowed routes and default destinations:

// Example: Company Candidate Interview Mode
{
  mode: 'company-candidate-interview',
  routing: {
    defaultRoute: '/interview',
    allowedRoutes: ['/login', '/interview']
  }
}

πŸš€ Deployment

Single Codebase, Multiple Deployments

The platform is designed to be deployed as three separate applications:

  1. Practice Platform: npm run build:candidate
  2. Company Platform: npm run build:company
  3. Interview Platform: npm run build:company-candidate

Deployment Commands

# Build all three platforms
npm run build:candidate
npm run build:company  
npm run build:company-candidate

# Each build creates optimized production files in dist/public/

Environment-Specific Deployment

  • Staging: Uses .env.{mode} files with staging backend
  • Production: Uses .env.{mode}.production files with production backend

πŸ” Authentication & User Management

User Types

  • Candidates: Practice users and company interview takers
  • Companies: Interview creators and managers

Authentication Flow

  1. Practice Mode: Full signup/login for candidates
  2. Company Mode: Company signup + candidate signup
  3. Interview Mode: Email + interview code only

πŸ“± Key Features

AI-Powered Interviewers

  • Multiple AI models (OpenAI, DeepSeek, Gemini, Grok)
  • Real-time conversation simulation
  • Context-aware responses
  • Industry-specific knowledge

Interview Management

  • Custom question creation
  • Multiple interview formats
  • Candidate tracking
  • Performance analytics

Real-time Communication

  • WebSocket-based communication
  • Audio/video integration
  • Live transcription
  • Session recording

πŸ§ͺ Testing

TypeScript Compilation

npm run check

Development Testing

# Test different modes
npm run dev:candidate
npm run dev:company
npm run dev:company-candidate

πŸ“š API Documentation

Backend Integration

The platform integrates with a Python backend that provides:

  • User authentication and management
  • Interview configuration and management
  • AI model integration
  • Real-time communication services

API Endpoints

  • /api/auth/* - Authentication endpoints
  • /api/interviews/* - Interview management
  • /api/candidates/* - Candidate management
  • /api/companies/* - Company management

πŸ”§ Key Features

Core Interview Simulation

  • βœ… Multi-round interviews with different panelists per round
  • βœ… Real-time AI conversation via WebSocket
  • βœ… Coding activity monitoring with live code analysis
  • βœ… Evaluation system with scoring and feedback
  • βœ… Multiple LLM providers (OpenAI, DeepSeek, Gemini, Grok)

Configuration System

  • βœ… Dynamic interview configuration generation from job descriptions
  • βœ… Template-based setup with example configurations
  • βœ… Granular topic selection for interview rounds
  • βœ… Custom panelist personalities and roles

Multi-Mode Support

  • βœ… Candidate Practice Mode - Self-service interview practice
  • βœ… Company Interviewing Mode - Full interview management
  • βœ… Company Candidate Mode - Streamlined interview experience

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

🀝 Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines.

πŸ“š Documentation

πŸ†˜ Support & Resources

🌟 Show Your Support

If this project helped you, please consider:

  • ⭐ Starring this repository
  • πŸ› Reporting bugs and suggesting features
  • πŸ’‘ Contributing code or documentation
  • πŸ“’ Sharing with others who might find it useful

πŸ—ΊοΈ Roadmap

  • Enhanced authentication and authorization
  • More LLM provider integrations
  • Advanced analytics dashboard
  • Mobile app support
  • Multi-language support
  • Video recording capabilities
  • Integration with popular HR tools

See Projects for detailed roadmap.

⚠️ Important Notes

This is a prototype/starter project:

  • Authentication and authorization are intentionally simplified for development
  • Add proper security (password hashing, JWT, authorization) before production use
  • Database schema is created automatically on first run
  • See OPEN_SOURCE_READINESS_ASSESSMENT.md for details

πŸ”„ Version History

v1.0.0 - Three-Mode System

  • βœ… Candidate Practice Mode
  • βœ… Company Interviewing Mode
  • βœ… Company Candidate Interview Mode
  • βœ… Mode-aware routing and configuration
  • βœ… Environment-specific builds
  • βœ… Clean component architecture

Built with ❀️ by the HopeLoom Team

About

AI-powered interview simulation platform for candidate practice and company screening. Features real-time AI interviewers, multi-LLM support, and WebSocket communication.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published