Skip to content

InterviewAI is an AI-powered mock interview platform built with Next.js. It uses voice-based interviews via Vapi AI, generates personalized questions with Google Gemini, and provides AI feedback after sessions.

License

Notifications You must be signed in to change notification settings

davismiler/InterviewAI

Repository files navigation

πŸ€– InterviewAI - Master Your Interview Skills with AI

InterviewAI

Transform your interview preparation with AI-powered practice sessions, real-time voice interaction, and personalized feedback.


🌟 Overview

InterviewAI is a cutting-edge, AI-powered interview preparation platform designed to help students and professionals excel in their job interviews. Unlike traditional mock interview tools, InterviewAI creates personalized, realistic interview experiences tailored to your specific role, experience level, and technical skills.

What Makes InterviewAI Special?

  • Personalized Practice: Generate custom interview questions based on your resume, target job role, and interview type
  • Real-Time Voice Interaction: Engage in natural, voice-first conversations with AI interviewersβ€”no forms or typing required
  • Intelligent Feedback: Receive comprehensive, AI-generated performance analysis with actionable insights and improvement recommendations
  • Professional Evaluation: Get detailed scores across multiple categories including communication, technical knowledge, problem-solving, and cultural fit

Whether you're preparing for your first job interview or looking to advance your career, InterviewAI provides the tools and insights you need to perform with confidence.

✨ Key Features

πŸ” Secure Authentication

  • Email/Password Authentication: Secure sign-up and sign-in powered by Firebase
  • Google OAuth Integration: Quick and easy authentication with your Google account
  • Session Management: Secure, server-side session handling with HTTP-only cookies

πŸŽ›οΈ Intuitive Dashboard

  • Interview History: Track all your practice sessions in one place
  • Performance Analytics: View your progress over time with detailed score breakdowns
  • Quick Access: Start new interviews or review past feedback instantly

πŸ—£οΈ Voice-First Experience

  • Natural Conversation: No forms or typingβ€”just speak naturally and start your interview
  • Real-Time Transcription: See your responses transcribed in real-time during the interview
  • Seamless Interaction: Experience fluid, human-like conversations with AI interviewers

πŸ€– AI-Powered Interview Generation

  • Personalized Questions: Generate custom interview questions based on:
    • Your resume and professional background
    • Target job role and responsibilities
    • Experience level (Junior, Mid, Senior)
    • Technical stack requirements
    • Interview type (Technical, Behavioral, or Mixed)
  • Industry-Relevant Content: Questions tailored to your specific industry and role

🧠 Intelligent AI Interviewers

  • Professional AI Personas: Interact with sophisticated AI interviewers designed to simulate real interview scenarios
  • Adaptive Conversations: AI that responds naturally to your answers and asks relevant follow-up questions
  • Realistic Experience: Practice in an environment that closely mirrors actual job interviews

πŸ“Š Comprehensive Feedback System

  • Performance Scoring: Receive detailed scores across five key categories:
    • Communication Skills
    • Technical Knowledge
    • Problem-Solving Ability
    • Cultural & Role Fit
    • Confidence & Clarity
  • Actionable Insights: Get specific strengths and areas for improvement
  • Detailed Assessment: Receive comprehensive evaluation reports with personalized recommendations

πŸ› οΈ Technology Stack

InterviewAI is built with modern, industry-standard technologies to ensure optimal performance and user experience:

Frontend

  • βš›οΈ Next.js 15.2.4 - React framework with App Router for optimal performance
  • 🎨 Tailwind CSS 4 - Utility-first CSS framework for rapid UI development
  • 🧩 shadcn/ui - High-quality, accessible component library
  • ⚑ React 19 - Latest React features for enhanced user experience

Backend & Services

  • πŸ”₯ Firebase - Authentication, Firestore database, and server-side admin SDK
  • πŸ—£οΈ Vapi AI - Real-time voice interaction and transcription services
  • 🧠 Google Gemini 2.0 - AI-powered question generation and feedback analysis

Additional Tools

  • πŸ“ TypeScript - Type-safe development
  • 🎭 React Hook Form + Zod - Form validation and management
  • πŸ”” Sonner - Toast notifications
  • πŸ“¦ Styled Components - Component-level styling

πŸš€ Getting Started

Follow these step-by-step instructions to set up InterviewAI on your local machine.

Prerequisites

Before you begin, ensure you have the following installed:

  • Node.js (v18 or higher)
  • npm or yarn package manager
  • A code editor (VS Code recommended)

Step 1: Clone the Repository

git clone https://github.com/yourusername/InterviewAI.git
cd InterviewAI

Step 2: Install Dependencies

Install all required project dependencies:

npm install

or if you're using yarn:

yarn install

Step 3: Set Up Environment Variables

Create a .env.local file in the root directory of the project:

touch .env.local

Add the following environment variables to .env.local:

# Vapi AI Configuration
NEXT_PUBLIC_VAPI_WEB_TOKEN=your_vapi_web_token_here
NEXT_PUBLIC_VAPI_WORKFLOW_ID=your_vapi_workflow_id_here

# Google Gemini AI
GOOGLE_GENERATIVE_AI_API_KEY=your_google_gemini_api_key_here

# Application URL
NEXT_PUBLIC_BASE_URL=http://localhost:3000

