Inspiration

The idea for AIMockInterview stemmed from the difficulties many individuals face when preparing for job interviews. Whether it's technical or behavioral interviews, the pressure can often lead to a lack of confidence. I wanted to create a tool that would allow users to practice and refine their skills in a low-pressure, realistic environment. AI's potential to generate customized interview questions seemed like the perfect way to simulate a variety of scenarios and give users the practice they need.

What it does

AIMockInterview allows users to create AI-powered mock interviews by entering their job title, experience level, and job description. The app generates interview questions tailored to the user's input, and users can either type out their responses or record their answers using voice. The app also includes the ability to play the interview questions aloud using AI-generated voices.

After completing an interview, users receive detailed feedback that includes:

  • A list of interview questions.
  • Their own answers.
  • Sample answers for each question.
  • A rating on a scale of 0-10.
  • Concise feedback on their performance.

The app also tracks multiple interview attempts, allowing users to practice repeatedly and compare their performance over time. Users can view a multi-line graph that visually compares the ratings of each question across different attempts, helping them identify areas of improvement and track their progress.

How we built it

Building AIMockInterview required careful integration of modern technologies to deliver a seamless, real-time interview practice experience.

  • I used Next.js and React to build a dynamic, responsive frontend that allows users to easily navigate the app and practice interviews.
  • Convex was chosen for its real-time database capabilities, enabling live updates and ensuring users' interviews and progress are always in sync.
  • We also integrated convex-auth for secure user authentication, ensuring smooth sign-up and login processes.
  • OpenAI powers the generation of interview questions and feedback analysis, tailoring content based on the user’s job title, experience, and description. It also provides intelligent feedback on the users' answers.
  • Tailwind CSS and Shadcn were used for creating a modern, consistent, and responsive UI, ensuring the app is easy to use and visually appealing.
  • Zod was employed for schema validation to ensure that all user inputs, including job descriptions, interview responses and the AI-generated content, meet the required formats.
  • Recharts was utilized to display multi-line graphs that track users' progress across different interview attempts, providing valuable visual insights into their improvement over time.

Challenges we ran into

  • One of the key challenges was that this was my first time working with Convex and convex-auth. However, thanks to the clear documentation and intuitive APIs, I was able to quickly get up to speed. The learning curve was smoother than expected.

  • Database schema design was another challenge, as I needed to ensure it was flexible enough to handle various interview scenarios while also maintaining efficiency. Designing tables to accommodate user attempts, questions, answers, and feedback required thoughtful planning.

  • Performance optimization was a crucial aspect. This involved ensuring proper database indexing and optimizing function calls. By indexing the most queried data fields, I improved query performance and ensured that real-time updates were swift. Additionally, I focused on minimizing unnecessary function calls, streamlining our backend to provide a fast and reliable user experience while leveraging Convex's capabilities for performance.`

Despite these challenges, leveraging Convex’s capabilities allowed for a smooth and efficient real-time experience.

Accomplishments that we're proud of

I'm proud of creating a fully functional AI-driven platform that provides users with personalized mock interviews and valuable feedback. The integration of voice-based responses and playback adds a layer of realism, allowing users to simulate the feeling of a live interview. I also excited about the detailed progress tracking feature, which offers users insights into their improvement over time through visualized data.

What we learned

Throughout this project, I learned the intricacies of working with AI to generate relevant structed content. A significant learning experience was working with Convex and convex-auth for the first time. Convex's real-time database capabilities and intuitive API made managing live data updates and user authentication surprisingly straightforward. The comprehensive documentation provided by Convex was particularly helpful, making it easier to implement complex features and optimize performance. Convex’s design principles and efficient handling of real-time data truly enhanced the app’s functionality and user experience. We also refined our skills in schema design, ensuring that our database structure could handle various scenarios efficiently. Performance optimization became a key focus, as we worked on indexing and optimizing function calls to provide a seamless user experience. Overall, the project was a rewarding learning journey, and the successful integration of these technologies underscored their value in building robust, real-time applications.

What's next for AIMockInterview

Moving forward, we plan to enhance AIMockInterview by:

  • Implementing advanced analytics for users to get deeper insights into their performance.
  • Add video analysis to study user body language and confidence in video and voice.

Our goal is to make AIMockInterview the ultimate tool for job seekers to prepare for interviews with confidence.

Built With

  • convex
  • convex-auth
  • next.js
  • openai
  • recharts
  • shadcn
  • tailwindcss
  • zod
Share this project:

Updates