Practice smarter. Interview better.
An end-to-end AI interview preparation platform with adaptive questioning, real-time voice analysis, resume intelligence, and detailed performance feedback.
- About the Project
- Key Features
- Tech Stack
- Project Structure
- Getting Started
- Screenshots
- Authors
- License
- Acknowledgements
Multimodel Explainable AI is a final-year B.Tech project built to solve a real problem: most job seekers practice interviews with static question banks and receive zero meaningful feedback. This platform changes that.
It simulates realistic interview sessions using Google Gemini AI, generates role-specific and resume-aware questions, records your spoken answers via the Web Speech API, and produces a structured performance report with scoring, strengths, weaknesses, and actionable next steps β all without any human evaluator.
| Feature | Description |
|---|---|
| π€ AI Mock Interviews | Gemini AI generates custom interview questions based on job role, experience level, and resume |
| π Adaptive Questioning | Questions evolve dynamically based on your previous answers, simulating a real interviewer |
| ποΈ Voice-Based Answering | Record answers using your webcam + microphone via Web Speech API |
| π Interview Analytics | Detailed per-session reports with scores, strengths, weaknesses, and improvement tips |
| π Resume Analysis | Upload your resume and get AI-powered gap analysis and suggestions |
| π§ Skill Assessment | Evaluate your technical and soft skills with AI-generated assessments |
| π¬ AI Prep Coach | Interactive chat assistant on the dashboard to guide your preparation strategy |
| π§ Email Reports | Interview performance reports delivered to your inbox |
| π Secure Auth | Sign in / Sign up powered by Clerk (Google OAuth + email support) |
| π Dark/Light Mode | Theme-aware UI using next-themes |
- Next.js 14 (App Router) β Server & client components
- React 18 β UI library
- Tailwind CSS β Utility-first styling
- Framer Motion β Animations and transitions
- Radix UI / Headless UI β Accessible UI primitives
- Lucide React / React Icons / Heroicons β Icon libraries
- Sonner β Toast notifications
- Google Gemini AI (
@google/generative-ai) β Question generation, answer evaluation, feedback
- Clerk β Authentication (OAuth, email/password, session management)
- Neon Database β Serverless PostgreSQL
- Drizzle ORM β Type-safe SQL ORM
- Drizzle Kit β DB migrations
- Web Speech API β Speech-to-text for answer recording
- react-webcam β Webcam access in browser
uuid,moment,dotenv,clsx,tailwind-merge
Multimodel_Explainable-AI/
βββ app/ # Next.js App Router
β βββ (auth)/ # Sign in / Sign up pages (Clerk)
β βββ about-us/ # About the platform page
β βββ ai-preparation/ # AI-guided preparation page
β βββ api/ # API routes (server-side)
β β βββ dashboard-prep-chat/ # AI Prep Coach API
β β βββ feedback/ # Interview feedback API
β β βββ gemini/ # Gemini AI integration
β β βββ interview-report/ # Report generation API
β β βββ interviews/ # CRUD for interviews & answers
β βββ dashboard/ # Main user dashboard
β β βββ _components/ # Dashboard UI components
β β βββ interview/[id]/ # Individual interview session
β β βββ start/ # Live interview page (webcam + voice)
β β βββ feedback/ # Post-interview feedback page
β βββ how-it-works/ # Explainer page
β βββ resume-analysis/ # Resume upload & analysis
β βββ skill-assessment/ # Skill evaluation page
β
βββ components/ # Shared reusable components
β βββ home/ # Landing page sections
β βββ resume/ # Resume analyzer component
β βββ ui/ # shadcn/ui base components
β
βββ drizzle/ # DB migration files
βββ lib/ # Server-side utilities (auth, db queries)
βββ utils/ # Client + shared utilities
β βββ GeminiAIModal.js # Gemini API wrapper
β βββ interview-analytics.js # Analytics computation
β βββ report-pdf.js # PDF report generation
β βββ interview-report-email.js # Email report sender
β βββ schema.js # Drizzle DB schema
β
βββ public/ # Static assets (logo, images)
βββ .env.example # Environment variable template
βββ drizzle.config.js # Drizzle ORM config
βββ next.config.mjs # Next.js config
βββ tailwind.config.js # Tailwind config
βββ package.json
Make sure you have the following installed:
- Node.js v18+ β Download
- npm v9+ (comes with Node.js)
- A Neon account (free) β neon.tech
- A Clerk account (free) β clerk.dev
- A Google Gemini API Key β ai.google.dev
-
Clone the repository
git clone https://github.com/23Amansharma/Multimodel_Explainable-AI.git cd Multimodel_Explainable-AI -
Install dependencies
npm install
-
Set up environment variables
cp .env.example .env.local
Fill in your keys (see Environment Variables below).
Create a .env.local file in the root directory. Refer to .env.example for all required variables:
# Clerk Authentication
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_...
CLERK_SECRET_KEY=sk_test_...
NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up
# Google Gemini AI
NEXT_PUBLIC_GEMINI_API_KEY=AIza...
# Neon Database (PostgreSQL)
DATABASE_URL=postgresql://...
β οΈ Never commit your.env.localfile. It is already in.gitignore.
This project uses Drizzle ORM with Neon Serverless Postgres.
-
Push the schema to your Neon database:
npm run db:push
-
(Optional) Open Drizzle Studio to view/manage data:
npm run db:studio
# Development
npm run dev
# Production build
npm run build
npm startOpen http://localhost:3000 in your browser.
| Dashboard | Live Interview | Feedback Report |
|---|---|---|
![]() |
![]() |
![]() |
This project was built as a Final Year B.Tech Project.
| Name | GitHub | Role |
|---|---|---|
| Aman Sharma | @23Amansharma | Full Stack / AI Integration |
| Alok Gupta | @mrinvictus2005 | Full Stack / Data Analyst |
Both authors contributed equally to the research, design, development, and documentation of this project.
This project is licensed under the MIT License β see the LICENSE file for full details.
You are free to use, modify, and distribute this project with proper attribution.
- Google Gemini AI β for the AI question generation and evaluation backbone
- Clerk β for frictionless authentication
- Neon β for serverless PostgreSQL
- Drizzle ORM β for the clean, type-safe database layer
- Vercel β for deployment
Made with β€οΈ as a Final Year Project
β If this project helped you, consider giving it a star!


