A multi-agent AI system that helps users tailor their resumes and cover letters to specific job requirements.
Applying to jobs often means sending the same generic resume to dozens of listings. Kariomi-Mini solves that by analyzing both your profile and each job description, then automatically generating a tailored resume and cover letter that aligns with the role's requirements. It uses eight specialized AI agents working together — from parsing job postings to scoring fit, crafting content, and iterating until quality thresholds are met — so you can apply confidently without manual rewriting for every application.
- Multi-Agent Pipeline — Eight specialized agents collaborate (Profile Extractor, Job Analyzer, Fit Analyzer, Resume Tailor, Cover Letter Crafter, Reviewer, Refinement Loop, PDF Generator)
- Quality-Driven Refinement — Automatic iterations until 70% quality threshold is met
- Multi-Language Support — Matches job description language for generation
- Flexible Honesty System — 15% keyword weight, 30% narrative weight, allows "related to" phrasing
- Page Count Management — Optional constraints with intelligent condensation
- Manual Review Mode — Skip auto PDF generation for manual editing
- Multi-Modal Output — Generates both PDF and XML formats
- LangGraph Orchestration — State-managed workflows with Pydantic validation
# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows (PowerShell)
irm https://astral.sh/uv/install.ps1 | iex# Create virtual environment with Python 3.11
uv venv --python 3.11
# Activate (macOS/Linux)
source .venv/bin/activate
# Activate (Windows)
.venv\Scripts\activate
# Install dependencies
uv sync# Copy the environment template
cp .env.example .env
# Edit .env and add your SiliconFlow API key
# Get your API key from https://siliconflow.com/streamlit run src/ui/app.pyKariomi-Mini uses a multi-agent pipeline architecture where specialized agents collaborate:
- Profile Extractor — Extracts key information from user resumes
- Job Analyzer — Parses job descriptions and requirements
- Fit Analyzer — Scores resume-job fit (0.0-1.0)
- Resume Tailor — Optimizes resume content for the role
- Cover Letter Crafter — Generates personalized cover letters
- Reviewer — Validates quality with 4-factor scoring (ATS, keywords, narrative, honesty)
- Refinement Loop — Manages iterative improvement (max 3 iterations until 70% quality threshold)
- PDF Generator — Generates PDF and XML output files
The workflow is orchestrated using LangGraph with state management via Pydantic models. Profile and job analysis run in parallel, followed by sequential generation with conditional refinement.
| Layer | Technology |
|---|---|
| UI | Streamlit |
| Agent Orchestration | LangGraph |
| Data Validation | Pydantic |
| PDF Generation | WeasyPrint |
| Template Rendering | Jinja2 |
Copy .env.example to .env and edit the following variables:
| Variable | Description |
|---|---|
SILICONFLOW_API_KEY |
Your API key from SiliconFlow |
FLASH_MODEL |
Flash LLM model to use (default: deepseek-ai/DeepSeek-V4-Flash) |
PRO_THINKING_MODEL |
Pro/Thinking LLM model to use (default: deepseek-ai/DeepSeek-V4-Pro) |
Contributions are welcome! Please read our contributing guidelines.
MIT License — see LICENSE for details.


