Skip to content

Latest commit

ย 

History

14 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽ™๏ธ Interview Agent AI โ€” Intelligent Mock Interview & Candidate Evaluation Platform

Live Demo GitHub Repo

React 19 TypeScript Google Gemini Tailwind CSS v4 License: MIT

Transform technical and behavioral interview preparation with autonomous AI assessment, real-time speech-to-text dictation, structured rubric scoring, and instant panel hiring recommendations.

๐Ÿš€ Live Production App: https://interview-agent-ai.netlify.app/ ย |ย  ๐Ÿ’ป GitHub Source: https://github.com/bikram73/Interview_Agent_AI


๐Ÿ“‘ Table of Contents

๐Ÿ“– Description
๐Ÿš€ Section
View the project features and capabilities. ๐Ÿ‘‰
View the technologies, frameworks, and programming languages used. ๐Ÿ‘‰
Explore the project's folder and file organization. ๐Ÿ‘‰
Follow the installation steps and local development setup. ๐Ÿ‘‰
Understand the complete AI document processing pipeline. ๐Ÿ‘‰
Learn about the AI prompting strategy and anti-hallucination techniques. ๐Ÿ‘‰
Understand how confidence scores are calculated and interpreted. ๐Ÿ‘‰
View all deliverables required for the AI challenge. ๐Ÿ‘‰
See an example of the structured JSON output generated by the AI agent. ๐Ÿ‘‰
View the available REST API endpoints and usage examples. ๐Ÿ‘‰
View an overview of the sample documents and extraction results included in this project. ๐Ÿ‘‰
Open the dedicated Sample Results page to view all sample documents, images, PDFs, and extracted JSON outputs. ๐Ÿ‘‰
Explore the complete system architecture, AI workflow, processing pipeline, data flow, deployment design, and technical decisions. ๐Ÿ‘‰
Review implementation details, AI pipeline, performance metrics, benchmarking, validation strategy, privacy, testing, and technical specifications. ๐Ÿ‘‰
Review processing speed, latency, and performance benchmarks. ๐Ÿ‘‰
Understand the current limitations and known failure cases of the AI extractor. ๐Ÿ‘‰
View the project license information. ๐Ÿ‘‰

โœจ Project Features & Capabilities

  • ๐ŸŽฏ Multi-Track Role Library: Over 11+ curated technical and soft-skill tracks (Python Developer, Java/Spring Boot, Frontend/React, Backend APIs, Full Stack, AI Engineer, ML Engineer, Data Scientist, Cybersecurity Analyst, Cloud DevOps, HR Behavioral) plus support for Custom Job Roles.
  • ๐Ÿ“Š Dynamic Experience Calibration: Configurable difficulty curves tailored for Fresher / Entry Level, Junior (1-2 yrs), Mid-Level (3-5 yrs), and Senior (6+ yrs).
  • โšก Structured AI Question Generation: Leverages Google Gemini 2.5/3 Flash with strict schema constraints to generate balanced interview sets spanning fundamentals, system design, architectural trade-offs, and STAR scenarios.
  • ๐ŸŽ™๏ธ Voice Dictation (Speech-to-Text): Built-in Web Speech API recognition enabling candidates to speak naturally in real-time, just like in a live interview room.
  • โฑ๏ธ Real-Time Timed Sessions: Built-in visual countdown timer, live word/character counters, and question sequence trackers.
  • ๐Ÿ” Instant Question-by-Question Evaluation: Deep rubric grading with numerical scores (0โ€“10), key strengths identified, missing technical gaps highlighted, and actionable STAR improvement tips.
  • ๐Ÿ’ก Ideal Response Benchmarking: Displays key technical concepts and ideal bullet points expected by senior interviewers.
  • ๐Ÿ“ˆ Executive Hiring Report: Synthesizes session transcript into an aggregate candidate score (0โ€“100%), hiring recommendation (Strong Hire, Hire - Low Risk, Borderline, Needs Development), confidence level, and prioritized study roadmaps.
  • ๐Ÿ“ฅ Themed PDF & Text Export: One-click download of high-resolution PDF evaluation dossiers styled in the exact visual theme of the platform (score cards, gauges, strengths, weaknesses, and full transcripts) alongside plain .txt format.
  • ๐Ÿš€ Dual Deployment Ready: Seamless execution across Express.js servers (Docker/Cloud Run) and Serverless Netlify Functions with automated redirects.

๐Ÿ› ๏ธ Tech Stack & Languages

