How rohinbhatti03/ai_interviewer works
This is an AI-powered technical interview practice app. A candidate configures an interview, optionally supplies a resume, answers generated oral or coding questions, receives per-answer evaluation and adaptive follow-ups, and gets a session report. The frontend context coordinates the session and calls the FastAPI service through a shared API client. The backend excerpt documents resume-aware questions, transcription, scoring, reporting, and spoken interviewer audio. Backend implementation details and some UI wiring are unsampled, so those links are limited to documented API capabilities.
Main entry points: main.py FastAPI service · page.tsx Interview app · api.ts API client · interview-room.tsx Interview room
Components 21
Interview experience
- Interview app
front-end/app/page.tsx - Landing
front-end/components/landing.tsx - Interview setup
front-end/components/interview-setup.tsx - Resume upload
front-end/components/resume-upload.tsx - Interview room
front-end/components/interview-room.tsx - Code editor
front-end/components/code-editor.tsx - Audio recorder
front-end/components/audio-recorder.tsx - Report view
front-end/components/interview-report.tsx
Session coordination
- Interview state
front-end/lib/interview-context.tsx - API client
front-end/lib/api.ts - API types
front-end/lib/types.ts
Interview service
- FastAPI service
back-end/main.py - Resume parsing
back-end/main.py - Question generation
back-end/main.py - Follow-up decision
back-end/main.py - Answer evaluation
back-end/main.py - Session report
back-end/main.py - Speech services
back-end/main.py
AI integrations
- Groq language model
- Speech models
Other components
- Candidate
Connections 25
- Candidate → Interview app: uses
- Interview app → Interview state: renders provider
- Interview app → Landing: renders
- Interview app → Interview setup: renders
- Interview app → Interview room: renders
- Interview app → Report view: renders
- Interview setup → Resume upload: offers upload
- Interview room → Code editor: embeds
- Interview room → Audio recorder: offers recording
- Interview state → API client: requests interview APIs
- Resume upload → API client: parses resume
- Audio recorder → API client: transcribes audio
- API client → FastAPI service: HTTP requests
- FastAPI service → Resume parsing: dispatches
- FastAPI service → Question generation: dispatches
- FastAPI service → Follow-up decision: dispatches
- FastAPI service → Answer evaluation: dispatches
- FastAPI service → Session report: dispatches
- FastAPI service → Speech services: dispatches
- Resume parsing → Groq language model: extracts summary
- Question generation → Groq language model: generates questions
- Follow-up decision → Groq language model: decides next step
- Answer evaluation → Groq language model: scores answer
- Session report → Groq language model: summarizes session
- Speech services → Speech models: transcribes or synthesizes