π€ AI Interviewer β Autonomous AI-Powered Hiring Platform
     **AI Interviewer** is a fully autonomous, end-to-end intelligent recruitment platform that eliminates manual screening by conducting AI-driven technical interviews β complete with voice interaction, real-time proctoring, anti-cheating measures, and instant AI-scored reports.Hackathon Project Β· Built with passion to revolutionize how companies discover talent.
π― The Problem We're Solving
Traditional hiring is broken:
- Recruiters waste 80% of their time on initial screenings that yield little signal
- Candidates wait weeks for feedback after submitting applications
- Bias creeps in at every human touchpoint β from resume review to phone screens
- Scaling is impossible β a team of 5 can't screen 500 applicants fairly
AI Interviewer automates the entire first-round process β from resume analysis to AI-scored interview reports β in under 15 minutes, with zero human effort.
β¨ Core Features
ποΈ AI Voice Interview Engine
- Candidate speaks naturally; AI asks intelligent, role-specific follow-up questions
- Powered by Groq LLaMA for ultra-low latency voice responses
- Real-time speech-to-text transcription with 4-second silence detection
- Full conversation history for context-aware follow-up questions
- Automatic session recording uploaded to Cloudinary
π Resume Intelligence (AI Resume Parsing)
- Upload any PDF resume β AI extracts skills, experience, and key competencies
- Google Gemini generates 10β15 custom questions tailored to the exact resume + role
- MCQ assessment or voice interview mode, selectable per candidate
π§ AI-Powered Question Generation
- Dynamic question bank generated fresh per session β no repeat questions
- Role-aware difficulty scaling (Beginner β Expert)
- Technical MCQ with distractors, or open-ended voice questions
- Built-in Question Bank for admins to manually curate and store questions
π‘οΈ Real-Time Anti-Cheating Proctoring
- Face detection via TensorFlow.js (coco-ssd model) β detects multiple faces
- Object detection β flags mobile phones, books, papers in camera frame
- Tab-switch monitoring β records and penalizes focus loss events
- All violations logged and surfaced in the admin report dashboard
π Admin Command Center
- Live Monitoring Dashboard β real-time feed of all ongoing interviews via Socket.IO
- Hiring Analytics β completion rates, average scores, top-performing candidates
- Role Management β create, activate/deactivate job postings with interview codes
- Question Bank β curated question library with difficulty tags
- Session Manager β full history of all candidate interviews with video playback
- Workspace View β per-session detailed breakdown with candidate list
- Platform Settings β configure AI model, proctoring strictness, timeouts
- Admin Profile β role management and platform access control
π€ Candidate Portal
- Available Positions β live list of active job openings
- Join by Code β private sessions with 6-digit interview codes
- AI Practice Mode β unlimited practice interviews tailored to any job role
- ATS Score Checker β upload resume and get ATS compatibility score + improvement tips
- My Reports β full history of past assessment reports with AI feedback
- PDF Report Export β download official, verified assessment certificates
- Help & Support β in-platform FAQ and support ticketing
π§ Email Notification System
- Automated result emails sent to candidates post-assessment
- Recruiter alerts for completed sessions
- Powered by Nodemailer
ποΈ Tech Stack
Frontend
| Technology | Purpose |
|---|---|
| React 18 | UI framework |
| React Router v6 | Client-side routing with protected routes |
| Vite | Lightning-fast build tool with HMR |
| Framer Motion | Smooth page and component animations |
| Lucide React | Consistent icon library |
| Socket.IO Client | Real-time live monitoring |
| TensorFlow.js | In-browser face/object detection for proctoring |
| Tailwind CSS v4 | Utility CSS (+ custom design system) |
| Axios | HTTP client with request deduplication |
Backend
| Technology | Purpose |
|---|---|
| Node.js + Express 5 | REST API server |
| MongoDB Atlas + Mongoose | Database and ODM |
| Socket.IO | Real-time bidirectional communication |
| Google Gemini AI | Resume parsing + question generation |
| Groq SDK (LLaMA) | Ultra-fast voice interview AI responses |
| Cloudinary | Video recording storage and streaming |
| JWT + bcryptjs | Authentication and security |
| Multer + pdf-parse | Resume file upload and text extraction |
| Nodemailer | Email notifications |
Infrastructure
| Service | Role |
|---|---|
| MongoDB Atlas | Cloud database |
| Render.com | Backend deployment |
| Cloudinary | Media CDN |
π Getting Started
Prerequisites
- Node.js 18+
- MongoDB Atlas account (or local MongoDB)
- Google Gemini API key
- Groq API key
- Cloudinary account
1. Clone the Repository
git clone https://github.com/Anmol-Malviya/RAW_CODER.git
cd RAW_CODER
2. Install Root Dependencies
npm install
3. Configure Server Environment
Create server/.env:
PORT=5000
MONGO_URI=your_mongodb_atlas_connection_string
JWT_SECRET=your_super_secret_jwt_key
# AI Services
GEMINI_API_KEY=your_google_gemini_api_key
GROQ_API_KEY=your_groq_api_key
# Media Storage
CLOUDINARY_CLOUD_NAME=your_cloudinary_name
CLOUDINARY_API_KEY=your_cloudinary_api_key
CLOUDINARY_API_SECRET=your_cloudinary_api_secret
# Email
EMAIL_USER=your_gmail_address
EMAIL_PASS=your_gmail_app_password
4. Configure Client Environment
Create client/.env:
VITE_API_URL=http://localhost:5000/api
5. Install All Dependencies
# Install server deps
cd server && npm install
# Install client deps
cd ../client && npm install
6. Run the Platform
# From root directory β starts both server and client
npm run dev
Or run separately:
# Terminal 1: Backend
cd server && npm run dev
# Terminal 2: Frontend
cd client && npm run dev
Open http://localhost:5173 in your browser.
πΊοΈ Application Routes
Public Routes
| Route | Page |
|---|---|
/ |
Landing page with demo assessment |
/login |
Login / Register |
Candidate Routes (Protected)
| Route | Page |
|---|---|
/candidate |
Dashboard β Available jobs + reports |
/apply/:jobId |
Job application + interview mode selector |
/check |
System check β camera, mic, browser permissions |
/assessment |
Live MCQ assessment with proctoring |
/voice-interview |
AI voice interview session |
/coding |
In-browser coding test |
/results |
Post-interview AI report |
/candidate/practice |
Unlimited AI practice sessions |
/candidate/profile |
Profile + performance history |
/candidate/ats |
ATS resume score checker |
/candidate/support |
Help & support center |
Admin Routes (Protected)
| Route | Page |
|---|---|
/admin |
Main dashboard β KPIs & overview |
/admin/roles |
Create and manage job postings |
/admin/live |
Real-time interview monitoring |
/admin/questions |
Question bank management |
/admin/sessions |
All interview session history |
/admin/sessions/:id/candidates |
Per-session candidate breakdown |
/admin/analytics |
Hiring analytics and insights |
/admin/settings |
Platform configuration |
/admin/profile |
Admin profile & permissions |
/admin/workspace |
Workspace overview |
/admin/workspace/session/:id |
Detailed workspace session view |
π API Endpoints
Authentication
| Method | Endpoint | Description |
|---|---|---|
POST |
/api/auth/register |
Register candidate or admin |
POST |
/api/auth/login |
Login and receive JWT |
GET |
/api/auth/profile |
Get current user profile |
PUT |
/api/auth/profile |
Update user profile |
Jobs
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/jobs |
List all active jobs |
POST |
/api/jobs |
Create new job (admin) |
PUT |
/api/jobs/:id/status |
Toggle job active/inactive |
GET |
/api/jobs/code/:code |
Validate interview join code |
GET |
/api/jobs/:id/candidates |
List candidates for a job |
Assessment
| Method | Endpoint | Description |
|---|---|---|
POST |
/api/generate-mcq |
Upload resume β generate questions |
POST |
/api/generate-practice |
Generate practice session |
POST |
/api/submit-assessment |
Submit answers β get AI score |
POST |
/api/voice-chat |
Voice interview turn (Groq AI) |
GET |
/api/session/:id |
Get session details |
GET |
/api/sessions/user |
Get current user's sessions |
GET |
/api/sessions/all |
Get all sessions (admin) |
Media
| Method | Endpoint | Description |
|---|---|---|
POST |
/api/upload-recording |
Upload webcam recording |
POST |
/api/upload-screen |
Upload screen recording |
Admin
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/analytics |
Hiring analytics data |
GET |
/api/questions |
Question bank |
POST |
/api/questions |
Add question to bank |
DELETE |
/api/questions/:id |
Remove question |
GET |
/api/settings |
Platform settings |
POST |
/api/settings |
Update setting value |
π₯ User Flows
Candidate Flow
Register β Browse Jobs β Apply Now β System Check
β Upload Resume β AI Generates Questions
β Choose Mode (Voice/MCQ) β Live Interview with Proctoring
β Submit β AI Scores + Generates Detailed Report
β Download PDF Certificate
Admin Flow
Register (as Recruiter) β Create Job Posting β Share Interview Code
β Monitor Live Interviews β Review Completed Reports
β View Analytics β Export Candidate Rankings
Quick Demo Flow (No Login Required)
Visit / β Enter Job Role β Upload Any PDF Resume
β Instant AI Assessment Generated β Take Live Demo Test β See Results
π§ͺ Testing
Automated API Test Suite
cd test
node automated_api_tests.js
Tests cover: registration β job creation β MCQ generation β submission β feedback.
Manual Test Plan
See test case/manual_test_plan.md for a complete 40+ scenario manual test plan covering all user flows.
π Security
- JWT Authentication β all API routes are protected, tokens expire in 7 days
- Role-Based Access Control β admin vs candidate routes enforced server-side
- bcryptjs Password Hashing β passwords never stored in plain text
- Input Validation β all user inputs sanitized before DB operations
- CORS Configuration β restricted to known origins in production
π What Makes This Hackathon-Worthy
| Feature | Why It Matters |
|---|---|
| ποΈ Real Voice AI | Candidates speak naturally β no typing, no multiple choice bias |
| π§ Resume-Aware Questions | Every interview is unique β generated fresh from the actual resume |
| π‘οΈ Multi-Layer Proctoring | TensorFlow face detection + tab monitoring + object detection |
| β‘ Sub-second AI | Groq delivers LLaMA responses in <500ms for natural conversation flow |
| π Instant Reports | Full AI-scored report with per-question breakdown in <10 seconds |
| π End-to-End Automation | Zero human effort from posting to ranked shortlist |
| π± Fully Responsive | Works on any device β phone, tablet, desktop |
π¨βπ» Team
Built with β€οΈ for the hackathon by the RAW_CODER team.
π License
This project is built for hackathon demonstration purposes.
**β If this project impressed you, give it a star!** *Powered by Google Gemini Β· Groq AI Β· MongoDB Atlas Β· React Β· Node.js*
Built With
- cloudinary
- css
- express.js
- javascript
- mediarecorder
- mongodb
- node.js
- react.js
- tailwind
- tensorflow.js
- webrtc
Log in or sign up for Devpost to join the conversation.