AI-Powered Job Application Assistant - Built with CrewAI, LangChain & Groq
JobCrew is an intelligent, multi-agent AI system designed to streamline the federal job application process. By leveraging advanced large language models via Groq, it automates the tedious tasks of job analysis, resume tailoring, outreach drafting, interview preparation, and skills gap analysis. This tool is built for career-driven individuals targeting federal positions who need high-quality, ATS-optimized application materials, personalized interview guidance, and tailored learning roadmaps generated in seconds.
- live job fetching
- AI multi-agent pipeline
- resume upload auto-fill
- one-click material generation
- personalized interview prep generation
- skills gap analysis and learning roadmaps
- application tracker with status management
- persistent logging
The JobCrew pipeline uses a multi-agent system to handle the complex workflow of job application preparation. By delegating specific responsibilities to specialized agents, the system ensures that each phase of the process—from requirement extraction to document generation and gap analysis—is handled with high precision and contextual awareness.
USAJobs API → Job Listings → User Selection
↓
┌─────────────────────┐
│ CrewAI Pipeline │
│ │
│ Job Analyzer │
│ ↓ │
│ Resume Agent │
│ ↓ │
│ Messaging Agent │
│ ↓ │
│Interview Prep Coach │
│ ↓ │
│ Skills Gap Analyzer │
└─────────────────────┘
↓
Resume + Cover Letter + LinkedIn Message + Interview Prep + Skills Gap
| Category | Technology | Version | Purpose |
|---|---|---|---|
| Agent Framework | CrewAI | 1.14.2 | Multi-agent orchestration and coordination |
| LLM Provider | Groq | 0.37.1 | Fast, high-quality inference using Llama 3 models |
| Web Interface | Streamlit | 1.56.0 | Interactive dashboard and UI components |
| Data Validation | Pydantic | 2.11.10 | Strong typing and schema enforcement |
- Python 3.11+
- Gemini API Key (Note: Groq is used as the primary LLM provider, but the system supports Gemini fallback)
- USAJobs API Key
- Clone the repository
- Create and activate a virtual environment
- Install dependencies with
pip install -r requirements.txt - Copy
.env.exampleto.envand fill in API keys - Run with
streamlit run app.py
| Variable | Required | Source |
|---|---|---|
| GROQ_API_KEY | Yes | Groq Console |
| USAJOBS_API_KEY | Yes | USAJobs Developer Portal |
| USAJOBS_USER_AGENT | Yes | Your registered email address |
- Step 1 — Set up your candidate profile (manually or via resume upload)
- Step 2 — Search for government jobs using keywords
- Step 3 — Select target positions and run the pipeline
- Step 4 — Review, download, and track your applications
The Fast Mode toggle reduces the number of agent iterations and optimizes prompts for speed. This is ideal for quickly generating initial drafts or processing multiple job listings in a single session.
JobCrew/
├── agents/ # AI agent definitions (Role, Goal, Backstory)
├── config/ # LLM configurations and application settings
├── tasks/ # Individual task definitions for the agents
├── tools/ # Custom tools for job fetching and data processing
├── tracker/ # Persistence logic for job application tracking
├── ui/ # Streamlit UI components and layout helpers
├── app.py # Main application entry point
├── crew.py # Pipeline orchestration and execution logic # Main workflow
├── requirements.txt # Production Python dependencies
└── requirements-dev.txt # Local development and testing tools
| Agent | Role | Specialization | Output |
|---|---|---|---|
| Job Analyzer | Senior Federal Job Analyst | Requirements extraction | Structured Job Analysis |
| Resume Agent | Executive Resume Tailor | Content tailoring | Tailored Resume & Cover Letter |
| Messaging Agent | Networking Specialist | Outreach personalization | LinkedIn Message |
| Interview Prep Coach | Senior Technical Interview Coach | Interview preparation | Interview Prep Report |
| Skills Gap Analyzer | Senior Career Development Advisor | Skills gap analysis | Skills Gap Report |
- Push your repository to GitHub.
- Log in to Streamlit Cloud and click "New app".
- Select this repository and the
app.pyfile. - Go to App Settings > Secrets to add your environment variables.
Add your secrets in the Streamlit secrets management using this TOML format:
[secrets]
GROQ_API_KEY = "your-key-here"
USAJOBS_API_KEY = "your-key-here"
USAJOBS_USER_AGENT = "your-email@example.com"Please note that the Streamlit Cloud filesystem is ephemeral; any data not saved to a persistent database or external storage will be lost when the application restarts.
- Run the full test suite:
python tests/run_tests.py - Generate coverage report:
python tests/generate_coverage_report.py
The testing strategy utilizes mocking for all external API calls (Groq and USAJobs) to ensure tests are fast, reliable, and do not incur API costs.
- Pipeline execution time can take 1-3 minutes due to agent reasoning.
- Streamlit Cloud uses an ephemeral filesystem, meaning local logs are lost on restart.
- The application currently supports single-user sessions without authentication.
- USAJobs is currently the only integrated job source.
MIT License - feel free to use this project as a reference or starting point
⭐ If you found this project useful, please consider starring the repository