This project addresses the โHuman-in-Loop System with Complete State Management and Rollbackโ problem under the Fullstack Engineer track.
Modern AI systems often require real-time human feedback before continuing a workflow.
The AI Interview Assistant implements this concept by placing a human (the candidate) inside an interactive, event-driven interview system powered by AI.
The AI Interview Assistant is an end-to-end web application that:
- Parses the candidateโs resume
- Dynamically generates interview questions using the Google Gemini API
- Simulates a live interview with timed responses
- Evaluates answers asynchronously through AI
- Provides immediate feedback, scoring, and performance analytics
The system is event-driven, stateful, and resilient โ capable of pausing/resuming workflows, handling delays, and supporting retries or feedback loops.
-
Frontend (React + Vite + Ant Design)
- Dynamic, configurable UI for interview flow
- Tracks current question, timer, and user responses
- Communicates asynchronously with backend APIs
-
Backend (Node.js + Express)
- Handles orchestration logic and API routes
- Integrates with Google Gemini API for AI-driven Q&A and feedback
- Maintains interview state and logs for replay or retry
-
State Management & Rollback
- Interview session stored in memory or database
- Supports reattempting questions and restarting sessions
- Logs AI responses and timestamps for observability
-
Observability & Feedback
- Dashboard visualizes interview performance and AI feedback
- Each session includes analytics: time spent, question category, score, and AI evaluation
| Layer | Technology |
|---|---|
| Frontend | React, Vite, Ant Design |
| Backend | Node.js, Express |
| AI Model | Google Gemini API |
| State Management | Session store + local state tracking |
| Deployment | Render (Monorepo setup) |
- Real-time humanโAI interaction (Human-in-Loop)
- Stateful session management and dynamic resume/rollback
- Asynchronous AI evaluation and feedback
- Event-driven API design (frontend & backend decoupled)
- Fully deployable on Render or any Node/React host
| Evaluation Criteria | Implementation |
|---|---|
| Architecture Thinking (25%) | Event-driven design; separate AI orchestration backend |
| State Model Design (20%) | Interview progress tracked with states: pending โ evaluating โ completed |
| Frontend Configurability (15%) | Dynamic React components render questions, timers, and feedback |
| Resilience & Retry Logic (15%) | Supports session restarts and reattempts |
| Integration Creativity (15%) | Gemini API integration for multi-round interview logic |
| Observability & Feedback Loop (10%) | Performance dashboard and detailed answer analytics |
ai-interview-assistant/
โ
โโโ backend/ # Express backend
โ โโโ server.js # Main backend entry point
โ โโโ package.json # Backend dependencies
โ โโโ .env # Backend environment variables (not committed)
โ โโโ public/ # Built frontend assets (copied from frontend/dist)
โ
โโโ frontend/ # React + Vite frontend
โ โโโ src/ # Frontend source code
โ โ โโโ api.js # API wrapper for backend calls
โ โ โโโ App.jsx # Main React App
โ โ โโโ pages/ # Pages (InterviewPage, DashboardPage, etc.)
โ โ โโโ components/ # Reusable React components
โ โโโ package.json # Frontend dependencies
โ โโโ .env # Frontend environment variables
โ โโโ dist/ # Production build (generated by Vite)
โ
โโโ .gitignore # Ignore node_modules, env, build files
โโโ README.md # Project documentation
โโโ render.yaml # (Optional) Render configuration
Live App: [https://your-ai-interview-assistant-demo-link.com](#)
GitHub: https://github.com/Guna1610/ai-interview-assistant
- Add multi-agent evaluation (HR bot + Tech bot)
- Integrate Slack/Gmail notifications for interview summaries
- Enable long-term analytics with MongoDB or Firebase
- Add Lyzr SDK agent orchestration integration
git clone https://github.com/Guna1610/ai-interview-assistant.git
cd ai-interview-assistant
cd backend
npm install
- Create a .env file in backend/ with:
- GEMINI_API_KEY=your_google_gemini_api_key
- NODE_ENV=production
node server.js
cd ../frontend
npm install
- Create .env in frontend/:
- VITE_API_URL=http://localhost:4000
npm run dev
- Visit: http://localhost:5173
This repo is already configured for monorepo deployment:
Build Command:
cd frontend && npm ci && npm run build && cd ../backend && npm ci && mkdir -p public && cp -r ../frontend/dist/* public/
Start Command:
node server.js
- GEMINI_API_KEY=your_google_gemini_api_key
- NODE_ENV=production
- VITE_API_URL=https://your-service-name.onrender.com
- Render automatically serves the React build from /backend/public and proxies API calls to Express.
- Fork the repo
- Create a new branch (feature-xyz)
- Commit changes and push
- Open a Pull Request
Live App: https://your-ai-interview-assistant-demo-link.com
GitHub: https://github.com/Guna1610/ai-interview-assistant
- Add multi-agent evaluation (HR bot + Tech bot)
- Integrate Slack/Gmail notifications for interview summaries
- Enable long-term analytics with MongoDB or Firebase
- Add Lyzr SDK agent orchestration integration
MIT License โ free to use and modify