How tri01012002/ai-interviewer-adaptive-multimodal-ai-interview-platform works
AI Interviewer is a recruitment platform centered on adaptive candidate interviews: authenticated API clients start interviews and submit turns, the interview agent plans and generates questions using knowledge retrieval, answers are evaluated, and reports expose results. Text and voice are documented interaction modes; the sampled WebSocket route and voice session show the voice path. The repository also includes organization, campaign, application, scheduling, and candidate-communication workflows. Some agent and service connections are supported only by the README or SOURCE INDEX references, so unsampled details are not expanded.
Main entry points: recruitment_campaigns.py Campaign endpoints · routes/interview.py Interview endpoints · interview_agent Interview agent · websocket/interview.py Voice WebSocket
Components 23
API and identity
- API application
apps/api/main.py - Authentication
services/auth_service.py - Tenant authorization
services/tenant_authorization.py - Interview endpoints
apps/api/v1/routes/interview.py - Campaign endpoints
apps/api/v1/routes/recruitment_campaigns.py
Recruitment operations
- Campaign workflow
services/recruitment_campaign_orchestrator.py - Campaign management
services/recruitment_campaign_service.py - Candidate applications
services/candidate_application_service.py - Interview scheduling
services/interview_scheduling_service.py - Candidate communications
services/candidate_communication_service.py - Platform database
services/database.py
Interview intelligence
- Interview service
services/interview_service.py - Interview agent
agents/interview_agent - Question generation
agents/question_agent - Answer evaluation
evaluation/service.py - Interview reports
services/report_service.py - LLM providers
integrations/llm_providers/provider.py
Knowledge retrieval
- Knowledge retrieval
rag/service.py - Corpus loading
rag/corpus_loader.py
Voice interaction
- Voice WebSocket
apps/api/websocket/interview.py - Voice session
voice/session.py - Speech providers
voice/real_providers.py
Other components
- API client
Connections 27
- API client → API application: sends requests
README.md - API application → Interview endpoints: routes requests
apps/api/main.py - API application → Campaign endpoints: routes requests
apps/api/main.py - Interview endpoints → Authentication: uses authentication
apps/api/v1/routes/interview.py - Interview endpoints → Tenant authorization: checks access
apps/api/v1/routes/interview.py - Interview endpoints → Interview service: calls service
apps/api/v1/routes/interview.py - Interview endpoints → Interview reports: requests reports
apps/api/v1/routes/interview.py - Campaign endpoints → Tenant authorization: checks access
apps/api/v1/routes/recruitment_campaigns.py - Campaign endpoints → Campaign workflow: orchestrates workflow
apps/api/v1/routes/recruitment_campaigns.py - Campaign endpoints → Campaign management: calls service
apps/api/v1/routes/recruitment_campaigns.py - Campaign endpoints → Candidate applications: uses applications
apps/api/v1/routes/recruitment_campaigns.py - Campaign endpoints → Interview scheduling: requests scheduling
apps/api/v1/routes/recruitment_campaigns.py - Campaign endpoints → Candidate communications: requests communications
apps/api/v1/routes/recruitment_campaigns.py - Campaign management → Platform database: reads and writes
services/recruitment_campaign_service.py - Campaign endpoints → Platform database: campaign data
- Interview service → Interview agent: runs interview
- Interview agent → Question generation: generates questions
README.md - Interview agent → Answer evaluation: evaluates answers
agents/interview_agent/graph/__init__.py - Interview agent → LLM providers: uses provider
agents/interview_agent/graph/__init__.py - Interview agent → Knowledge retrieval: retrieves context
README.md - Interview endpoints → Knowledge retrieval: uses knowledge base
README.md - Corpus loading → Knowledge retrieval: loads corpus
rag/corpus_loader.py - Voice WebSocket → Voice session: creates session
apps/api/websocket/interview.py - Voice session → Speech providers: uses speech services
voice/session.py - Voice WebSocket → Authentication: validates token
apps/api/websocket/interview.py - Voice WebSocket → Interview endpoints: shares interview mode
README.md - Answer evaluation → Interview reports: supplies assessment