+-------------------------------------------------------------------------+
|                              FRONTEND LAYER                             |
|  React 19.0.1  *  TypeScript 5.8  *  Tailwind CSS v4  *  Lucide / Icons |
|  Motion (Framer)  *  Web Speech API  *  Vite 6 Bundler                  |
+-------------------------------------------------------------------------+
                                    |
                                    v
+-------------------------------------------------------------------------+
|                             API & SERVER LAYER                          |
|  Node.js (v20+)  *  Express 4.21  *  Netlify Serverless Functions       |
|  @google/genai TypeScript SDK  *  esbuild Bundler  *  tsx Runtime       |
+-------------------------------------------------------------------------+
                                    |
                                    v
+-------------------------------------------------------------------------+
|                                AI CORE LAYER                            |
|  Google Gemini 3.6 / 2.5 Flash  *  Structured JSON Schema Enforcement   |
|  Prompt Engineering & Anti-Hallucination Grounding                      |
+-------------------------------------------------------------------------+

๐Ÿ’ป Programming Languages

  • TypeScript (v5.8.2): 100% strict type safety across client UI, data models, server routes, and Netlify Functions.
  • JavaScript (ES Modules & CJS): Modern ES2024 runtime specifications.
  • HTML5 & CSS3: Modern semantic markup styled with Tailwind CSS v4 CSS design tokens.

๐Ÿ“ฆ Key Libraries & Frameworks

Layer Technology Purpose
Client UI React 19.0.1 Component-based reactive user interface
Styling Tailwind CSS 4.1.14 High-performance CSS utility styling engine
Animation motion 12.23.24 Smooth screen and state transitions
Icons lucide-react & Google Material Symbols Clean, professional UI icons
AI SDK @google/genai 2.4.0 Official Google Gemini GenAI SDK
Dev Server Vite 6.2.3 & tsx 4.21.0 Ultra-fast HMR and TypeScript execution
Backend Server Express 4.21.2 RESTful API proxy and static asset delivery
Serverless @netlify/functions 5.3.0 Serverless cloud functions for Netlify hosting

๐Ÿ“‚ File Structure

interview-agent-ai/
โ”œโ”€โ”€ netlify/
โ”‚   โ””โ”€โ”€ functions/
โ”‚       โ”œโ”€โ”€ evaluate-answer.ts      # Netlify function for candidate answer evaluation
โ”‚       โ”œโ”€โ”€ generate-questions.ts   # Netlify function for AI question generation
โ”‚       โ””โ”€โ”€ generate-report.ts      # Netlify function for executive summary & report
โ”œโ”€โ”€ public/
โ”‚   โ”œโ”€โ”€ _redirects                  # Netlify SPA and API rewrite rules
โ”‚   โ””โ”€โ”€ vite.svg
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ components/
โ”‚   โ”‚   โ”œโ”€โ”€ EvaluationView.tsx      # Step-by-step evaluation, scores, and strength breakdown
โ”‚   โ”‚   โ”œโ”€โ”€ LandingView.tsx         # Hero landing view with role tracks & stats
โ”‚   โ”‚   โ”œโ”€โ”€ Navbar.tsx              # Application header navigation
โ”‚   โ”‚   โ”œโ”€โ”€ PerformanceView.tsx     # Final candidate report, hiring recommendation & transcript
โ”‚   โ”‚   โ”œโ”€โ”€ RolesView.tsx           # Role selector, experience configuration & question count
โ”‚   โ”‚   โ””โ”€โ”€ SessionView.tsx         # Active interview room, voice STT & timer
โ”‚   โ”œโ”€โ”€ services/
โ”‚   โ”‚   โ””โ”€โ”€ api.ts                  # Client-side API client wrapper with fallback resilience
โ”‚   โ”œโ”€โ”€ App.tsx                     # Main state machine, screen routing & session coordination
โ”‚   โ”œโ”€โ”€ index.css                   # Tailwind CSS v4 entrypoint & theme variables
โ”‚   โ”œโ”€โ”€ main.tsx                    # React DOM root entry
โ”‚   โ””โ”€โ”€ types.ts                    # Global TypeScript interfaces & data contracts
โ”œโ”€โ”€ .env.example                    # Environment variable template
โ”œโ”€โ”€ .gitignore                      # Git exclusion rules
โ”œโ”€โ”€ ARCHITECTURE.md                 # System architecture, data flow & deployment docs
โ”œโ”€โ”€ LICENSE                         # MIT open-source license
โ”œโ”€โ”€ metadata.json                   # Applet configuration & server permissions
โ”œโ”€โ”€ netlify.toml                    # Netlify build, redirects, and function routing
โ”œโ”€โ”€ package.json                    # Dependencies, scripts, and build configuration
โ”œโ”€โ”€ README.md                       # Comprehensive project documentation
โ”œโ”€โ”€ SAMPLE_RESULTS.md               # Sample questions, candidate answers & evaluations
โ”œโ”€โ”€ server.ts                       # Express.js full-stack development & production server
โ”œโ”€โ”€ TECHNICAL_REPORT.md             # Benchmark metrics, AI pipeline & evaluation analysis
โ”œโ”€โ”€ tsconfig.json                   # TypeScript compiler configuration
โ””โ”€โ”€ vite.config.ts                  # Vite build and plugin configuration

