AI-Powered Interview Failure Analyzer & Personalized Interview Coach
InterviewLens AI is a full-stack MERN application that analyzes interview performance using AI. It compares a candidate's Resume, Job Description, and Interview Responses to identify weaknesses, missing skills, recruiter expectations, and provides an actionable improvement roadmap.
π Frontend: https://interviewlens-ai.netlify.app/
π» Backend API: Deployed on AWS EC2
π¦ Dockerized: Multi-stage Docker setup for frontend (Nginx) and backend (Node.js + Express) using Docker Compose.
π CI/CD: Automated backend deployment using GitHub Actions with a self-hosted runner on AWS EC2 and PM2.
- π€ AI-powered Interview Performance Analyzer
- π Resume vs Job Description Skill Gap Analysis
- π Analytics Dashboard with Performance Tracking
- π AI-generated Practice Questions & Model Answers
- πΊοΈ Personalized 7-Day Improvement Roadmap
- π JWT Authentication & Email OTP Recovery
- π Downloadable PDF Interview Reports
- π³ Fully Dockerized (Docker + Docker Compose + Nginx)
- βοΈ Frontend deployed on Netlify
- π Automated CI/CD using GitHub Actions
- βοΈ Backend deployed on AWS EC2
- ποΈ MongoDB Atlas database
Many candidates fail interviews without understanding why they were rejected.
InterviewLens AI bridges this gap by providing:
- Resume vs Job Description analysis
- Interview answer evaluation
- Recruiter-style feedback
- AI-generated practice questions
- Personalized improvement roadmap
- JWT Authentication
- Secure Login & Signup
- Forgot Password via Email OTP
- Protected Routes
- Upload Resume (PDF)
- Paste Resume Manually
- Resume Parsing
- Resume Storage
Analyze interviews using:
- Resume
- Job Description
- Questions & Answers
AI generates:
- β Interview Readiness Score
- β Pass Probability
- β Strengths
- β Weaknesses
- β Missing Skills
- β Interview Mistakes
- β Recruiter Insights
- β Personalized Feedback
Personalized roadmap generated by AI:
- Day 1
- Day 2
- Day 3
- Day 4
- Day 5
- Day 6
- Day 7
Based on interview performance, InterviewLens AI generates:
- Personalized Interview Questions
- AI Model Answers
- Practice Suggestions
Track interview performance over time.
Includes:
- Total Interviews
- Average Score
- Best Score
- Improvement Percentage
- Score Trend Graph
Every interview is saved automatically.
Features include:
- View Previous Analyses
- Generate AI Answers Again
- Download PDF Report
- Delete History
- Performance Tracking
Download complete interview reports containing:
- Interview Score
- Probability
- Strengths
- Weaknesses
- Missing Skills
- Mistakes
- Roadmap
- Practice Questions
Displays:
- User Details
- Total Interviews
- Average Score
- Best Score
- Overall Improvement
Fully responsive across:
- Desktop
- Tablet
- Mobile
Built using Tailwind CSS.
- React.js
- React Router DOM
- Tailwind CSS
- Axios
- Recharts
- React Icons
- React Toastify
- Node.js
- Express.js
- JWT Authentication
- bcrypt.js
- Multer
- Nodemailer
- Groq API
- Docker
- Docker Compose
- MongoDB
- Mongoose
- Groq API (Llama Model)
Used for:
- Interview Analysis
- Feedback Generation
- Skill Gap Detection
- Roadmap Generation
- Practice Questions
- Model Answers
- Docker
- Docker Compose
- Nginx
- AWS EC2
- Linux / Ubuntu
- GitHub Actions
- Self-Hosted GitHub Actions Runner
- PM2
Frontend:
- Netlify
Backend:
- Platform: AWS EC2
- OS: Ubuntu
- Runtime: Node.js
- Process Manager: PM2
- Reverse Proxy / Web Server: Nginx
- CI/CD: GitHub Actions
- Runner: Self-hosted GitHub Actions Runner
Database:
- MongoDB Atlas
Containerization:
- Docker
- Docker Compose
Web Server:
- Nginx
The backend deployment is automated using GitHub Actions.
Developer
β
β git push
βΌ
GitHub Repository
β
βΌ
GitHub Actions
β
βΌ
Self-Hosted Runner
β
β AWS EC2
βΌ
Checkout Latest Code
β
βΌ
npm ci
β
βΌ
Restore Production Environment
β
βΌ
Build Application
β
βΌ
PM2 Restart
β
βΌ
Updated Backend
The workflow runs automatically when code is pushed to the main branch.
The pipeline performs:
- Source-code checkout
- Node.js environment setup
- Clean dependency installation using npm ci
- Production environment restoration
- Application build
- Backend restart using PM2
- Automatic deployment to AWS EC2
Production environment variables are not committed to GitHub.
Sensitive configuration such as:
GROQ_API_KEY
MONGO_URI
JWT_SECRET
EMAIL_USER
EMAIL_PASS
is stored separately on the EC2 server and restored during deployment.
This prevents sensitive credentials from being exposed in the Git repository while allowing the deployment pipeline to recreate the required runtime environment.
GitHub
β
git push main
β
ββββββββββ΄βββββββββ
β β
βΌ βΌ
GitHub Actions Netlify
β β
βΌ βΌ
Self-Hosted Runner React Frontend
AWS EC2 β
β β
βΌ β
PM2 β
β β
βΌ β
Express Backend ββββββββββββ
β
βββββββ΄ββββββ
βΌ βΌ
MongoDB Atlas Groq API
Result: A push to the main branch automatically updates the backend running on AWS EC2, while the frontend is deployed separately through Netlify.
InterviewLens-AI/
|
βββ .github/
β βββ workflows/
β βββ cicd.yml
|
|
βββ client
β βββ Dockerfile
β βββ nginx.conf
β βββ src/
β β βββ components/
β β βββ pages/
β β βββ utils/
β β βββ App.jsx
β β βββ main.jsx
β
βββ server
β βββ Dockerfile
β βββ controllers/
β βββ routes/
β βββ middleware/
β βββ models/
β βββ utils/
β βββ config/
β βββ server.js
β
βββ docker-compose.yml
β
βββ README.md
React + Tailwind CSS
β
βΌ
Axios REST API
β
βΌ
Express.js + Node.js
β
ββββββββββββ΄βββββββββββ
βΌ βΌ
MongoDB Atlas Groq AI API
β β
ββββββββββββ¬βββββββββββ
βΌ
AI Interview Analysis
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/auth/signup |
Register User |
| POST | /api/auth/login |
Login User |
| POST | /api/analyze |
Analyze Interview |
| POST | /api/upload-resume |
Upload Resume |
| GET | /api/history |
Interview History |
| GET | /api/analytics |
Analytics Dashboard |
git clone https://github.com/aakanshimalik/InterviewLens-AI.git
cd interviewlens-aicd client
npm install
npm run devcd server
npm install
npm run devInterviewLens AI is fully containerized for consistent local development and production deployment.
docker compose up --buildApplication URLs:
| Service | URL |
|---|---|
| Frontend | http://localhost:5173 |
| Backend | http://localhost:5000 |
Stop containers:
docker compose down- Multi-stage frontend build
- Nginx production server
- Backend container with Express.js
- Docker Compose orchestration
- Environment variable support
Create a .env file inside the server folder.
PORT=5000
MONGO_URI=YOUR_MONGODB_URL
JWT_SECRET=YOUR_SECRET_KEY
GROQ_API_KEY=YOUR_GROQ_KEY
EMAIL_USER=YOUR_EMAIL
EMAIL_PASS=YOUR_APP_PASSWORDCreate your own account using Signup.
- AI Mock Interview (Voice)
- Speech Analysis
- Facial Emotion Detection
- ATS Resume Scoring
- Recruiter Dashboard
- Company-wise Interview Preparation
- Multi-language Support
- AI Career Advisor
- Interview Performance Comparison
- MERN Stack Architecture
- RESTful API Design
- JWT Authentication & Authorization
- AI API Integration
- Resume Parsing
- MongoDB Data Modeling
- Docker & Containerization
- AWS EC2 Deployment
- Linux Server Management
- CI/CD with GitHub Actions
- Self-Hosted GitHub Actions Runners
- PM2 Process Management
- Production Deployment
- Responsive UI Development
- Analytics Dashboard Design
- PDF Report Generation
Aakanshi Malik
π§ Email: aakanshimalik54@gmail.com
πΌ LinkedIn: https://www.linkedin.com/in/aakanshi-malik-996738298
π» GitHub: https://github.com/aakanshimalik
This project is licensed under the MIT License.
Give this repository a β Star and feel free to fork it!