## Inspiration
As software engineers, our GitHub profiles are living portfolios of our technical capabilities, filled with complex architectures, optimized code, and open-source contributions. Yet, whenever we apply for a new role, we are forced to undergo the tedious, repetitive chore of manually translating this rich evidence into a static, keyword-stuffed ATS resume. We realized that developers shouldn't be wasting hours cross-referencing job descriptions with their past projects. We wanted to build an intelligent agent that bridges the gap between what a developer has actually built and what recruiters are looking for.

## What it does
**Alldone** is a Developer Career AI Agent that fully automates resume tailoring. You simply provide your GitHub username and paste a target Job Description (JD). The agent gets to work:
1. **JD Parsing:** It extracts hard technical requirements and ATS keywords from the job posting.
2. **Deep GitHub Inspection:** It fetches your repositories, analyzing `README` files, abstract syntax trees (ASTs), package dependencies (`requirements.txt`, `package.json`), and merged OSS pull requests.
3. **Evidence-Based Matching:** It deterministically maps your real-world code evidence to the JD, highlighting your "Skill Gaps" and missing technologies.
4. **Instant ATS Resume:** It generates high-impact, XYZ-format (Action + Context + Impact) engineering bullet points and instantly compiles a beautifully formatted, download-ready LaTeX PDF.

## How we built it
We built Alldone using a decoupled, highly modular architecture inspired by the **Model Context Protocol (MCP)**. 
- **Frontend:** A sleek, responsive dashboard built in **Streamlit** using custom glassmorphic CSS.
- **Backend Orchestration:** A pure Python pipeline of independent micro-services (GitHub extraction, dependency parsing, candidate analysis).
- **AI Intelligence:** We integrated a multi-provider LLM abstraction layer supporting **Groq (LLaMA 3.3 70B)**, **Google Gemini 2.5 Flash**, and **Hugging Face**. 
- **Security:** To maintain privacy in a web environment, we utilized a "Bring Your Own Key" (BYOK) model, employing Python `contextvars` to ensure API keys are strictly session-scoped and never leak into global environment variables.

## Challenges we ran into
- **Preventing AI Hallucinations:** Early on, the LLMs would enthusiastically invent skills that candidates didn't actually possess just to match the JD. We solved this by implementing strict, deterministic "Evidence-Based Matching"—the LLM is now forced to point to the exact dependency file or code snippet to prove a skill exists before adding it to the resume.
- **API Rate Limiting:** Scanning an entire developer's portfolio requires massive token context, which frequently triggered 429 Too Many Requests errors. We overcame this by building an intelligent local caching system, implementing exponential backoff retries, and creating a targeted "Quick Analysis" mode.
- **LaTeX Layout Constraints:** Generating dynamic text for a rigid LaTeX template often resulted in broken formatting. We had to heavily refine our Prompt Engineering to force the LLM to adhere to a strict 12-16 word limit per bullet point, ensuring everything fit perfectly on a single line.

## Accomplishments that we're proud of
We are incredibly proud of successfully integrating a live LaTeX compilation engine directly into a cloud-native Python web app. Furthermore, we are proud of our resume generation logic; instead of outputting generic, fluffy descriptions (e.g., *"Developed app using Python"*), our AI acts like a senior engineering manager, writing punchy, context-rich bullets that highlight specific architectural patterns and measurable complexities.

## What we learned
Building Alldone taught us how to deeply orchestrate complex, multi-stage agentic workflows. We transitioned from a monolithic script to a highly modular, decoupled pipeline where data seamlessly flows through discrete extraction, matching, and generation phases. We also learned advanced techniques for JSON-enforced prompt engineering and secure thread-local state management in concurrent web applications.

## What's next for Alldone
We plan to integrate live ATS-scoring simulators to allow candidates to pre-test their generated resumes against popular Applicant Tracking Systems like Workday and Greenhouse. We also want to expand our GitHub extraction engine to analyze a developer's commit history and code review comments, allowing the AI to automatically generate bullet points about code optimization, technical leadership, and team collaboration!

Built With

Share this project:

Updates