Agentic AI Systems · HR Tech & Recruitment

Resume & Cover Letter Tailor

A six-agent sequential pipeline that treats job applications as an intelligence problem — researching the company, dissecting the JD, rewriting the resume, writing the cover letter, and running a full QA review before delivering the output.

Architecture CrewAI · Sequential
Tech Stack
CrewAI Multi-Agent Gradio Hugging Face Spaces pdfplumber python-docx Python

6

Specialized Agents

3

Deliverables Per Run

400

Word Cover Letter Max

The Problem

Tailoring a resume for every application is skilled, time-consuming work

A well-tailored job application requires several distinct skills: understanding what the company values, dissecting the job description for ATS keywords and must-have requirements, strategically reframing existing experience without fabricating, writing in active voice with strong action verbs, and producing a cover letter that adds narrative context the resume can't. Most candidates either skip this work entirely — submitting the same generic resume everywhere — or spend hours on each application with inconsistent results. Neither approach is competitive.

The Solution

Six specialized agents — each owning one stage of the application process

Resume & Cover Letter Tailor is a six-agent sequential CrewAI pipeline where each agent owns exactly one stage of the tailoring process. The Company Researcher profiles the target employer. The JD Analyst extracts must-haves, nice-to-haves, and ATS keywords in exact JD phrasing. The Resume Strategist performs gap analysis and produces an instructional brief — never rewriting a single bullet itself. The Resume Writer executes that strategy into a fully tailored, ATS-optimised resume. The Cover Letter Writer produces a personalised 3–4 paragraph letter matched to the company's culture tone. Finally, the QA Reviewer checks the full application package for cross-document consistency, factual alignment, ATS coverage, and formatting safety — and delivers a numbered issue list with verdict.

Key Outcome

From a single resume upload and job description paste, the pipeline delivers a tailored resume, a personalised cover letter, and a QA report — all as downloadable .docx files — without fabricating a single credential or inventing a single metric.

Technical Deep Dive

Architecture & Design

Pipeline Flow

Agent 1

Company Researcher

No prior context

Agent 2

JD Analyst

No prior context

Agent 3

Resume Strategist

Receives analyse_jd

Agent 4

Resume Writer

Receives analyse_jd build_strategy

Agent 5

Cover Letter Writer

Receives analyse_jd build_strategy write_resume

Agent 6

QA Reviewer

Receives analyse_jd write_resume write_cover_letter

Agent 1

Company Researcher

Receives scraped and sanitised company page text via CompanyResearchTool. Produces a structured profile capturing mission and values, culture signals, technology stack, and tone cues — all used downstream to personalise both the resume framing and cover letter voice.

Agent 2

JD Analyst

Analyses the raw job description and returns a structured role profile. All output uses exact JD phrasing — paraphrasing would reduce ATS matching value. Extracts top 5 must-have technical skills, top 5 soft skills, up to 6 key responsibilities, ATS keywords, culture signals, and any red flags.

Agent 3

Resume Strategist

Uses ResumeParserTool to get a section-structured view of the candidate's resume, then performs gap analysis against the JD role profile. Produces a strategy brief — never rewriting bullets itself — instructing the writer exactly what to amplify, remove, reframe, and which ATS keywords to integrate.

Agent 4

Resume Writer

Executes the strategy brief into a fully rewritten resume in clean markdown. Enforces active voice, strong action verbs, and natural ATS keyword integration. Quantifies achievements where source data permits — never fabricates numbers. Outputs sections: Contact, Summary, Experience, Skills, Education.

Agent 5

Cover Letter Writer

Writes a personalised 3–4 paragraph cover letter under 400 words using all upstream context — role profile, strategy brief, completed resume, and company research. Tone is matched to culture signals from the JD analysis. The letter adds narrative the resume cannot; it does not summarise the resume.

Agent 6

QA Reviewer

Performs a structured quality review of the full application package. Checks cross-document consistency, factual alignment, tone coherence, ATS keyword coverage, formatting safety, and recruiter-visible red flags. Delivers a numbered issue list with location, problem, and suggested fix — plus an overall verdict: Ready to Submit, Minor Revisions Needed, or Major Revisions Needed.

Key Design Decisions

Strategy and writing are separated by design

The Resume Strategist never rewrites a single bullet — its role is diagnostic and instructional only. This division keeps the Resume Writer's output grounded in a coherent, deliberate strategy rather than ad hoc rewriting. The strategist tells the writer what to do; the writer executes it.

ATS keywords preserved in exact JD phrasing

The JD Analyst is explicitly instructed to extract keywords verbatim from the job description — not to paraphrase. Paraphrasing reduces ATS matching value because automated screening systems compare exact strings. The Resume Writer then integrates these terms naturally rather than keyword-stuffing.

Company URL scraping requires aggressive sanitisation

Raw scraped HTML injected into a CrewAI task description causes crashes due to template interpolation of curly braces and square brackets. The scraper strips all HTML tags, replaces { } [ ] with ( ), removes @ symbols, strips URLs, and truncates to 1,500 characters before passing content to the crew. This sanitisation step is non-negotiable.

DOCX parsing must traverse both paragraphs and tables

Most professionally designed resume templates use table-based layouts in DOCX. python-docx's paragraph traversal returns nothing for these files. The parser always traverses doc.tables as well — skipping this step is the most common cause of empty resume extraction and the single most impactful parsing lesson from building this system.

Tech Stack

Technology Purpose
CrewAI Multi-agent orchestration and YAML-driven agent configuration
GPT-4o-mini LLM backbone for all 6 agents — temperature fixed at 0.2
Gradio Web UI with file upload, streaming agent progress, and output tabs
Hugging Face Spaces Zero-config cloud deployment; also runs locally via uv
pdfplumber / pypdf PDF resume text extraction with fallback support
python-docx DOCX resume parsing and markdown-to-DOCX export
queue.Queue Bridges crew background thread and Gradio generator for streaming
Python Core language and pipeline orchestration

Results & Metrics

What the system delivers

6

Specialized Agents

Each owning one stage — from company research to QA review — with no delegation between agents

3

Deliverables Per Run

Tailored resume, personalised cover letter, and QA report — all downloadable as .docx files

0

Fabricated Credentials

The pipeline reframes existing experience — it never invents metrics, skills, or roles not in the source resume

🎯

ATS-optimised output

Keywords are extracted in exact JD phrasing and integrated naturally into the resume — not keyword-stuffed. The QA Reviewer explicitly checks ATS keyword coverage as part of its structured review checklist.

📋

Structured QA with verdicts

The QA Reviewer checks 7 dimensions — cross-document consistency, factual alignment, tone coherence, ATS coverage, formatting safety, cover letter quality, and red flags — and delivers a numbered issue list with a final verdict of Ready to Submit, Minor Revisions Needed, or Major Revisions Needed.

Live streaming progress

A queue.Queue bridges the crew background thread and Gradio's generator — streaming each agent's output to the browser incrementally as it completes rather than waiting for the full pipeline to finish.

📄

PDF and DOCX input support

The parser handles both PDF and DOCX resume formats. DOCX parsing traverses both paragraphs and tables — critical for professionally designed resume templates that use table-based layouts and return nothing from paragraph traversal alone.

Agent Roster

Agent Responsibility
Company Researcher Produces structured company profile from scraped page text
JD Analyst Extracts must-haves, ATS keywords, and role profile in exact JD phrasing
Resume Strategist Gap analysis and instructional strategy brief — no rewriting
Resume Writer Fully rewritten ATS-optimised resume in markdown
Cover Letter Writer Personalised cover letter matched to company culture tone
QA Reviewer Full application package review with numbered issues and verdict