AI Interview Mocker lets you practice job interviews without needing another person. You describe your target role and experience level — the AI generates relevant interview questions, you answer them via speech (using your microphone), and the platform gives you structured feedback on each answer.
Core flow:
- Enter job role, tech stack, and years of experience
- Gemini generates 5 tailored interview questions
- Answer each question via speech-to-text (webcam optional)
- Get AI-generated feedback with rating and ideal answer comparison
- Review all answers in a detailed report
- AI Question Generation — Gemini API generates role-specific questions based on your inputs
- Speech-to-Text Answers — Browser-based voice recording via
react-hook-speech-to-text - Instant AI Feedback — Per-answer rating and model answer generated by Groq
- Interview History — All past sessions saved, reviewable anytime
- Auth & Sessions — Secure login via Clerk (Google OAuth + email)
- Dark Mode — Full light/dark theme support via
next-themes
| Layer | Technology |
|---|---|
| Framework | Next.js 14 (App Router) |
| Auth | Clerk |
| AI — Question Generation | Google Gemini (@google/genai) |
| AI — Feedback | Groq SDK |
| Database | Neon (serverless PostgreSQL) |
| ORM | Drizzle ORM |
| UI | TailwindCSS · Radix UI · Lucide Icons · Sonner |
| Speech | react-hook-speech-to-text |
| Deployment | Vercel |
- Node.js 18+
- Accounts on: Clerk, Neon, Google AI Studio, Groq
git clone https://github.com/DevxNadeem/ai-interview-mocker.git
cd ai-interview-mocker
npm installCreate a .env.local file in the root:
# Clerk Auth
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key
CLERK_SECRET_KEY=your_clerk_secret_key
NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up
# Neon Database
DATABASE_URL=your_neon_database_url
# AI APIs
NEXT_PUBLIC_GEMINI_API_KEY=your_gemini_api_key
NEXT_PUBLIC_GROQ_API_KEY=your_groq_api_keynpm run db:pushnpm run devai-interview-mocker/
├── app/
│ ├── (auth)/ # Clerk sign-in / sign-up routes
│ ├── dashboard/ # Main app — interview list, creation, session
│ │ ├── interview/ # Individual interview flow
│ │ └── upgrade/ # Upgrade page
│ └── page.tsx # Landing page
├── components/ # Shared UI components
├── drizzle/ # DB schema and migrations
├── lib/ # Utility functions
└── public/ # Static assets
- Export feedback report as PDF
- Difficulty levels (Junior / Mid / Senior)
- Coding round simulation
- Performance analytics across sessions
Nadeem Sheikh
Built with Next.js 14 · Gemini · Groq · Neon · Clerk