Skip to content

About

AI Interview Analyzer | MERN + Groq API + Docker + AWS + CI/CD

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Latest commit

Β 

History

28 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎯 InterviewLens AI

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.

Docker

Nginx

React

Node.js

MongoDB

License


πŸš€ Live Demo

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


⭐ Key Highlights

  • πŸ€– 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

Screenshots

image image image

πŸ“Œ Problem Statement

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

✨ Features

πŸ” Authentication

  • JWT Authentication
  • Secure Login & Signup
  • Forgot Password via Email OTP
  • Protected Routes

πŸ“„ Resume Processing

  • Upload Resume (PDF)
  • Paste Resume Manually
  • Resume Parsing
  • Resume Storage

πŸ’Ό Interview Analysis

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

πŸ—ΊοΈ 7-Day Improvement Roadmap

Personalized roadmap generated by AI:

  • Day 1
  • Day 2
  • Day 3
  • Day 4
  • Day 5
  • Day 6
  • Day 7

🎯 AI Practice Questions

Based on interview performance, InterviewLens AI generates:

  • Personalized Interview Questions
  • AI Model Answers
  • Practice Suggestions

πŸ“ˆ Analytics Dashboard

Track interview performance over time.

Includes:

  • Total Interviews
  • Average Score
  • Best Score
  • Improvement Percentage
  • Score Trend Graph

πŸ“š Interview History

Every interview is saved automatically.

Features include:

  • View Previous Analyses
  • Generate AI Answers Again
  • Download PDF Report
  • Delete History
  • Performance Tracking

πŸ“„ PDF Report Generation

Download complete interview reports containing:

  • Interview Score
  • Probability
  • Strengths
  • Weaknesses
  • Missing Skills
  • Mistakes
  • Roadmap
  • Practice Questions

πŸ‘€ Profile Dashboard

Displays:

  • User Details
  • Total Interviews
  • Average Score
  • Best Score
  • Overall Improvement

πŸ“± Responsive Design

Fully responsive across:

  • Desktop
  • Tablet
  • Mobile

Built using Tailwind CSS.


πŸ› οΈ Tech Stack

🎨Frontend

  • React.js
  • React Router DOM
  • Tailwind CSS
  • Axios
  • Recharts
  • React Icons
  • React Toastify

βš™οΈBackend

  • Node.js
  • Express.js
  • JWT Authentication
  • bcrypt.js
  • Multer
  • Nodemailer
  • Groq API
  • Docker
  • Docker Compose

πŸ—„οΈDatabase

  • MongoDB
  • Mongoose

🧠AI Integration

  • Groq API (Llama Model)

Used for:

  • Interview Analysis
  • Feedback Generation
  • Skill Gap Detection
  • Roadmap Generation
  • Practice Questions
  • Model Answers

🐳 DevOps

  • Docker
  • Docker Compose
  • Nginx
  • AWS EC2
  • Linux / Ubuntu
  • GitHub Actions
  • Self-Hosted GitHub Actions Runner
  • PM2

☁️ Deployment

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

CI/CD

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.

CI/CD Responsibilities

  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

Environment & Secret Management

  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.

Deployment Architecture

                    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.

πŸ“‚ Project Structure

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

πŸ—οΈ Architecture

        React + Tailwind CSS
                 β”‚
                 β–Ό
          Axios REST API
                 β”‚
                 β–Ό
     Express.js + Node.js
                 β”‚
      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
      β–Ό                     β–Ό
 MongoDB Atlas         Groq AI API
      β”‚                     β”‚
      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                 β–Ό
      AI Interview Analysis

πŸ”Œ API Overview

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

βš™οΈ Installation

Clone Repository

git clone https://github.com/aakanshimalik/InterviewLens-AI.git

cd interviewlens-ai

Install Frontend

cd client

npm install

npm run dev

Install Backend

cd server

npm install

npm run dev

🐳 Docker Support

InterviewLens AI is fully containerized for consistent local development and production deployment.

Run using Docker

docker compose up --build

Application URLs:

Service URL
Frontend http://localhost:5173
Backend http://localhost:5000

Stop containers:

docker compose down

Docker Features

  • Multi-stage frontend build
  • Nginx production server
  • Backend container with Express.js
  • Docker Compose orchestration
  • Environment variable support

πŸ”‘ Environment Variables

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_PASSWORD

Demo Credentials

Create your own account using Signup.


πŸ“Š Future Improvements

  • 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

πŸŽ“ Key Learning Outcomes

  • 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

πŸ‘©β€πŸ’» Author

Aakanshi Malik

πŸ“§ Email: aakanshimalik54@gmail.com

πŸ’Ό LinkedIn: https://www.linkedin.com/in/aakanshi-malik-996738298

πŸ’» GitHub: https://github.com/aakanshimalik


πŸ“„ License

This project is licensed under the MIT License.


⭐ If you like this project...

Give this repository a ⭐ Star and feel free to fork it!

About

AI Interview Analyzer | MERN + Groq API + Docker + AWS + CI/CD

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Packages

Contributors

Languages