Skip to content

AI Interview Assistant is a full-stack web application that helps candidates prepare for job interviews using AI-powered question generation, real-time answering, and automated feedback. Users can upload their resumes, practice interviews, receive instant AI evaluation, and track past sessions in a dashboard.

Notifications You must be signed in to change notification settings

Guna1610/ai-interview-assistant

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

22 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

AI Interview Assistant โ€” Human-in-Loop System with Complete State Management and Rollback

๐Ÿง  Problem Alignment

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.


๐ŸŽฏ Overview

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.


โš™๏ธ Architecture Overview

๐Ÿงฉ Core Components

  1. Frontend (React + Vite + Ant Design)

    • Dynamic, configurable UI for interview flow
    • Tracks current question, timer, and user responses
    • Communicates asynchronously with backend APIs
  2. 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
  3. State Management & Rollback

    • Interview session stored in memory or database
    • Supports reattempting questions and restarting sessions
    • Logs AI responses and timestamps for observability
  4. Observability & Feedback

    • Dashboard visualizes interview performance and AI feedback
    • Each session includes analytics: time spent, question category, score, and AI evaluation

๐Ÿ› ๏ธ Tech Stack

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)

๐Ÿ’ก Key Features

  • 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 Mapping

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

๐Ÿงฑ Repository Structure

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

๐Ÿš€ Demo

Live App: [https://your-ai-interview-assistant-demo-link.com](#)
GitHub: https://github.com/Guna1610/ai-interview-assistant


๐Ÿ”ฎ Future Enhancements

  • 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

๐Ÿš€ Getting Started

1. Clone the Repository

git clone https://github.com/Guna1610/ai-interview-assistant.git
cd ai-interview-assistant

2. Setup Backend

cd backend
npm install
  • Create a .env file in backend/ with:
  • GEMINI_API_KEY=your_google_gemini_api_key
  • NODE_ENV=production

Run locally:

node server.js

3. Setup Frontend

cd ../frontend
npm install

Run locally:

npm run dev

๐ŸŒ Deployment on Render

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

Environment Variables (Render Dashboard โ†’ Environment):

  • 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.

๐Ÿ“ธ Screenshots

Screenshot 2025-10-02 121718 Screenshot 2025-10-02 121823 Screenshot 2025-10-02 121755 Screenshot 2025-10-02 121733 Screenshot 2025-10-02 122335 Screenshot 2025-10-02 122126 Screenshot 2025-10-02 122114 Screenshot 2025-10-02 121849 Screenshot 2025-10-02 121836

๐Ÿค Contributing

  • Fork the repo
  • Create a new branch (feature-xyz)
  • Commit changes and push
  • Open a Pull Request

๐Ÿš€ Demo

Live App: https://your-ai-interview-assistant-demo-link.com
GitHub: https://github.com/Guna1610/ai-interview-assistant


๐Ÿ”ฎ Future Enhancements

  • 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

๐Ÿ“œ License

MIT License โ€” free to use and modify

About

AI Interview Assistant is a full-stack web application that helps candidates prepare for job interviews using AI-powered question generation, real-time answering, and automated feedback. Users can upload their resumes, practice interviews, receive instant AI evaluation, and track past sessions in a dashboard.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published