InterviewIQ is a state-of-the-art, AI-powered mock interview preparation platform designed to help candidates build confidence, refine their communication skills, and ace real-world job interviews. By combining AI-driven resume parsing, customized question generation, interactive voice-synchronized avatars, and instant performance feedback, InterviewIQ.AI acts as a personal, 24/7 mock interviewer.
π Live Website: https://interviewiq-client-tbtt.onrender.com/
- π AI Resume Analyzer: Upload your resume in PDF format. The backend extracts text using
pdfjs-distand leverages OpenAI'sgpt-4o-mini(via OpenRouter) to identify your roles, experience level, core projects, and technical skills automatically. - βοΈ Customizable Interview Sessions: Set up tailored mock interviews. Choose your target role, experience, and mode (Technical or HR), or use the auto-extracted resume details.
- π Real-Time Voice & Video Avatars:
- Live animated female/male AI avatars (
female-ai.mp4/male-ai.mp4) that are synchronized with the Speech Synthesis. - Interactive speech options using the browser's Web Speech API (
webkitSpeechRecognitionfor speech-to-text response tracking andspeechSynthesisfor natural voice pacing). - Time-limited questions categorized by a structured difficulty curve:
- Question 1 & 2 β Easy (60-second limit)
- Question 3 & 4 β Medium (90-second limit)
- Question 5 β Hard (120-second limit)
- Live animated female/male AI avatars (
- π Real-time AI Evaluation: Submissions are graded immediately on a scale of
0-10across three vital categories:- Confidence: Focuses on clarity, speed, and presentation.
- Communication: Evaluates simplicity and structure.
- Correctness: Assesses relevance and accuracy.
- Provides instant, constructive, 10β15 word professional feedback.
- π Rich Analytics Dashboard: Get a breakdown of overall scores, skill evaluations, and performance trends using interactive charts (via
Rechartsandreact-circular-progressbar). - ποΈ History Tracking: Track past interviews, analyze performance progression over time, and revisit previous reports.
- π Professional PDF Reports: Download structured performance reports containing scores, advice, and detailed question-by-question breakdowns using
jsPDFandjspdf-autotable. - π³ Built-In Subscription & Payments: Start with 100 free credits (50 credits consumed per interview). Recharge using the integrated Razorpay Payment Gateway (Starter Pack: βΉ100 for 150 credits; Pro Pack: βΉ500 for 650 credits).
- Framework: React 19 + Vite
- State Management: Redux Toolkit (auth tracking & profile info)
- Routing: React Router DOM (v7)
- Styling: Tailwind CSS (v4)
- Animations: Framer Motion (
motion) - Visual Analytics: Recharts, React Circular Progressbar
- PDF Generation: jsPDF, jsPDF AutoTable
- Browser APIs: Web Speech API (
SpeechSynthesis,webkitSpeechRecognition)
- Runtime: Node.js
- Framework: Express.js (v5)
- Database: MongoDB (via Mongoose ODM)
- Authentication: Firebase Google Authentication (Client SDK) + JWT Cookies (HTTP-only)
- File Upload: Multer
- PDF Parsing: PDFJS-Dist
- Payment Processing: Razorpay Node SDK
- AI Engine: OpenRouter API (
openai/gpt-4o-mini)
interviewIQ/
βββ client/ # Frontend Application (Vite + React)
β βββ public/ # Static Assets
β βββ src/
β β βββ assets/ # Images, icons, and AI avatar videos
β β β βββ videos/ # male-ai.mp4 & female-ai.mp4
β β βββ components/ # Reusable layouts and step managers
β β β βββ AuthModel.jsx
β β β βββ Footer.jsx
β β β βββ Navbar.jsx
β β β βββ Step1SetUp.jsx # Interview configuration & resume parsing
β β β βββ Step2Interview.jsx # Avatar rendering & Web Speech recognition
β β β βββ Step3Report.jsx # Analytics and PDF export options
β β β βββ Timer.jsx # Custom circular time tracker
β β βββ pages/ # Main routing views
β β β βββ Auth.jsx # Login gateway using Google
β β β βββ Home.jsx # Dashboard & setup container
β β β βββ InterviewHistory.jsx # List of previous sessions
β β β βββ InterviewPage.jsx # Core test container
β β β βββ InterviewReport.jsx # Report viewer
β β β βββ Pricing.jsx # Subscription plan selector & payments
β β βββ redux/ # Redux slices and global store
β β βββ utils/ # Firebase client helper
β β βββ App.jsx # Route mapping & user fetcher
β β βββ index.css # Tailwind system configuration
β β βββ main.jsx # DOM bootstrapping
β βββ package.json
β βββ vite.config.js
β
βββ server/ # Backend API Service (Express)
βββ config/ # DB connectors & token signing rules
βββ controllers/ # Controller layers
β βββ auth.controller.js
β βββ interview.controller.js
β βββ payment.controller.js
β βββ user.controller.js
βββ middlewares/ # Token validators and file upload configuration
β βββ isAuth.js # JWT cookie authenticator
β βββ multer.js # Local resume storage configuration
βββ models/ # Mongoose schemas
β βββ interview.model.js
β βββ payment.model.js
β βββ user.model.js
βββ routes/ # Express route configurations
βββ services/ # Integrations
β βββ openRouter.service.js # AI prompts and API handler
β βββ razorpay.service.js # Razorpay client instance builder
βββ index.js # Server entry point
βββ package.json
Before starting the applications, configure the environment files in both the client and server root directories.
Create a file named .env in the server directory:
PORT=8000
MONGODB_URL=your_mongodb_connection_string
JWT_SECRET=your_jwt_signing_secret
OPENROUTER_API_KEY=your_openrouter_api_key
RAZORPAY_KEY_ID=your_razorpay_key_id
RAZORPAY_KEY_SECRET=your_razorpay_key_secretCreate a file named .env in the client directory:
VITE_FIREBASE_APIKEY=your_firebase_api_key
VITE_RAZORPAY_KEY_ID=your_razorpay_key_idFollow these steps to run the application locally.
- Node.js (v18 or higher recommended)
- MongoDB instance (Atlas or local compass setup)
git clone https://github.com/your-username/interviewIQ.git
cd interviewIQ- Navigate to the server folder:
cd server - Install dependencies:
npm install
- Set up the
.envfile as described in the Environment Variables section. - Run the server in development mode:
The server will run on
npm run dev
http://localhost:8000(or your configured port).
- Navigate to the client folder:
cd ../client - Install dependencies:
npm install
- Set up the
.envfile as described in the Environment Variables section. - Run the frontend in development mode:
The app will run on
npm run dev
http://localhost:5173.
graph TD
A[Sign in with Google OAuth] --> B[Dashboard / Home]
B --> C[Configure Interview Settings]
C -->|Optional| D[Upload Resume PDF]
D -->|AI Extracts Profile| E[Generate Questions]
C -->|Manual Inputs| E
E --> F[Start Interactive Session]
F --> G[Avatar Speaks Question]
G --> H[Candidate Speaks/Types Response]
H -->|Submit Answer| I[Real-time AI Feedback]
I --> J{Next Question?}
J -->|Yes| G
J -->|No| K[Finish Session]
K --> L[Generate Analytics Report]
L --> M[Export Performance PDF]
POST /google- Processes Google authentication details sent from the frontend client and returns user details. Sets an HTTP-only token cookie.GET /logout- Clears the authentication token cookie.
GET /current-user- Fetches profile details and remaining credits for the currently authenticated user.
POST /resume- Uploads a PDF resume, parses it, and uses GPT-4o-mini to extract skills, experience, and projects.POST /generate-questions- Generates 5 tailored questions based on configuration, deducting 50 credits from the user's account.POST /submit-answer- Submits a candidate's answer for evaluation. Triggers AI feedback scoring.POST /finish- Computes the aggregate scores (confidence, communication, correctness) and marks the session completed.GET /get-interview- Lists the historical record of interviews for the authenticated user.GET /report/:id- Fetches details and breakdowns of a completed interview.
POST /order- Creates a new payment order using the Razorpay SDK.POST /verify- Validates the webhook/callback signature from Razorpay. Increments user credits on success.