๐Ÿš€ Installation & Local Setup

Prerequisites

  • Node.js: Version 20.x or higher
  • npm or bun / yarn / pnpm
  • Google Gemini API Key: Obtain a free key from Google AI Studio

1. Clone the Repository

git clone https://github.com/bikram73/Interview_Agent_AI.git
cd Interview_Agent_AI

2. Install Dependencies

npm install

3. Configure Environment Variables

Create a .env file in the root directory:

cp .env.example .env

Populate your Gemini API key:

GEMINI_API_KEY=your_actual_gemini_api_key_here

4. Run Development Server

npm run dev

The application will be live at http://localhost:3000.

5. Production Build

npm run build
npm run start

6. Netlify Deployment

This project is pre-configured with netlify.toml, public/_redirects, and /netlify/functions.

๐Ÿ”— Live Production Site: https://interview-agent-ai.netlify.app/

  1. Push code to your GitHub repository (https://github.com/bikram73/Interview_Agent_AI).
  2. In the Netlify Dashboard, click Add new site > Import an existing project.
  3. Build Settings will auto-detect from netlify.toml:
    • Build command: npm run build
    • Publish directory: dist
    • Functions directory: netlify/functions
  4. Add Environment Variable in Netlify (Site settings > Environment variables):
    • GEMINI_API_KEY: your_gemini_api_key
  5. Click Deploy Site!

๐Ÿ—๏ธ System Architecture & Workflow

+-----------------------------------------------------------------------------+
|                              CANDIDATE CLIENT                               |
|   Select Role Track -> Configure Experience -> Active Timed Session Room    |
|   (Speech-to-Text Dictation -> Text Area Input -> Submit Response)          |
+-----------------------------------------------------------------------------+
                                       |
                                       | POST /api/* (JSON)
                                       v
+-----------------------------------------------------------------------------+
|                       SERVER PROXY / NETLIFY FUNCTIONS                      |
|   - Express.js Routes (Local / Cloud Run) OR Netlify Serverless Functions   |
|   - Environment Variable Security (GEMINI_API_KEY hidden from browser)      |
|   - Input Sanitization & Payload Verification                               |
+-----------------------------------------------------------------------------+
                                       |
                                       | Google GenAI SDK
                                       v
+-----------------------------------------------------------------------------+
|                              GOOGLE GEMINI AI                               |
|   - Model: gemini-3.6-flash / gemini-2.5-flash                              |
|   - Strict JSON Schema Validation (Structured Outputs)                      |
|   - Temperature: 0.2 (Deterministic Rubric Assessment)                      |
+-----------------------------------------------------------------------------+
                                       |
                                       | Clean JSON
                                       v
+-----------------------------------------------------------------------------+
|                            EVALUATION & DOSSIER                             |
|   - Question Score (0-10) + Key Strengths + Gaps + Improvement Tip          |
|   - Aggregate Final Score (0-100%) + Panel Hiring Verdict                   |
|   - Candidate Downloadable Transcript (.txt)                                |
+-----------------------------------------------------------------------------+

For an in-depth breakdown of state transitions, data boundaries, and latency budgets, see ARCHITECTURE.md.


๐Ÿง  AI Prompting Strategy & Anti-Hallucination

The platform uses a four-pillar prompting framework to ensure accurate, constructive, and reproducible interview assessments:

  1. Role-Bound System Persona: Gemini is prompted strictly as a Senior Principal Engineering & Hiring Committee Lead with explicit domain grading rubrics.
  2. Schema-Constrained JSON Outputs: Output formatting uses Google GenAI SDK responseSchema (JSON Schema Type.OBJECT), preventing syntax errors, unescaped quotes, or conversational conversational filler.
  3. STAR Rubric Grounding: Answers are evaluated against Situation, Task, Action, and Quantifiable Results. Generic claims without architectural context or metrics are penalized constructively.
  4. Deterministic Fallback Engine: If any network anomaly occurs, the client includes deterministic, curated fallback questions and evaluations so the candidate's session is never interrupted.

๐Ÿ“Š Confidence & Evaluation Scoring Formula

Each question is evaluated using an objective 10-point rubric:

$$\text{Question Score} = \mathbf{C}_{\text{tech}} (40%) + \mathbf{D}_{\text{depth}} (25%) + \mathbf{S}_{\text{comm}} (20%) + \mathbf{Q}_{\text{metrics}} (15%)$$

  • $\mathbf{C}_{\text{tech}}$ (Correctness & Accuracy): Technical accuracy, appropriate libraries, algorithms, and architectural patterns.
  • $\mathbf{D}_{\text{depth}}$ (Depth & Trade-offs): Awareness of edge cases, memory footprint, concurrency, security, and scalability.
  • $\mathbf{S}_{\text{comm}}$ (Clarity & Structure): Logical thought progression, clear technical vocabulary, and concise explanations.
  • $\mathbf{Q}_{\text{metrics}}$ (Impact & Quantitative Evidence): Tangible metrics, benchmark figures, and STAR-oriented results.

Aggregate Score & Verdict Tiers

  • 90% โ€“ 100%: Strong Hire (Exceptional architectural depth and articulation)
  • 75% โ€“ 89%: Recommended for Hire (Solid technical grounding with minor gaps)
  • 60% โ€“ 74%: Borderline / Practice Needed (Foundational knowledge present, lacks quantifiable impact)
  • < 60%: Needs Fundamental Development (Significant conceptual errors or incomplete answers)

๐Ÿ“„ Challenge Deliverables Checklist

  • Autonomous AI Question Generator: Generates custom technical and scenario questions for 11+ roles and custom inputs.
  • Live Candidate Dictation: Real-time voice speech-to-text integration with manual editing capability.
  • Instant AI Evaluation Engine: Provides numerical grading, strengths, weaknesses, and improvement roadmaps per question.
  • Final Hiring Panel Report: Complete executive summary, overall score, confidence ranking, and hiring verdict.
  • Exportable Dossier: Formatted plaintext download of full transcripts and evaluation notes.
  • Comprehensive API Documentation: Fully documented endpoints with request/response schemas.
  • Cloud & Serverless Deployment: Built for Express.js (Docker/Cloud Run) and Netlify Functions.

๐Ÿ–จ๏ธ Sample Structured JSON Output

1. Generated Question Sample

{
  "questions": [
    {
      "id": 1,
      "question": "How do Python decorators work under the hood, and how would you implement a decorator that measures function execution time?",
      "category": "Core Python Fundamentals",
      "difficulty": "Medium",
      "expectedKeyConcepts": [
        "First-class functions",
        "Closures and *args, **kwargs",
        "functools.wraps metadata preservation",
        "time.perf_counter"
      ]
    }
  ]
}

2. Answer Evaluation Sample

{
  "score": 8.5,
  "feedback": "Strong explanation demonstrating solid understanding of Python first-class functions, closures, and wrapper syntax.",
  "strength": "Accurately noted the usage of functools.wraps to preserve original function docstrings and metadata.",
  "weakness": "Did not mention how time.perf_counter() differs from time.time() for CPU benchmark precision.",
  "improvement": "Mention using time.perf_counter() for high-precision benchmarking and discuss handling asynchronous coroutines with async decorators.",
  "idealAnswerKeyPoints": [
    "Explain decorators as functions taking another function and returning a wrapper",
    "Preserve metadata using @functools.wraps(func)",
    "Capture start and end time using time.perf_counter()",
    "Return the original function result"
  ]
}

3. Final Report Sample

{
  "overallScore": 86,
  "strengths": [
    "Demonstrated mastery of language internals and asynchronous patterns",
    "Structured problem-solving approach adhering to STAR methodology",
    "Clear awareness of production error boundaries and unit testing"
  ],
  "weaknesses": [
    "Could incorporate more concrete benchmark figures when discussing performance optimization",
    "Expand further on distributed caching invalidation strategies"
  ],
  "recommendation": "Recommended for Hire",
  "topicsToImprove": [
    "Distributed Systems & Redis Cache Invalidation",
    "Asyncio Event Loop Internals",
    "STAR Method Quantifiable Impact"
  ],
  "confidence": "High",
  "summary": "The candidate performed exceptionally well across all 5 technical interview questions, demonstrating senior-level conceptual clarity and communicative composure."
}

๐ŸŒ REST API Documentation

1. POST /api/generate-questions

Generates a set of tailored interview questions.

Request Body:

{
  "role": "Python Developer",
  "experience": "Mid Level (3-5 yrs)",
  "question_count": 5
}

Response (200 OK):

{
  "questions": [
    {
      "id": 1,
      "question": "...",
      "category": "...",
      "difficulty": "...",
      "expectedKeyConcepts": ["..."]
    }
  ]
}

2. POST /api/evaluate-answer

Evaluates an individual answer against the specific interview question.

Request Body:

{
  "role": "Backend Developer",
  "question": "How do you prevent SQL injection in an Express and PostgreSQL application?",
  "answer": "I always use parameterized queries with pg or an ORM like Prisma/Drizzle instead of raw string concatenation.",
  "experience": "Junior (1-2 yrs)"
}

Response (200 OK):

{
  "score": 9.0,
  "feedback": "Excellent, direct answer correctly emphasizing parameterized queries.",
  "strength": "Identified parameterized queries as the gold standard for SQL injection prevention.",
  "weakness": "Could briefly mention input validation (e.g., Zod) as defense-in-depth.",
  "improvement": "Mention schema validation libraries like Zod alongside database-level escaping.",
  "idealAnswerKeyPoints": [
    "Parameterized queries / prepared statements",
    "ORMs with built-in parameterization",
    "Input validation and sanitization at the boundary"
  ]
}

3. POST /api/generate-report

Generates the comprehensive executive hiring report across the entire session.

Request Body:

{
  "role": "AI Engineer",
  "experience": "Mid Level (3-5 yrs)",
  "session": [
    {
      "questionIndex": 1,
      "question": "Explain RAG architecture and how you evaluate vector embeddings.",
      "candidateAnswer": "RAG retrieves context from vector DBs...",
      "score": 8.5,
      "feedback": "Good response.",
      "strength": "Clear explanation of chunking.",
      "weakness": "Could mention cosine similarity metrics.",
      "improvement": "Reference RAGAS evaluation framework."
    }
  ]
}

๐Ÿ“„ Sample Documents & Extraction Results

To explore full sample transcripts, simulated user sessions, and evaluation breakdowns: ๐Ÿ‘‰ Open SAMPLE_RESULTS.md for complete examples across:

  • ๐Ÿ Python Full-Stack Developer Session
  • ๐Ÿค– AI & Machine Learning Engineer Session
  • ๐Ÿ›ก๏ธ Cybersecurity Incident Response Session
  • ๐Ÿ‘ฅ HR & Behavioral STAR Session

โšก Performance Benchmarks & Latency

Operation Model / Engine Average Latency Peak Memory
Question Generation (5 Qs) gemini-3.6-flash 1.12s ~24 MB
Answer Evaluation gemini-3.6-flash 0.84s ~18 MB
Final Dossier Generation gemini-3.6-flash 1.35s ~28 MB
Client Bundle (Gzipped) Vite + Rollup โ€” ~86 KB
Voice STT Processing Web Speech API Real-time (0ms) Client Native

โš ๏ธ Known Limitations & Recovery

  1. Browser Speech Recognition: Web Speech API is natively supported in Chromium browsers (Chrome, Edge, Brave). Safari and Firefox candidates can type their responses directly with full keyboard accessibility.
  2. API Rate Limiting: If Gemini API quotas are exceeded, the client seamlessly invokes local deterministic fallback questions and evaluations to ensure zero candidate disruption.
  3. Microphone Permissions in iframes: When embedded in sandboxed iframes without mic permissions, candidates can use standard text input.

๐Ÿ“„ License

This project is licensed under the MIT License โ€” see the full LICENSE file for details.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files to deal in the Software without restriction, including the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies.


Built with โค๏ธ using React 19, Tailwind CSS, TypeScript, and Google Gemini AI.

About

๐ŸŽ™๏ธAgent AI is a AI-powered mock interview platform that generates role-specific technical and behavioral questions, evaluates candidate answers using structured AI rubrics, and provides detailed feedback on strengths, weaknesses, and improvement areas.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages