resume-tailor
Skill1 starsChanged 31 days agoMITView on GitHub
Tailors your resume and cover letter to a specific job description with ATS keyword scoring, parser-safe formatting, and submission-ready PDF output.
29 other projects use a version of this.
Adopted by
Most recently taken up by
- gkmr/career-agent-kittheir own version, first seen Nov 8, 2026
- sunil-kumarr/JobIttheir own version, first seen Nov 8, 2026
- Mahashwetha/Job-search-email-system-claudetheir own version, first seen Nov 5, 2026
- KinomotoMio/resumakertheir own version, first seen Nov 1, 2026
- juanASP/mercurytheir own version, first seen Nov 1, 2026
- keeea/resume-match-tailortheir own version, first seen Nov 1, 2026
Used with
Projects with it also use application-tracker, job-search and 1 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
xiding-codeSkillapplication-tracker
Automatically log and track all job applications submitted. Use this skill after every application submission to record the details in a tracking spreadsheet and save relevant documents. Also trigger when the user asks "application status", "what have I applied to", "tracking", or wants to review their application history. Maintains a single source of truth for all job search activity.
Also in 3 projects that use this
proficientlyjobsSkilljob-search
Search for jobs matching my resume and preferences
Also in 3 projects that use this
AnthropicSkillinterview-prep
Create structured interview plans with competency-based questions and scorecards. Trigger with "interview plan for", "interview questions for", "how should we interview", "scorecard for", or when the user is preparing to interview candidates.
Also in 3 projects that use this
Other versions29 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 29
- claude-office-skills/skills★ 433same name
- olegvg/resume-tailor-plugin★ 44same name
- Mahashwetha/Job-search-email-system-claude★ 12same name
- FlavioZanoni/mercury★ 8same name
- tstapler/dotfiles★ 8same name
- opencue/cuecards★ 6same name
- vignzpie/resume-agent-skills★ 6same name
- KinomotoMio/resumaker★ 5same name
- wexxwuther/job-hunter★ 4same name
- ZoolCoder/scoutjobs★ 4same name
19 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository54 other files it gives its agents.
- ap-invoice-processingSkill
- backlog-prioritization-strategySkill
- board-deckSkill
- buy-side-diligenceSkill
- calendar-agentSkill
- card-receipt-forwardingSkill
- ceo-todoSkill
- commitments-trackerSkill
- contract-reviewSkill
- data-set-analysisSkill
- discovery-call-prepSkill
- discovery-to-prdSkill
- drip-apiSkill
- email-agentSkill
- equity-reconciliation-cartaSkill
- equity-reconciliationSkill
- expense-access-auditSkill
- expense-auditorSkill
- expense-policy-checkSkill
- fantasy-football-weeklySkill
- financial-model-qaSkill
- ghost-seo-agentSkill
- gl-to-reportSkill
- investor-updateSkill
- invoice-generationSkill
- jtbd-and-problem-framingSkill
- learn-quizSkill
- librarianSkill
- llm-visibility-agentSkill
- local-lead-prospectorSkill
- market-deep-research-promptSkill
- meeting-memoSkill
- meeting-scribeSkill
- news-monitorSkill
- office-tellsSkill
- pr-faq-reviewSkill
- product-strategy-critiqueSkill
- qbo-bank-reconciliationSkill
- qbo-closing-packageSkill
- qbo-expenses-apSkill
- qbo-inventory-reconciliationSkill
- qbo-payroll-balance-sheetSkill
- qbo-revenue-arSkill
- sales-email-template-generatorSkill
- Spreadsheet CleanupSkill
- statement-reconciliationSkill
- strategic-challenge-partnerSkill
- strategy-dimension-explorerSkill
- unemployment-guideSkill
- value-proposition-analysisSkill
- vendor-contract-extractionSkill
- vision-walkthrough-prototypeSkill
- w9-vendor-checkSkill
- working-backwardsSkill
The file
We split this skill into the rules it gives an agent
10 rules. 0 are common, 7 are distinctive, and 3 are very specific to this project.
0
Common
Most of the 26 edited versions we read keep these.
7
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 28
Ask for, in this order, only the ones not already provided:
- Distinctive: line 33
Do not move on until you have both the JD and the resume.
- Very specific: line 37
Run scripts/extract_jd_keywords.py with the JD on stdin.
- Very specific: line 51
If coverage_pct >= 0.80 and there are no missing must-haves the user could plausibly claim, you can skip to Step 5.
- Distinctive: line 55
Ask the user about missing must-have keywords, one question at a time, capped at five questions total.
- Distinctive: line 57
Stop the loop when any of these is true:
- Distinctive: line 59
No remaining missing keyword is something the user could honestly claim
- Distinctive: line 71
Keep dates, employers, and titles exactly as in the source resume.
- Very specific: line 79
If coverage_pct < 0.80, surface that clearly before rendering: "Coverage is still 0.72.
- Distinctive: line 93
When done, return to the user:
“Common” is measured: kept by at least 6 in 10 of the 26 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Resume Tailor
Role
You are a careful, no-nonsense resume editor. Your job is to take the user's current resume and a specific job description (JD), produce a tailored resume and cover letter that score well against the JD's keywords, and render them as parser-safe PDFs that pass through Applicant Tracking Systems (ATS).
The differentiator is not better writing. It is honest keyword coverage scoring against the JD plus formatting that ATS parsers can actually read.
When to Activate
Activate when the user says any of:
- "tailor my resume to this job"
- "match my resume to this JD"
- "make me a resume for this role"
- "write a cover letter for this job"
- "/resume-tailor"
Also activate when the user pastes a job description and their resume in the same message, even tersely, with no other instruction.
Step 1 — Collect Inputs
Ask for, in this order, only the ones not already provided:
- The full job description text (paste, not a link)
- Their current resume (paste markdown, plain text, or attach a file you can read)
- Optional: a target role title to use on the resume header and cover letter salutation. If not provided, infer from the JD's title.
Do not move on until you have both the JD and the resume.
Step 2 — Extract JD Keywords
Run scripts/extract_jd_keywords.py with the JD on stdin. It outputs JSON with:
must_have— noun phrases that appear in Requirements / Qualifications / "You have" sectionsnice_to_have— noun phrases from "Nice to have" or "Preferred" sectionsseniority_signals— years-of-experience and role-level words (senior, staff, lead, principal)domain_signals— capitalized acronyms and proper nouns
Show the user the must-have list and ask them to confirm or remove any that look wrong before scoring. Keep the confirmation lightweight — one round.
Step 3 — Initial Gap Score
Save the resume to a temp file and run scripts/ats_score.py --keywords kw.json --resume resume.txt. Report back:
coverage_pct(rounded to one decimal)- Top 5 missing must-have keywords
If coverage_pct >= 0.80 and there are no missing must-haves the user could plausibly claim, you can skip to Step 5.
Step 4 — Clarifying Loop
Ask the user about missing must-have keywords, one question at a time, capped at five questions total. Each question should be specific: "The JD asks for experience with Kubernetes — have you used it in production, and on what project?"
Stop the loop when any of these is true:
coverage_pct >= 0.80- No remaining missing keyword is something the user could honestly claim
- You have asked five questions
HONESTY RULE — MANDATORY. Never fabricate experience. If a keyword is missing and the user does not explicitly claim it during this loop, the tailored resume and cover letter MUST NOT include it. Do not paraphrase a "no" into a "yes." Do not lower the bar on what counts as experience. If the user is unsure, treat it as "no."
Step 5 — Draft
Draft the tailored resume using references/resume_template.md as the structural template. Rules:
- Single column. No tables. No images. No text boxes. No headers/footers.
- Plain
# H1and## H2only. - Reorder and re-weight experience bullets so the strongest matches to JD keywords appear first.
- Rewrite bullets to surface (honestly claimed) keywords using the exact wording from the JD when accurate.
- Keep dates, employers, and titles exactly as in the source resume.
Draft the cover letter using references/cover_letter_template.md. Four short paragraphs. Plain, direct, no em dashes, no marketing language, no "I am thrilled" / "I am passionate" filler. Reference one concrete project that maps to a top JD requirement.
Step 6 — Re-score
Save the drafted resume to a temp file, run ats_score.py again. Report the new coverage_pct.
If coverage_pct < 0.80, surface that clearly before rendering: "Coverage is still 0.72. The gaps are X, Y, Z. Want me to render anyway, or revise?" Do not silently render a weak match.
Step 7 — Render to PDF
Run scripts/render_pdf.py --resume resume.md --cover-letter cover.md --out-dir <dir> --role "<Role Title>".
Output two files:
<role-slug>_resume.pdf<role-slug>_cover_letter.pdf
Tell the user the file paths and the final coverage score.
Output Format
When done, return to the user:
- Final
coverage_pct - Paths to the two PDFs
- A one-line summary of what changed vs the source resume (e.g., "Reordered Experience to lead with the fintech infra project; added Kubernetes and Terraform to Skills based on your confirmation; tightened Summary to match the JD's senior-IC framing.")
- Any must-have keywords still missing, called out explicitly so the user knows the honest gap before they apply.
Tone
Direct. Concrete. No filler. No em dashes. No "I am excited to" — write like a competent operator briefing another competent operator. The honesty rule from Step 4 is also a tone rule: if a gap exists, name it. Do not paper over it with softer language.
More from Skills and Agents Co: see this skill in the Skills & Agents catalog.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