# Firebase Client Configuration
NEXT_PUBLIC_FIREBASE_API_KEY=your_firebase_api_key
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_project_id.firebaseapp.com
NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_project_id
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your_project_id.appspot.com
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_messaging_sender_id
NEXT_PUBLIC_FIREBASE_APP_ID=your_app_id

# Firebase Admin SDK (Server-side)
FIREBASE_PROJECT_ID=your_project_id
FIREBASE_CLIENT_EMAIL=your_service_account_email
FIREBASE_PRIVATE_KEY=your_service_account_private_key

Where to Get Your Credentials:

  1. Firebase:

    • Go to Firebase Console
    • Create a new project or select an existing one
    • Navigate to Project Settings β†’ General β†’ Your apps
    • Copy the Firebase configuration values
    • For Admin SDK: Go to Project Settings β†’ Service Accounts β†’ Generate New Private Key
  2. Vapi AI:

    • Sign up at Vapi.ai
    • Create a workflow for your interview assistant
    • Copy your Web Token and Workflow ID from the dashboard
  3. Google Gemini:

    • Visit Google AI Studio
    • Create a new API key for Gemini
    • Copy the API key to your .env.local file

Step 4: Run the Development Server

Start the development server:

npm run dev

The application will be available at http://localhost:3000

Step 5: Build for Production

To create an optimized production build:

npm run build
npm start

πŸ“– Usage Guide

Creating Your First Interview

  1. Sign Up: Create an account using email/password or Google OAuth
  2. Navigate to Dashboard: Access your personalized dashboard
  3. Start Interview: Click "Start New Interview" to begin
  4. Configure Interview:
    • Select your job role
    • Choose experience level
    • Specify technical stack
    • Select interview type (Technical/Behavioral/Mixed)
  5. Begin Practice: Start speaking with the AI interviewer
  6. Review Feedback: After completion, view detailed performance analysis

Understanding Your Feedback

Each interview session provides:

  • Overall Score (0-100)
  • Category Breakdown: Individual scores for each evaluation area
  • Strengths: What you did well
  • Areas for Improvement: Specific recommendations for growth
  • Final Assessment: Comprehensive summary of your performance

🀝 Contributing

We welcome contributions from the community! InterviewAI is open-source and thrives on collaboration.

How to Contribute

  1. Fork the Repository: Create your own copy of the project
  2. Create a Feature Branch: git checkout -b feature/your-feature-name
  3. Make Your Changes: Implement improvements or new features
  4. Test Thoroughly: Ensure your changes work correctly
  5. Submit a Pull Request: Describe your changes and why they're valuable

Areas for Contribution

  • 🎨 UI/UX Improvements: Enhance the user interface and user experience
  • 🧠 AI Algorithm Optimization: Improve question generation and feedback quality
  • πŸ—„οΈ Database Efficiency: Optimize data queries and storage
  • πŸš€ New Features: Add functionality that benefits users
  • πŸ› Bug Fixes: Help identify and fix issues
  • πŸ“ Documentation: Improve code comments and documentation
  • 🌐 Internationalization: Add support for multiple languages

Code Style

  • Follow the existing code style and conventions
  • Write clear, descriptive commit messages
  • Add comments for complex logic
  • Ensure TypeScript types are properly defined

πŸ“ Project Structure

InterviewAI/
β”œβ”€β”€ app/                    # Next.js App Router pages
β”‚   β”œβ”€β”€ (auth)/            # Authentication routes
β”‚   β”œβ”€β”€ (dash)/            # Dashboard and interview pages
β”‚   β”œβ”€β”€ (root)/            # Landing page
β”‚   └── api/               # API routes
β”œβ”€β”€ components/            # React components
β”‚   └── ui/               # Reusable UI components
β”œβ”€β”€ lib/                  # Utility functions and actions
β”‚   └── actions/          # Server actions
β”œβ”€β”€ constants/            # Constants and configuration
β”œβ”€β”€ types/               # TypeScript type definitions
└── public/              # Static assets

πŸ› Troubleshooting

Common Issues

Issue: Environment variables not loading

  • Solution: Ensure .env.local is in the root directory and restart the dev server

Issue: Firebase authentication errors

  • Solution: Verify all Firebase configuration values are correct and the project is properly set up

Issue: Vapi connection issues

  • Solution: Check that your Vapi Web Token and Workflow ID are valid and active

Issue: Build errors with Tailwind CSS

  • Solution: Clear the .next folder and rebuild: rm -rf .next && npm run build

πŸ“œ License

This project is licensed under the MIT License - see the LICENSE file for details.


πŸ™ Acknowledgments

  • Vapi AI for providing exceptional voice interaction capabilities
  • Google Gemini for powerful AI question generation and analysis
  • Firebase for robust authentication and database services
  • Next.js Team for the amazing framework
  • All contributors and users who help improve InterviewAI

πŸ“§ Contact & Support


⭐ Star this repository if you find it helpful!

Made with ❀️ for developers preparing for their next opportunity

πŸŽ‰ Best of luck with your interviews! πŸš€

About

InterviewAI is an AI-powered mock interview platform built with Next.js. It uses voice-based interviews via Vapi AI, generates personalized questions with Google Gemini, and provides AI feedback after sessions.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •