Inspiration

As students who are still starting our careers, we know that landing internships can be tough. Getting through resume screening and nailing the interview is not easy. Most students today don't have enough support when it comes to improving their interview skills, and finding the support you need is a daunting task on its own. Our goal was to create a solution that would help students like us land jobs by becoming better interviewees, boosting their confidence in whatever job market they find themselves in.

What it does

AI Interviewer is a web application that uses artificial intelligence and natural language processing to simulate a real-life interview experience for job applicants. Users begin by entering the details of the job they want to practice interviewing for. Next, they have the option to either input specific interview questions they would like to practice or use our AI-driven question-generating tool. After setup, they are put into a realistic interview experience where they can have a real-life conversational interview with a virtual interviewer. Following the interview, they are given detailed feedback on their responses displaying both their strengths and areas of improvement. All this functionality is displayed in a beautiful UI, prioritizing user experience.

How we built it

Our application was built using Next.js, a full-stack web development framework for React.js (which was our front-end JS library). Many of our UI components leveraged the MaterialUI library to help quickly build out a clean and responsive application. With Next.js, we were easily able to set up routing, server-side rendering, and HTTP requests from the client to the server. All of our application's AI and NLP capabilities were provided by the OpenAI API and OpenAI's machine learning models. The question-generating tool, the interviewer's speech, and the interview feedback all use the GPT-3.5 model's text completion capabilities. We also used their Whisper model and TTS-1 model to implement speech-to-text and text-to-speech respectively. Additional React libraries were used to implement audio recording, camera, and other minor features of our application. Our application was deployed on Vercel.

Challenges we ran into

  • Dealing with slow OpenAI text-completion responses
    • To combat this issue, we implemented text streaming from the server to the client, and configured our OpenAI API calls to take place on Vercel's Edge runtime.
  • Providing the proper prompt to get the desired output from the text completion API
    • Oftentimes, GPT-3.5's responses would fall outside our desired scope.
  • Creating the interview simulation to be as seamless as possible
    • There was a lot of complexity due to timing audio capture, visual feedback, and API calls.

Accomplishments that we're proud of

  • Creating a fully functional AI interview tool within the timespan of 2 weeks
  • Implementing a user interface that looks very clean and visually appealing
  • Successfully using OpenAI's API in three different ways, with the text-streaming capabilities
  • Being able to build an app that can be helpful to millions in the job market, especially in an age where layoffs are far too common
  • Using a GitHub's project feature to keep track of features and collaborate in the most efficient way possible

What we learned

  • How to build full-stack applications in Next.js 13, a framework that we are not familiar with
  • Gained a deeper understanding of client-server interactions
  • How to leverage machine learning models in software development projects

What's next for AI Interviewer

  • Adding user authentication so users can check their interview simulation history and save interview templates
  • Making the interview experience quicker and reducing latency
  • Reducing the wait time for getting feedback for questions (currently takes around 30 seconds)

Built With

  • gpt-3.5
  • materialui
  • next.js
  • openai
  • react.js
  • tts-1
  • vercel
  • whisper1
Share this project:

Updates