Inspiration

I built this project because I often felt overwhelmed during the job application process. One of the hardest parts for me was understanding the gap between my resume and my dream internships or jobs. I did not always know what recruiters were really looking for, what skills or experiences were missing, or how to tailor my resume efficiently for each role. Updating application materials for different opportunities took a lot of time, and much of that work felt repetitive. I wanted to build a tool that could make this process faster, clearer, and more personalized.

What the project does

This project is a multi-agent career assistant designed to help users move from confusion to action in one workspace. It supports several key steps in the application process:

  • parsing resumes and job descriptions
  • storing useful information for retrieval and reuse
  • analyzing how well a resume matches a target role
  • optimizing the resume toward a specific job description
  • drafting outreach materials such as emails, connection messages, and cover letters
  • searching for new job opportunities

The goal is not just to generate text, but to help users understand why they are a strong or weak fit for a role and what they should improve next.

How I built it

I designed the system around multiple specialized agents that collaborate with each other.

At a high level, I included:

  • an orchestration agent to receive the user request and coordinate the workflow
  • a parse agent to extract information from resumes and job opportunities and store them for future use in a retrieval system
  • a match agent to compare a user's resume against a job description and estimate alignment
  • an optimization agent to improve the resume based on the selected opportunity
  • a writing agent to generate emails, networking messages, and cover letters
  • a job search agent to help users discover opportunities

Initially, I routed tasks using keyword-based logic. For example, certain keywords would trigger the matching flow, while others would trigger writing or resume optimization. Although this worked for simple cases, it quickly became too rigid as the number of agents grew. User requests are often ambiguous or involve multiple tasks at once, so a keyword-based router became difficult to scale and maintain.

To solve this, I switched to a more autonomous multi-agent design using CrewAI. This allowed the system to move from manual, rule-based routing to more flexible agent collaboration. Instead of depending heavily on fixed keywords, the agents can now coordinate more naturally based on the user's intent and the available context.

Challenges

One of the biggest challenges was designing the interaction between agents. At first, breaking the problem into many specialized agents seemed like the right idea, but it also introduced complexity. The more agents I added, the harder it became to decide when each one should be used and how information should flow between them.

Another challenge was balancing structure and flexibility. I wanted the system to be modular, but I also wanted it to handle natural, messy user requests. The transition from keyword routing to autonomous agent collaboration was an important turning point because it made the system more adaptable, but it also required me to rethink how agents share responsibility and context.

I also had to think carefully about grounding the outputs. Since the system works with resumes and job descriptions, it is important that the recommendations, match analysis, and generated writing stay tied to real user documents rather than producing generic advice.

What I learned

This project taught me that building agent systems is not just about adding more agents. It is about defining clear responsibilities, designing useful information flow, and making the system flexible enough to handle real user behavior. I also learned that many career tools focus only on generation, while users often need something deeper: an explanation of the gap between where they are now and where they want to be.

Overall, this project helped me explore multi-agent collaboration, retrieval-augmented workflows, and practical AI product design, while solving a problem that I personally faced during the internship application process.

Future

In the future, I want to make the workflow more autonomous and seamless. My goal is to reduce the amount of manual effort required from the user by allowing the agents to collaborate more intelligently and complete more steps of the job application process automatically. This includes improving how the system selects tools, shares context across agents, and executes multi-step tasks more efficiently.

I also want to expand the platform beyond document analysis and writing support. One major direction is to add speech-based features, such as text-to-speech (TTS) and speech-to-text (STT), to support mock interviews. This would allow users to practice interview questions in a more realistic, interactive setting, receive feedback on their responses, and better prepare for real conversations with recruiters and hiring managers.

Ultimately, I want to turn this project into a more complete career copilot that not only helps users optimize resumes and applications but also supports them throughout the full recruiting journey.

Built With

Share this project:

Updates