Interview Buddy

Inspiration

Preparing for an interview can be stressful, especially when you do not have someone available to practice with. I could read lists of common questions and plan answers in my head, but that did not prepare me for the pressure of answering out loud, organizing my thoughts quickly, or responding to unexpected follow-up questions.

I also noticed that most interview-preparation tools provide generic questions and sample answers. They do not recreate the feeling of a real conversation or explain exactly where an answer could be improved.

That inspired me to create Interview Buddy: an AI-powered mock interview coach that gives users a realistic place to practice, make mistakes, receive personalized feedback, and build confidence before an actual interview.

What it does

Interview Buddy is a web application that conducts personalized mock interviews for internships, college admissions, scholarships, and full-time jobs.

Users select an interview type, enter the position they are preparing for, choose a difficulty level, and optionally provide a résumé or job description. Interview Buddy uses this information to generate relevant questions and create a practice experience tailored to the user’s goals.

Personalized interview setup

Before beginning an interview, users can customize their practice session by selecting:

  • The position or opportunity
  • The company or organization
  • Behavioral, technical, or mixed questions
  • Interview difficulty
  • Number of questions
  • Interview duration
  • Optional résumé and job-description context

This allows Interview Buddy to create a more useful session than a standard list of commonly asked questions.

AI mock interviewer

During a session, the AI interviewer presents one question at a time and gives the user time to answer using their microphone. The questions can also be read aloud to make the experience feel more like an actual interview.

Interview Buddy converts the user’s spoken response into a transcript and sends the transcript to Gemini for analysis. The AI considers the original question, the position, the job description, and the user’s previous responses.

Instead of moving through a fixed question list, Interview Buddy can ask follow-up questions. For example, if a user briefly mentions leading a team, the AI might ask what conflict occurred, how the user handled it, and what the result was.

Live communication feedback

Interview Buddy helps users notice communication habits that can be difficult to recognize while speaking. It tracks information such as:

  • Answer length
  • Speaking pace
  • Long pauses
  • Repeated filler words
  • Whether the answer addressed the question
  • Use of specific examples
  • Organization and clarity

When the camera feature is enabled, MediaPipe performs lightweight processing in the browser to estimate signals such as face presence and head direction. These signals are used only to provide general presentation reminders, not to judge personality, attractiveness, or employability.

Answer evaluation

After each response, Interview Buddy evaluates the answer across several categories:

  • Relevance
  • Clarity
  • Specificity
  • Organization
  • Confidence
  • Use of evidence or examples
  • STAR-method structure for behavioral questions

The user receives a short explanation of what worked, what was missing, and how the answer could be strengthened.

Interview Buddy can also produce an improved example answer. The goal is not to give the user a script to memorize. Instead, the example demonstrates how the user’s own experiences could be communicated more clearly.

Interview debrief

At the end of the session, Interview Buddy creates a personalized report containing:

  • An overall performance summary
  • Strongest answers
  • Answers that need more development
  • Recurring filler words
  • Average response length
  • Communication patterns
  • Question-by-question feedback
  • Suggested areas to practice
  • One clear next step

For example, the debrief might explain that the user provided strong examples but often forgot to state the result of their actions. It could then recommend practicing the final “Result” section of the STAR method.

Progress dashboard

Interview Buddy saves previous sessions so users can compare their performance over time. The dashboard shows changes in answer quality, clarity, filler-word use, speaking pace, and performance across different question categories.

This helps users determine whether they are actually improving instead of relying only on how confident they felt during one session.

Question and story bank

Users can save important questions and build a personal story bank containing experiences related to leadership, teamwork, conflict, failure, problem-solving, and achievement.

Interview Buddy can recommend which stories fit different behavioral questions. This helps users reuse their strongest experiences while adapting them to the specific question instead of memorizing unrelated answers.

Hosted judge demo

For the hosted demonstration, I created sample interview profiles so judges can explore the application without entering personal information. The demo includes example résumés, job descriptions, interview transcripts, performance reports, and progress history.

Judges can also start a blank session and experience the interview process themselves.

How we built it

The frontend is built with HTML, CSS, JavaScript, Tailwind CSS, and Chart.js. It manages interview setup, microphone controls, the live interview interface, transcripts, feedback cards, progress charts, saved questions, and session history.

The backend is built with FastAPI and Python. It handles interview sessions, question generation, follow-up questions, transcript evaluation, performance reports, and database operations.

