Inspiration
To help non-English speaking individuals in their job search who have a difficult time creating resumes.
What it does
Creates a connection to a Spanish speaking AI agent that prompts the user for information and live updates their resume for them to view and then download as they speak about their experiences.
How we built it
Front End: React, HTML, CSS
How it Works: We created modular React components for the resume preview, about section, job applications, and more. The front end polls the back end every few seconds with GET requests to provide live resume updates. It also supports reset and download functionality, with HTML/CSS styling to make the preview look professional.
Why We Used It:
- React’s component-based structure allowed fast iteration.
- State management made live updates simple and efficient.
- Clean separation: the front end only handled display, not data logic.
Vapi Agent:
How it Works: The Vapi agent captures user input and sends structured data to our back end via POST requests. Each update to the user’s information is transformed into JSON and forwarded to the back end API for processing.
Why We Used It:
- Gave us the chance to integrate an AI agent into a real project.
- Provided dynamic, human-like data input instead of static forms.
- Let us explore prompt engineering for consistent outputs.
Back End: Flask, Python, Postman, nGrok, REST API format
How it Works: We designed a Resume class using object-oriented composition, built from helper classes like PersonalInfo, WorkExperience, and Education. When the Vapi agent sends data through POST, the back end maps it into the Resume object. We then expose this structured data through GET endpoints, returning formatted JSON for the front end.
Why We Used It:
- Structured Data with OOP: Created a clean, consistent model for resumes.
- Decoupling: Allowed the front end to focus on design while the back end handled data.
- Scalability: New features (editing, validation, exporting) could be added without rewriting the front end.
- Reliability: Normalized AI data before sending it downstream.
Challenges we ran into
Front End:
- Git branch conflicts from multiple teammates working on different parts simultaneously.
- UI design required multiple iterations before it looked professional and consistent.
Vapi Agent:
- Handling incomplete information while still maintaining consistency in the back end.
- The Vapi agent initially returned repetitive or inconsistent data, so we had to refine the system prompt extensively.
- Designing logic for partial updates so that new data merged cleanly with what we already had stored.
Back End:
- Back end functionality was tightly linked to the Vapi agent’s output, so we had to coordinate closely to understand the exact POSTed data format.
- Some data handling had to be hard coded for the demo, which we’d refactor in the future for better scalability.
Accomplishments that we're proud of
Seamlessly integrated an AI agent into a custom back end by refining system prompts and building logic to handle incomplete or inconsistent data, resulting in a structured and reliable flow of resume information.
Engineered a scalable back end with Flask and object-oriented design, using composition to model resumes from helper classes (e.g., personal info, work experiences, education), and exposed this data through RESTful APIs consumed by the front end.
Delivered a polished, live-updating React front end, featuring modular components for resume preview, reset/download functionality, and real-time polling of back end endpoints, styled to resemble a professional job-ready resume.
Overcame key development challenges such as Vapi’s repetitive outputs, Git merge conflicts, and tight front end/back end coupling by using tools like Postman and nGrok for testing, refining workflows, and iterating quickly as a team.
What we learned
Front End:
- How to connect a Flask back end API to a React front end.
- How to use API keys securely for recording functionality with Vapi.
- Practical skills in debugging Git merge issues under time pressure.
Vapi Agent:
- How to integrate an AI-driven agent with a custom back end.
- The importance of detailed system prompts in achieving structured, repeatable outputs.
Back End:
- nGrok gave us a simple way to expose a local server to Vapi for testing.
- How valuable decoupling is for parallel frontend/backend development.
- Using Postman to test REST API endpoints effectively.
- How to handle and validate external POST requests reliably.
What's next for LinguaCV
Expand language support through the Vapi agent, enabling resumes to be created and formatted in multiple languages while still flowing cleanly through our backend API.
Introduce customizable templates and layouts, so users can select different designs while keeping the backend data structure unchanged.
Implement user authentication and account systems, allowing users to securely log in and manage their own resume data.
Store resumes in a database, enabling persistence, retrieval of saved resumes, and scalability for future multi-user support.


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