Inspiration
The project, Interview Unlocked, was inspired by the need to create a sophisticated, automated system to help job candidates prepare for technical interviews, and consolidate information found across web forums into one place. The core idea was to move beyond generic practice and provide personalized preparation tailored to a specific user, job role, and company culture, leveraging AI agents to simulate various aspects of the interview process.
What it does
Interview Unlocked functions as a multi-agent system designed to personalize technical interview preparation. It takes a user's resume and a target job description, processes them, and enriches them with company-specific interview expectations (like evaluation rubrics and communication styles) gathered from public web sources. Based on this combined context and the user's preference for question types (e.g., technical, behavioral, system design, debugging), it generates tailored interview questions. The system can record the user's spoken answer, transcribe it using cloud services, and then provide detailed feedback. This feedback includes comparing the user's response to an ideal answer, suggesting improvements, and referencing the inferred company rubric.
How we built it
The system was constructed using a pipeline of specialized AI agents, each handling a distinct part of the process:
- Preprocessing Agent: Cleans and structures the input resume and job description. It extracts key sections, generates text embeddings, and stores them in a FAISS vector database for later retrieval.
- Knowledge Agent: Searches public web sources (like Reddit, Glassdoor, Blind, Medium via the Tavily Search API) using the company name to find insights into the company's interview process, inferring evaluation rubrics and communication tips.
- Planner Agent: Acts as the central coordinator. It synthesizes information from the vector database (resume, JD, company insights) and user preferences. It generates a study plan, suggests relevant LeetCode questions (using a dedicated tool), presents the inferred rubric/tips, embeds these insights into the vector database, and instructs the Question Agent.
- Question Agent: Receives the question type instruction from the Planner Agent. It queries the vector database for relevant context (JD, resume, company patterns) and generates a single, tailored interview question matching the specified type.
- Recording/Transcribing: Uses
sounddeviceto capture the user's audio response, saves it, and transcribes it using the Google Cloud Speech-to-Text API. - Evaluation_Feedback Agent: Takes the generated question, the transcribed answer, and optionally a company tag. It retrieves relevant rubric information from the FAISS index, generates an ideal answer, rewrites the candidate's answer for improvement, and provides detailed critique based on the comparison and rubric.
Key technologies include Python, FAISS for vector storage, Tavily Search API for web research, Google Cloud Speech-to-Text, sounddevice for audio, and libraries like numpy.
Challenges we ran into
- LLMs with free API keys (Gemini 2.0) proved to be rather unpredictable for functions such as tool calling and context storage
- The majority of our time was spent tackling hallucinations due to the coordination of multi agentic systems
- Generating high-quality, relevant, and contextually appropriate interview questions across different types (technical, behavioral, etc.).
- Managing the complexity and dependencies within the multi-agent workflow.
- Time constraints in building a functional UI
Accomplishments that we're proud of
The project demonstrates several accomplishments based on its described capabilities:
- Successful implementation of a multi-agent architecture for a complex task.
- Integration of resume/JD analysis with external knowledge gathering (web search for company insights).
- Effective use of vector databases (FAISS) for semantic information storage and retrieval.
- Capability to generate personalized interview questions based on multiple factors (user, role, company).
- End-to-end workflow including audio capture, transcription, and automated evaluation/feedback.
- Creation of a system that provides actionable feedback, including ideal answers and critiques based on inferred rubrics.
What we learned
Developing this project likely provided learning opportunities in:
- Designing and orchestrating multi agent AI systems and frameworks.
- Natural Language Processing (NLP) techniques for information extraction, text structuring, and embedding generation.
- Practical application of vector databases (like FAISS) for semantic search and context management.
- API integration for leveraging external services (search, speech recognition).
- Prompt engineering for guiding Large Language Models (LLMs) within each agent's specific role.
- The complexities of simulating human judgment tasks like interview evaluation.
- Audio processing and integration with cloud-based transcription services.
What's next for Interview Unlocked
Based on the system's components, future enhancements could include:
- Expanding the range and complexity of supported interview question types.
- Improving the accuracy and nuance of the inferred company rubrics and the generated feedback.
- Integrating additional data sources for company and role insights.
- Adding support for different industries, roles, or languages.
- Developing a more interactive user interface, perhaps simulating a live mock interview flow.
- Enhancing the robustness of the audio recording and transcription process.
- Implementing features for tracking user progress and performance over time.
- Refining the LeetCode suggestion mechanism for better relevance.
Built With
- langchain
- langgraph
- python
Log in or sign up for Devpost to join the conversation.