I used SQLAlchemy for the database layer. SQLite is used during local development, while the hosted version uses PostgreSQL. The database stores user settings, interview sessions, questions, answer transcripts, evaluation results, and progress statistics.

Gemini powers the main AI features. It generates personalized questions, creates contextual follow-ups, evaluates answers, and produces the final interview report. I used structured prompts and defensive response parsing to keep the feedback consistent and make sure the frontend can display it correctly.

Speech recognition converts spoken answers into text for analysis. Browser-based speech synthesis allows the interviewer to read questions aloud. MediaPipe provides optional, on-device presentation signals without uploading or storing raw camera recordings.

The application is deployed with Vercel, while the database is hosted using Neon PostgreSQL.

Challenges we ran into

One of the biggest challenges was making the feedback specific. Early versions produced generic advice such as “be more confident” or “add more details.” That feedback sounded reasonable, but it did not explain what the user should actually change.

To improve it, I gave Gemini more structured context and required each evaluation to identify evidence from the user’s answer. The AI must now explain what was effective, what was missing, and what the user should try during the next answer.

Another challenge was generating realistic follow-up questions. If the AI asked unrelated follow-ups, the interview felt like a chatbot instead of an interviewer. I improved this by including the original question, the answer transcript, the interview type, and the session history in the follow-up prompt.

Speech recognition also created difficulties. Microphone quality, accents, background noise, and technical vocabulary could produce inaccurate transcripts. I added transcript editing so users can correct major recognition errors before requesting a detailed evaluation.

It was also difficult to design a fair scoring system. Interview performance cannot be reduced to one perfectly objective number. I separated the evaluation into understandable categories and paired every score with an explanation. The scores are intended to guide practice, not determine whether someone deserves a job or admission.

Privacy was another important challenge because résumés, transcripts, microphones, and cameras can contain sensitive information. I designed the camera analysis to happen locally whenever possible and avoided storing raw audio or video recordings.

Accomplishments that we're proud of

I am proud that Interview Buddy became more than a list of practice questions. It creates a complete preparation loop: customize an interview, answer questions aloud, respond to follow-ups, receive detailed feedback, review the session, and track improvement over time.

I am especially proud of the personalized follow-up system. The interviewer can react to what the user actually said, which makes each session feel more realistic and prevents users from relying entirely on memorized responses.

The question-by-question feedback is another major accomplishment. Instead of only providing an overall score, Interview Buddy shows the user exactly how each answer could be clearer, more specific, and better organized.

I am also proud of the progress dashboard and story bank. These features turn individual practice sessions into a longer-term learning process and help users prepare strong examples that can be adapted across different interviews.

What we learned

I learned how to build and deploy a full-stack application that combines a frontend, Python backend, database, speech tools, browser-based computer vision, and a generative AI model.

I also learned that effective prompt engineering requires more than asking an AI to “give feedback.” The model performs much better when it receives clear context, evaluation criteria, response structures, and restrictions.

Working on speech recognition taught me that AI systems must account for imperfect inputs. A strong application cannot assume that every transcript will be accurate or that every user will have the same microphone, accent, speaking style, or environment.

Most importantly, I learned that useful interview coaching should build confidence without hiding weaknesses. Feedback should be honest and specific, but it should also make the next step feel achievable.

What's next for Interview Buddy

  • Add additional technical-interview modes for coding, data science, and system-design questions.
  • Create company-specific interview simulations using publicly available interview formats.
  • Add résumé improvement suggestions based on the selected position.
  • Improve speech analysis for pacing, filler words, and long pauses.
  • Add a collaborative mode where teachers, mentors, or friends can leave feedback.
  • Create a mobile-friendly practice mode for quick interview sessions.
  • Add calendar reminders and personalized practice plans before an interview date.
  • Support additional languages and multilingual interviews.
  • Allow users to export their interview reports as PDFs.
  • Compare different AI models and prompt strategies to improve feedback consistency.

Honest data-flow summary

Interview Buddy sends the user’s answer transcript, selected interview settings, and optional résumé or job-description text to Gemini through the backend to generate questions and feedback.

Optional camera signals are processed locally with MediaPipe and are used only for general presentation feedback. Interview Buddy does not use appearance to determine interview performance.

The application stores interview questions, transcripts, feedback, and progress data. Raw camera footage is not saved. Raw microphone recordings are discarded after transcription unless the user explicitly chooses to save them. API keys remain protected on the backend.

Interview Buddy is a practice and educational tool. Its feedback is not an official hiring decision and should not be treated as a guarantee of employment, admission, or interview performance.

Built With

Share this project:

Updates