An intelligent AI-powered interview preparation platform that helps candidates practice and improve their interview skills through realistic simulations, personalized feedback, and comprehensive performance analytics.
Interview AI is a comprehensive interview preparation platform that leverages artificial intelligence to create realistic interview experiences. The platform analyzes your resume and target job descriptions to generate personalized interview questions, provides real-time feedback on your responses, and tracks your progress over time.
- AI-Powered Question Generation: Dynamic questions based on your resume and job requirements
- Multiple Interview Types: Technical, Behavioral, and Situational interviews
- Adaptive Difficulty: Beginner, Intermediate, and Advanced levels
- Follow-up Questions: Intelligent follow-up questions based on your responses
- Real-time Audio Recording: High-quality audio capture with visual feedback
- Resume Parser: AI-powered resume analysis and skill extraction
- Job Description Analysis: Intelligent parsing of job requirements and responsibilities
- Document Storage: Secure cloud storage with AWS S3 integration
- Multiple Format Support: PDF parsing and text extraction
- Detailed Feedback: AI-generated feedback on each response
- Performance Scoring: Comprehensive scoring system with improvement suggestions
- Progress Tracking: Historical performance data and trend analysis
- Hire Recommendations: AI assessment with hiring recommendations
- Strengths & Weaknesses: Detailed analysis of your interview performance
- NextAuth.js Integration: Secure authentication with multiple providers
- Email Verification: Account verification system
- Password Reset: Secure password recovery
- Role-based Access: User and admin role management
- Modern UI/UX: Clean, responsive design with Tailwind CSS
- Real-time Updates: Live feedback and progress indicators
- Audio Playback: Review your recorded responses
- Dashboard Analytics: Comprehensive overview of your interview history
- Next.js 15 - React framework with App Router
- TypeScript - Type-safe development
- Tailwind CSS - Utility-first CSS framework
- Framer Motion - Animation library
- Radix UI - Accessible component primitives
- React Hook Form - Form state management
- Zod - Schema validation
- Prisma - Database ORM
- PostgreSQL - Primary database
- NextAuth.js - Authentication system
- Redis - Caching and session management
- Google Gemini AI - Text generation and analysis
- PDF Processing - Resume and job description parsing
- Audio Processing - Speech-to-text transcription
- AWS S3 - File storage
- Vercel - Deployment platform
- Node.js 18+
- PostgreSQL database
- Redis instance
- Google Gemini AI API key
- AWS S3 credentials
- Clone the repository
git clone <repository-url>
cd interview-ai- Install dependencies
npm install- Environment Setup
Create a
.env.localfile in the root directory:
# Database
DATABASE_URL="postgresql://username:password@localhost:5432/interview_ai"
# Authentication
AUTH_SECRET="your-auth-secret"
AUTH_TRUST_HOST="http://localhost:3000"
# OAuth Providers
AUTH_GITHUB_CLIENT_ID="your-github-client-id"
AUTH_GITHUB_CLIENT_SECRET="your-github-client-secret"
AUTH_GOOGLE_CLIENT_ID="your-google-client-id"
AUTH_GOOGLE_CLIENT_SECRET="your-google-client-secret"
# AI Services
GEMINI_API_KEY="your-gemini-api-key"
GEMINI_MODEL="gemini-1.5-flash"
# AWS S3
AWS_ACCESS_KEY_ID="your-aws-access-key"
AWS_SECRET_ACCESS_KEY="your-aws-secret-key"
AWS_REGION="your-aws-region"
AWS_S3_BUCKET="your-s3-bucket"
# Redis
REDIS_URL="redis://localhost:6379"
# Email (Optional)
NODEMAILER_EMAIL="your-email@example.com"
NODEMAILER_PASS="your-email-password"
# App Configuration
WEB_NAME="AI Interview Platform"- Service Via Docker
docker compose up # -d flag to run service in background- Database Setup
# Generate Prisma client
npm run prisma:generate
# Run database migrations
npm run prisma:migrate:dev
# (Optional) Open Prisma Studio
npm run prisma:studio- Start Development Server
npm run devOpen http://localhost:3000/dashboard to view the application.
src/
βββ actions/ # Server actions for data operations
βββ app/ # Next.js App Router pages
βββ auth/ # Authentication configuration
βββ components/ # Reusable UI components
βββ config/ # Database and service configurations
βββ lib/ # Utility libraries and helpers
βββ schema/ # Zod validation schemas
βββ types/ # TypeScript type definitions
βββ utils/ # Utility functions
# Development
npm run dev # Start development server with Turbopack
# Database
npm run prisma:generate # Generate Prisma client
npm run prisma:migrate:dev # Run database migrations
npm run prisma:migrate:deploy # Deploy migrations (production)
npm run prisma:studio # Open Prisma Studio
npm run prisma:db:push # Push schema to database
# Build & Deploy
npm run build # Build for production
npm run start # Start production server
npm run lint # Run ESLint- Multi-provider OAuth (GitHub, Google)
- Secure session management with NextAuth.js
- Protected routes and API endpoints
- Resume Parsing: Extract structured data from PDF resumes
- Job Description Analysis: Parse requirements and generate questions
- Interview Simulation: Dynamic conversation flow with context awareness
- Feedback Generation: Comprehensive performance analysis
- User uploads resume/job description
- AI processes and extracts relevant information
- System generates targeted interview questions
- Real-time interview simulation with audio processing
- AI provides detailed feedback and suggestions
- Environment variable validation
- Input sanitization with Zod schemas
- Secure file upload with type validation
- Protected API routes with authentication
- SQL injection prevention with Prisma
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open a Pull Request
- v1.0.0 - Initial release with core interview features
- v1.1.0 - Added audio analysis and advanced feedback
- v1.2.0 - Enhanced UI/UX and performance improvements