PrepPilot is an AI-powered mock interview platform that helps candidates practice for specific roles at specific companies. Instead of giving generic interview questions, PrepPilot researches a company website, uses that context to guide a realistic voice interview, and then gives personalized feedback based on the user’s actual responses.
Inspiration
We were inspired by how stressful and unpredictable interview preparation can be. Many candidates practice with generic question banks, but real interviews are usually shaped by the company’s products, values, role expectations, and technical direction. We wanted to build a tool that makes interview prep feel more realistic, personalized, and immediately useful.
What It Does
Users enter a company URL and role title, optionally upload a resume, and PrepPilot crawls the company website to gather relevant context. After the research step, users start a live voice interview with an AI interviewer. The interviewer asks company-aware questions, listens to the candidate’s answers, and conducts the session like a phone screen.
After the interview, PrepPilot grades the conversation, shows an overall readiness score, identifies strengths and weak areas, gives actionable improvement tips, and tracks progress across past sessions with analytics.
How We Built It
We built the frontend with React, Vite, Tailwind CSS, and React Router. The app includes onboarding, company research progress, a live interview screen, feedback, history, and insights dashboards.
The backend is built with FastAPI. It handles session setup, website crawling, interview grading, realtime voice session creation, and storing interview results. We replaced an external indexing dependency with a custom local crawler using requests and BeautifulSoup, which scrapes company pages and stores relevant text for interview context.
For AI, we used OpenAI models to generate interview questions, power the realtime voice interviewer, transcribe conversation turns, and grade the final interview transcript. Supabase is used for saving sessions, interview history, scores, strengths, weaknesses, and analytics.
Challenges We Faced
One major challenge was grounding the AI interviewer in real company information without making the setup too slow or complex. We solved this by building a lightweight crawler that gathers company website content in the background while the frontend shows research progress.
Another challenge was coordinating a live voice interview flow: starting the realtime session, tracking conversation turns, handling microphone permissions, ending the call, and sending the transcript for grading. We also had to make sure the app still behaved gracefully if grading failed or if no conversation was captured.
We also worked through backend/frontend integration issues, CORS configuration, environment variables, local development setup, and making sure the final feedback felt specific instead of generic.
What We Learned
We learned how to connect a React frontend with a FastAPI backend in a full-stack AI application, how to use website crawling as context for AI prompts, and how to structure realtime voice interactions. We also learned the importance of designing fallback states, since AI and network-dependent features can fail in unpredictable ways. Most importantly, we learned how much better an AI product feels when it is grounded in real user context instead of just generating broad, generic responses."
Log in or sign up for Devpost to join the conversation.