Inspiration
While preparing for our own interviews, we recognized that traditional interview preparation tools often lack two crucial elements: personalization and accessibility. Existing high-quality platforms offer generic questions and feedback, while creating financial barriers for students and those from less privileged backgrounds. More fundamentally, they fail to simulate the real-world experience of an interview tailored to a specific candidate and job role.
We wanted to use AI technology to bridge this gap, building an all-in-one system that provides authentic mock interview experiences completely free of charge. We aimed to leverage artificial intelligence to offer insights and feedback tailored to specific candidates, companies, and job roles, moving beyond simple question banks and creating a dynamic, adaptive tool that helps job seekers practice for the exact interviews they will face. In the end, we hope that more people will have opportunities to pursue fulfilling careers, regardless of their background.
What it does
Prepr Interviewer is a comprehensive web application that simulates a full interview workflow. It takes a user's resume and a target job description (via URL or manual input) to generate a personalized interview session with both behavioral and technical questions.
The system guides the user through the following steps:
- User Input: The user provides their resume, job information, and any additional methods by either uploading a PDF, typing into a chatbox, or entering a valid URL. The system parses this data to understand their background and the specific requirements of the role.
- Question Generation: Using the gathered information, the system crafts custom behavioral questions tailored to the user's resume and the job. It then uses a graph-based web scraper to analyze the job description, identify key technical concepts, and select relevant technical questions from a robust database.
- Question Delivery: Behavioral questions are presented verbally using a Chirp3 TTS voice, and the user's verbal response is captured and transcribed live. Technical questions are delivered in text, with an option for verbal delivery, and the user responds via a text/code editor.
- AI Evaluation (Behavioral): The transcribed text is sent to the Gemini API for a comprehensive evaluation of communication, strengths, weaknesses, and an overall score.
- AI Evaluation (Technical): The user's answer is compared against ideal reference answers. This evaluation combines vector embeddings (using Cohere API) for semantic similarity (70% weight) and keyword matching (30% weight). Gemini AI then synthesizes this data into detailed, human-readable feedback.
- Summary Report: After the session, the user receives a comprehensive report with a breakdown of their performance, including feedback on both behavioral and technical responses and actionable suggestions for improvement. The system also tracks posture, eye contact, professionalism in attire, etc.
Note: Besides full mock interviews, Prepr also offers focused practice sessions where users can work on individual behavioral or technical questions with instantaneous feedback.
How we built it
Frontend: React for a responsive, intuitive UI handling
Backend: A Node.js + Express server to orchestrate API requests and data flow.
Core Services & APIs:
- Google Cloud TTS & STT: Used for the lifelike text-to-speech for behavioral questions and the live speech-to-text transcription of user responses.
- Tavily (Graph-based Web Scraper): Essential for intelligently scraping and analyzing job postings and company websites to gather technical context.
- Gemini API: Powers the core AI capabilities, including generating human-like feedback for both behavioral and technical responses.
- Cohere API: Used to create vector embeddings of user and reference answers, enabling semantic search and similarity scoring for the technical assessment.
- Supabase: user registration, login, basic auth.
Challenges
Building a system of this complexity in a short time presented several challenges:
API Integration: Coordinating and ensuring seamless communication between different APIs (Gemini, Cohere, Tavily, Google Cloud) presented architectural challenges. Each service used distinct authentication protocols, response schemas, and error handling mechanisms that required custom integration layers and robust fallback strategies.
Vector Embedding Model Optimization: Achieving accurate technical response evaluation required extensive experimentation with vector embedding models and similarity metrics. We systematically optimized interview response comparison by testing comparisons that used cosine similarity, Euclidean distance, and dot product. Additionally, we conducted tests on the optimal weights for vector similarity and semantic similarity, finally settling on a 70-30 split that balanced conceptual understanding with technical precision.
Real-time Transcription: Achieving low-latency speech-to-text transcription while maintaining accuracy across varying audio conditions required extensive optimization of our STT service configuration. We integrated adaptive noise reduction algorithms and dynamic quality adjustment to ensure consistent performance regardless of environmental factors.
AI Prompt Engineering and Response Quality: Developing effective prompts for the Gemini API to generate contextually relevant, non-generic responses through extensive testing across diverse interview scenarios, including edge cases like incomplete input. We implemented validation mechanisms to prevent contradictory feedback and ensure a consistent, constructive tone while avoiding generic commentary.
Scraping and Data Extraction: While Tavily is powerful, extracting the most relevant technical topics from unstructured websites required careful design. Job postings and company sites often contain a mix of mission statements, generic descriptions, and role-specific details. To ensure accuracy, we implemented custom parsing logic that directed Tavily to prioritize sections most likely to contain technical information. This included scanning for keywords related to skills, responsibilities, and requirements, weighting them more heavily, and filtering out unrelated content. By building this targeted extraction pipeline, we were able to consistently capture meaningful technical context that directly informed the generation of tailored interview questions.
Accomplishments that we're proud of
We are incredibly proud of several key accomplishments that make Prepr Interviewer stand out:
End-to-End System Integration: We built a comprehensive full-stack application that seamlessly handles user input processing, AI-driven question generation, real-time audio transcription, and multi-modal feedback delivery within a unified platform.
Personalization at its Core: We build an adaptive, highly personalizable system capable of generating contextually relevant questions by analyzing user resumes against specific job requirements represents a substantial advancement over static question banks, enabling truly tailored interview preparation experiences.
Hybrid Technical Assessment Model: Our evaluation approach combines vector-based semantic similarity analysis with keyword matching algorithms, providing more comprehensive and accurate technical response assessment than traditional binary scoring methods or keyword checks.
Actionable Intelligence Generation: The AI-powered feedback system delivers specific, implementable recommendations rather than generic scoring, enabling users to identify precise improvement areas and develop targeted skills.
Multi-Modal Behavioral Analysis Integration of webcam-based eye contact tracking with verbal response evaluation creates comprehensive behavioral assessment capabilities that address non-verbal communication components often overlooked in digital interview preparation tools.
What we learned
- Instead of relying on a single large language model for every task, we learned that combining specialized models (e.g., Gemini for natural language generation, Cohere for vector embeddings, and Google Cloud for speech processing) creates more robust and accurate results than any single model could achieve.
- Managing real-time data flows between multiple APIs, video processing, and user interactions requires sophisticated backend design. We learned the importance of asynchronous processing, error handling, and efficient resource management when coordinating complex AI pipelines.
- Implementing graph-based web scraping through Tavily eliminated significant manual data curation overhead. It helped us perform high-quality, structured information extraction and focus development efforts on core algorithmic improvements rather than content management. Git is actually not too complicated if there are no merge conflicts. If there are, well, just hope for the best.
What's next for Prepr
The current version of Prepr Interviewer is just the beginning. Our future plans include:
- Fully Implemented Video Analysis: Train and fine-tune models to achieve high-quality, sophisticated behavioral analysis using facial expression recognition, posture assessment, and gesture evaluation to provide comprehensive non-verbal communication feedback.
- Industry-Specialized Preparation Tracks: Develop domain-specific question databases and evaluation criteria for finance, healthcare, consulting, and other specialized sectors. Additionally, incorporate industry jargon, regulatory knowledge, and sector-specific case studies etc.
- Expanded Question Format Support: Integrate system design interviews, business case studies, product management scenarios, and coding challenges with real-time collaborative coding environments to simulate authentic technical interview experiences.
- Collaborative Learning Platform: Build peer-to-peer practice networks, mentor-mentee matching systems, and group interview simulations to create a comprehensive community-driven preparation environment.
- Performance Analytics and Learning Paths: Implement machine learning-driven progress tracking, personalized improvement recommendations, and adaptive difficulty scaling based on individual performance patterns and career goals.
Built With
- cohere
- express.js
- gemini
- google-cloud
- google-web-speech-api
- node.js
- react
- tailwind
- tavily
- typescript


Log in or sign up for Devpost to join the conversation.