Get to the next round.
Practice interviews with rubric-based AI feedback and targeted follow-ups.
NextRound is an AI-powered interview simulator designed for job seekers, students, and professionals. It evaluates your interview answers across multiple dimensions, identifies your biggest weakness, and generates personalized follow-up questions to help you improve.
π Live Demo & Project Details β’ Built with Next.js & Gemini AI
NextRound transforms interview practice with structured AI feedback that goes beyond generic chatbots:
β
Rubric-Based Scoring - Get detailed feedback across 5 dimensions (Structure, Clarity, Depth, Relevance, Impact)
β
Weakness Detection - Instantly identify your lowest-scoring area to focus improvement
β
Answer Improvement - See a better version of your response with rewrite options (Concise, Confident, Technical)
β
Targeted Practice Loop - Receive customized follow-up questions addressing your weakness
β
Session Mode - Complete 5-question mock interviews with comprehensive coaching summary
β
Voice Mode - AI interviewer reads questions and feedback aloud for realistic practice
β
Session History - Review past interviews and track your progress over time
β
Low-Effort Filter - Smart detection prevents meaningless answers from wasting API tokens
- Configure your interview - Choose role (PM, Engineer, Designer), type (Behavioral, Technical, System Design), and difficulty
- Answer the question - Type your response (minimum 50 words, or use voice input)
- Get AI evaluation - Receive structured feedback with rubric scores (0-10 scale)
- Review your weakness - See your biggest area for improvement highlighted
- Improve your answer - Rewrite with AI suggestions (Concise, Confident, Technical styles)
- Apply & Re-score - See your score improvement in real-time
- Practice targeted follow-up - Answer a new question designed to address your weakness
- Repeat and improve - Build confidence through deliberate practice
- Practice one question at a time with instant feedback
- Rewrite and re-evaluate answers to see score improvements
- Generate targeted follow-up questions based on weaknesses
- Complete structured interview sessions with progress tracking
- Adaptive question generation based on your performance
- Comprehensive coaching summary with score trends and action items
- Question counter and progress indicator
- AI reads questions aloud for realistic interview simulation
- Hear your feedback summary in natural speech
- Auto-play options for hands-free practice
- Audio controls: Stop/Resume anytime
- Detects meaningless answers ("idk", "not sure", empty responses)
- Saves API tokens by not evaluating low-quality submissions
- Provides coaching tips specific to interview type
- Encourages detailed, thoughtful responses
- Compare original vs. improved answers side-by-side
- Rewrite in different styles: Concise, Confident, Technical
- Copy improved answers to clipboard
- Apply changes and see score delta
- Review all past interview sessions
- Track scores across different interview types
- Export history for external analysis
- Filter by date, role, or interview type
- Next.js 16 - React framework with App Router and Turbopack
- TypeScript - Type-safe development
- Tailwind CSS - Utility-first styling with dark mode support
- Framer Motion - Smooth animations and transitions
- Google Gemini 2.0 Flash - Advanced AI evaluation with structured outputs
- ElevenLabs API - High-quality text-to-speech for voice mode
- Zod - Runtime schema validation
- localStorage - Client-side session persistence (no backend required)
Architecture Highlights:
- Singleton Audio Manager for reliable voice playback
- LRU cache for evaluation results (30-min TTL, 50-item capacity)
- AbortController for cancellable AI requests
- React Context API for global voice mode state
- Responsive design with reduced-motion support
- Node.js 18+ and npm
- Google Gemini API key (get one free here)
# 1. Clone the repository
git clone https://github.com/muhibali/NextRound.git
cd NextRound
# 2. Install dependencies
npm install
# 3. Set up environment variables
cp .env.local.example .env.local
# Edit .env.local and add your API keys
# 4. Start development server
npm run devOpen http://localhost:3000 in your browser and start practicing! π
Create a .env.local file in the project root with these variables:
# Required: Your Google Gemini API key
GEMINI_API_KEY=your_api_key_here
# Optional: Preferred Gemini model (default: gemini-2.0-flash-exp)
GEMINI_MODEL=gemini-2.0-flash-exp
# Optional: Alternative provider (OpenRouter)
USE_OPENROUTER=false
OPENROUTER_API_KEY=your_openrouter_key_here
# Optional: Use mock evaluation for testing (bypasses AI, no API key needed)
USE_MOCK_EVAL=false
# Optional: Demo mode for live presentations (ensures app never crashes)
DEMO_MODE=false
# Optional: ElevenLabs Text-to-Speech (for voice mode)
ELEVENLABS_API_KEY=your_elevenlabs_api_key_here
ELEVENLABS_VOICE_ID=EXAVITQu4vr4xnSDxMaLGEMINI_API_KEY(required) - Your Google Gemini API key for AI evaluationGEMINI_MODEL(optional) - Model to use (default:gemini-2.0-flash-exp- latest and fastest)USE_OPENROUTER(optional) - Set totrueto use OpenRouter instead of GeminiOPENROUTER_API_KEY(optional) - Your OpenRouter API key (if using OpenRouter)USE_MOCK_EVAL(optional) - Set totruefor demos without API calls (returns structured fallback data)DEMO_MODE(optional) - Set totruefor live presentations (enables graceful fallbacks, ensures app never crashes)ELEVENLABS_API_KEY(optional) - Your ElevenLabs API key for text-to-speech audio feedbackELEVENLABS_VOICE_ID(optional) - Voice ID from ElevenLabs library (default: Sarah - professional female voice)
NextRound can read AI feedback aloud using ElevenLabs text-to-speech. This feature is completely optional.
To enable audio feedback:
- Sign up for a free account at ElevenLabs
- Get your API key from the ElevenLabs dashboard
- Browse the voice library and copy your preferred voice ID
- Add both values to your
.env.localfile:ELEVENLABS_API_KEY=sk_your_api_key_here ELEVENLABS_VOICE_ID=EXAVITQu4vr4xnSDxMaL
- ElevenLabs API keys must NEVER be used in frontend code
- Keys are only accessed server-side in
/apiroutes - Never expose
process.env.ELEVENLABS_API_KEYto client components - The app will gracefully disable audio if keys are missing
NextRound keeps your API keys secure:
- β
.env.localis git-ignored and never committed to version control - β
API keys are only used server-side in
/apiroutes (never exposed to client) - β
No
process.envsecrets in client components - β Zod validation prevents injection attacks
- β All user data stays local (localStorage only, no backend database)
See .github/docs/SECURITY.md for detailed security guidelines.
Ensure your demo never crashes! Set DEMO_MODE=true in your .env.local file before live presentations:
DEMO_MODE=trueWhat Demo Mode does:
- β Gemini API fails β Automatically uses mock evaluation (keeps app working)
- β ElevenLabs TTS fails β Shows gentle error message (app continues without audio)
- β Network issues β Graceful fallbacks with user-friendly messages
- β Rate limits β Friendly notifications instead of crashes
Demo Mode messages are designed to be reassuring:
- β Without: "Text-to-speech service authentication failed. Please check your API key."
- β With: "Voice mode is temporarily unavailable. The app will continue working without audio."
Recommendation: Enable DEMO_MODE=true for:
- Hackathon presentations
- Investor demos
- Conference talks
- Any live audience presentation
Turn it off (DEMO_MODE=false) for normal development and testing.
For hackathon judges or recruiters:
- Open homepage β Click "Start Practicing"
- Select: Product Manager role, Behavioral type, Mid difficulty
- Enable Voice Mode for immersive experience (optional)
- Click "Start Interview"
- Read the question: "Tell me about a time you had to prioritize features with limited resources"
- Type a sample answer (aim for 100+ words)
- Click "Evaluate My Answer"
- Overall Score - See large score with verdict (e.g., "Strong foundation, room to elevate")
- Rubric Breakdown - Review 5 animated progress bars showing dimension scores
- Biggest Weakness - Note the highlighted weakness (e.g., "Depth")
- Strengths & Growth Areas - Scan key insights
- Improved Answer - Compare your response to AI-enhanced version
- Scroll to Targeted Next Question (designed to address your weakness)
- Click "Generate Targeted Question" to continue practicing
- (Optional) Visit History page to review past sessions
Key talking points:
- "Unlike generic AI chat, NextRound uses a structured rubric like real interviewers"
- "The targeted follow-up creates a practice loop focused on your weak spots"
- "All data stays local - no signup, no backend, instant feedback"
Comprehensive documentation is available in the docs/ directory:
-
Features - Implementation guides for major features
- Audio Manager & Voice Mode
- Low-effort answer filter
- Session mode
- Weakness targeting system
-
Bug Fixes - Post-mortems and fix documentation
- Answer re-evaluation flow
- Interview type persistence
- Session mode improvements
- Scoring system fixes
-
Architecture - Design and architecture docs
- Component structure
- Design system
- Animation system
- Scoring algorithms
-
Project Guides - Core project documentation
- PROJECT_GUIDE.md - Complete project specification
- QUICK_REFERENCE.md - Developer quick reference
- TYPE_SYSTEM.md - TypeScript type definitions
- SECURITY.md - Security best practices
NextRound is actively being developed. Potential enhancements include:
- Company-specific templates - Practice Amazon Leadership Principles, Google's STAR method, Meta's impact questions
- Voice input - Speak your answers naturally with speech-to-text
- Advanced analytics dashboard - Track improvement trends over time with charts and insights
- Multiplayer mode - Practice with friends, share feedback, or conduct peer mock interviews
- Mobile app - Native iOS/Android experience with offline mode
- Video recording - Analyze body language, eye contact, and delivery
- Multi-language support - Practice in Spanish, French, Mandarin, and more
- Export functionality - Download feedback as PDF or share via link
- Custom rubrics - Define your own evaluation criteria for specialized roles
- AI interviewer avatar - Visual representation with lip-sync for immersive practice
- Interview scheduling - Set reminders and daily practice goals
- Mentor mode - Share session links with mentors or career coaches for review
Contributions are welcome! Whether you're fixing bugs, adding features, or improving documentation, we'd love your help.
Quick links:
- Contributing Guidelines - How to contribute
- Project Guide - Full requirements and architecture
- Development Checklist - Track implementation progress
- Security Guidelines - API key safety rules
- Documentation - Feature docs, bug fixes, and architecture
# Create a feature branch
git checkout -b feature/your-feature-name
# Make your changes and test
npm run dev
npm run build
# Run type checking
npm run type-check
# Submit a pull request
git push origin feature/your-feature-namenextround/
βββ src/
β βββ app/ # Next.js app router pages
β βββ components/ # React components
β βββ lib/ # Core logic, types, utilities
β βββ context/ # React Context providers
βββ docs/ # Documentation
β βββ features/ # Feature implementation docs
β βββ fixes/ # Bug fix documentation
β βββ architecture/ # Architecture guides
βββ .github/docs/ # Project guides and security
MIT License - feel free to use this project for learning, hackathons, or production apps!
See LICENSE for details.
Built with β€οΈ for the interview prep community. Special thanks to:
- Google Gemini for powerful AI evaluation
- ElevenLabs for natural text-to-speech
- Vercel for seamless deployment
- Next.js team for an amazing framework
- All contributors and users who provided feedback
- Live Demo & Project Details - Full project showcase
- GitHub Repository - Source code and documentation
- Report Issues - Bug reports and feature requests
Questions or feedback? Open an issue or reach out to @muhibali