New Course:Designing Production-Grade Deep Learning Pipelines, now on Udemy.Enroll
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.

Specialized Agents
Deliverables Per Run
Word Cover Letter Max
View Code on GitHub

ArchitectureCrewAI · SequentialBuilt WithCrewAI · Multi-Agent · Gradio · Hugging Face Spaces · pdfplumber · python-docx · Python

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 4–6 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 and a personalised cover letter as downloadable .docx files, plus a QA report rendered in-browser — without fabricating a single credential or inventing a single metric.

Technical Deep Dive

Architecture & Design

Pipeline Flow
Agent 1Company Researcher
Agent 2JD Analyst
Agent 3Resume Strategist
Agent 4Resume Writer
Agent 5Cover Letter Writer
Agent 6QA Reviewer

Stage by Stage

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

Why It Works

Key Design Decisions

Decision 01

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.

Decision 02

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.

Decision 03

Company URL scraping requires aggressive sanitisation

Raw scraped HTML injected into a CrewAI task description causes crashes due to template interpolation of curly braces in Jinja-style prompts. The scraper strips all script, style, noscript, and SVG tags via BeautifulSoup, extracts clean text from the main or article element (falling back to body), collapses consecutive newlines, and hard-truncates to 3,500 characters before passing content to the crew. Without this step, malformed or JavaScript-heavy company pages reliably break the pipeline.

Decision 04

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.

Results & Metrics

What the system delivers

Specialized Agents
Each owning one stage — from company research to QA review — with no delegation between agents
Deliverables Per Run
Tailored resume and cover letter downloadable as .docx files; QA report rendered as markdown in-browser
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

AgentResponsibility
Company ResearcherProduces structured company profile from scraped page text
JD AnalystExtracts must-haves, ATS keywords, and role profile in exact JD phrasing
Resume StrategistGap analysis and instructional strategy brief — no rewriting
Resume WriterFully rewritten ATS-optimised resume in markdown
Cover Letter WriterPersonalised cover letter matched to company culture tone
QA ReviewerFull application package review with numbered issues and verdict

Tools

Tech Stack

TechnologyPurpose
CrewAIMulti-agent orchestration and YAML-driven agent configuration
GPT-4o-miniLLM backbone for all 6 agents — temperature fixed at 0.2
GradioWeb UI with file upload, streaming agent progress, and output tabs
Hugging Face SpacesZero-config cloud deployment; also runs locally via uv
pdfplumber / pypdfPDF resume text extraction with fallback support
python-docxDOCX resume parsing and markdown-to-DOCX export
queue.QueueBridges crew background thread and Gradio generator for streaming
PythonCore language and pipeline orchestration

Let's Build Something That Matters

If you have a decision that depends on predicting risk in a complex system, I'd like to hear about it.