From Zero to One: The Story of a Personal AI Interview Coach
Note from the Developer: This project was more than a technical exercise; it was a journey. It started with a simple idea—to build a better way to prepare for tech interviews—and evolved into a comprehensive platform. Every feature, every challenge, and every line of code represents a real story of problem-solving and growth.
(This is the perfect place for a high-quality GIF that walks through the user journey: creating a deck, a review session, and a practice session.)
Interview Prep AI is an intelligent learning platform that transforms how tech professionals prepare for interviews. It moves beyond static flashcards to create a dynamic, feedback-driven ecosystem that helps you not only know the material but also master communicating it.
- 🤖 Build Custom Decks in Seconds: Create hyper-relevant interview decks for any role, or let the AI build one for you by simply pasting a link to a real job description.
- 🧠 Learn with Spaced Repetition: A smart SRS algorithm schedules your reviews at the optimal time to ensure knowledge moves into your long-term memory.
- 🎙️ Practice Aloud, Get Real Feedback: Use your voice to practice your answers and receive instant, AI-powered critiques on your content, clarity, and delivery.
- 📊 Track Your Growth: A personalized dashboard visualizes your progress, showing you exactly where you're strong and where you need to focus.
This project is a full-stack MERN application, architected for a modern, scalable, and real-time user experience.
A project's true value is in the problems solved along the way. This application's most advanced features are the direct result of tackling and overcoming significant engineering hurdles.
- The Ambition: To provide consistently accurate, structured feedback from the AI.
- The Roadblock: The LLM would occasionally "bleed" conversational text around its JSON output, breaking the frontend. After multiple failed attempts to perfect the prompt, the application's core feature was at risk.
- The Breakthrough: Instead of trying to force the AI to be perfect, I built a resilient system around its imperfections. I engineered a robust parsing layer on the backend that intelligently finds and extracts the valid JSON from the raw text.
- The Takeaway: This was a profound lesson in defensive programming. A senior engineer's job isn't just to make things work; it's to build systems that don't break when faced with the unexpected.
- The Ambition: To move beyond a simple flashcard app and implement a true Spaced Repetition System.
- The Roadblock: Translating the theoretical SM-2 algorithm into performant, stateful backend logic was far more complex than anticipated. My initial attempts were buggy and didn't correctly schedule the review intervals.
- The Breakthrough: I took a step back and dedicated time to studying open-source SRS implementations. This research allowed me to refactor my logic, resulting in a stable and effective scheduling engine.
- The Takeaway: This taught me the value of deep research before implementation. Sometimes, the fastest way to solve a problem is to slow down and learn from the work of others.
This project is a testament to the engineering process: ambition, struggle, learning, and ultimately, resilience.
To run this project locally, follow these steps:
- Node.js (v18 or later)
- MongoDB instance (local or cloud-based)
- Google Gemini API Key
git clone
cd interview-prep
Install Dependencies
# Install backend dependencies
cd backend
npm install
# Install frontend dependencies
cd ../frontend
npm install
Configure Environment Variables
In the backend directory, create a .env file.
Add your MONGO_URI and GEMINI_API_KEY.
Run the Application
# Run the backend server (from the backend folder)
npm run dev
# Run the frontend development server (from the frontend folder)
npm start
Roadmap(Future Advancements)
AI-driven behavioral interview scoring
Role-based question banks (SDE, Analyst, Designer)
Video interview simulation
Resume analysis and feedback
Leaderboards and community features
Contributing
Contributions are welcome!
Fork this repo
Create your 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 PR 🚀
Author: Shashank Chakraborty
Live Project: https://interview-prep-ai-kappa.vercel.app/
Email: [email protected]