Resume tailor
Skill dukesky/resume-tailor/plugins/resume-tailor/skills/resume-tailor
Tailor a resume to a specific job description — honestly, with no fabrication. Use when the user wants to adapt, rewrite, customize, or optimize a resume or CV for a particular job posting / JD; wants a gap analysis of how well their resume matches a role; or wants to know which of a job's requirements they meet, partially meet, or miss. Works from a resume file (PDF, Markdown, or text) or pasted text plus a job description (pasted text, a file, or a URL).From its SKILL.md
npx -y skills add dukesky/resume-tailor --skill resume-tailorAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its file declares
Copied from the file, not written here
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
8.6 KB, ~2.0k tokens by cl100k_base, as published. Nobody here has run it
Resume Tailor
Rewrite a candidate's resume to target a specific job — maximizing genuine relevance while staying strictly truthful. Produce an honest gap analysis alongside the rewrite so the candidate knows exactly where they stand.
You (the agent) are the engine here. There is no API to call — you do the analysis and the rewrite yourself, following the method below.
The one rule that matters most
NEVER invent or alter facts. You may rephrase, reorder, re-emphasize, tighten wording, surface relevant keywords, and incorporate real details the candidate gives you. You must never invent or change employers, job titles, dates, degrees, certifications, metrics, numbers, or experiences that are not in the source material. If a fact is not in the resume or supplied by the candidate, it does not go in the output. Fabricating anything is a critical failure — a tailored resume that lies gets the candidate caught in the interview.
If the candidate genuinely lacks a must-have requirement, leave it out of the resume. That gap belongs in the gap analysis, not in a fabricated bullet.
Workflow
Step 1 — Gather the inputs
You need two things: the resume and the job description (JD).
- Resume: Ask for a file path or pasted text. Read the file directly if it's
a PDF, Markdown, or plain-text resume. If it's a
.docx(or any format you can't read cleanly), ask the candidate to paste the text or export to PDF. - JD: Accept pasted text, a file, or a URL. If given a URL, fetch it; if the fetch returns mostly navigation chrome or is JS-rendered and empty, ask the candidate to paste the JD text instead.
- Optional extra info: Ask if there's anything relevant not on the resume (recent projects, metrics, context). Treat this as real facts you may use.
- Ask one preference up front: include a short professional summary? (default: yes, unless the resume clearly omits one on purpose).
Don't over-interrogate — if you have a resume and a JD, you can proceed.
Step 2 — Gap analysis (do this first, and honestly)
Read the JD and extract its must-have and nice-to-have requirements, then judge the original resume against them. Produce:
- An overall match score (0–100), calibrated honestly — missing several must-haves should score low. Never flatter.
- A requirements matrix: one row per requirement —
must-havevsnice-to-have, statusmet/partially met/missing, the specific evidence from the resume (quote or paraphrase), and a concrete suggestion. If something is missing, say what's absent — do not fabricate evidence. - The candidate's top strengths for this role.
- The most important gaps, each with honest, realistic mitigation (never advise lying).
See references/method.md for the exact rubric and output shape.
Step 3 — Propose the tailoring plan and get sign-off
Before rewriting anything, present a concise tailoring plan and get the candidate's OK. Do not generate the resume yet. Show:
- The 3–5 themes you'll organize the resume around (from the JD's must-haves).
- The concrete changes you propose, grouped by section — e.g. "Summary: reframe around real-time data infrastructure"; "Experience @ Acme: lead with the pipeline bullet and quantify it with your real 10k/s figure"; "Skills: surface Distributed Systems & ML"; "Compress the older Startup Inc role to hold one page".
- Any judgment calls, borderline reframings, or missing facts, flagged honestly (e.g. "do you have a metric for X?").
Then ask the candidate to approve, adjust, or pick and choose — they can accept everything, drop or change specific items, or hand you real details to add. Fold their response into the plan. Only once they're happy do you continue to Step 4. Keep the plan skimmable (bullets, not essays). If they say "just do it", proceed with your full plan.
Step 4 — Tailor the resume (theme-first)
Carry out the approved plan — apply the changes they signed off on, and skip the ones they dropped.
- Organize around the agreed 3–5 themes from the JD's must-have requirements and repeated keywords.
- Rewrite every section to foreground the candidate's REAL experience that
maps to those themes:
- Within each role, reorder bullets so the most theme-relevant impact leads; tighten wording to surface matching keywords naturally.
- Rewrite bullets to read as impact/achievement (strong verb + what + measurable result when the number is real), not job duties.
- Reorder skills so theme-relevant ones lead; reorder experience so the most relevant roles come first (never change dates).
- If a summary is wanted, center it on those themes using only real experience.
- Fold in the candidate's real "extra info" where it fits.
- Keep it truthful and not over-aligned. Don't stuff keywords or stretch a past role into something it wasn't — subtle over-alignment reads as fake to a recruiter. Reframe honestly; don't distort.
- Never fabricate to fit a theme. Missing must-haves stay out (they're in the gap analysis).
Keep contact info, company/title/dates, and education factual and unchanged (reordering is fine). Aim for a tight, one-page-friendly result unless the candidate's seniority clearly warrants more.
Step 5 — Produce the PDF (page-matched) and deliver
The final deliverable is a PDF, not a Markdown file. Follow
references/pdf-export.md precisely — it is not optional polish.
Name the output files after the candidate and the job, so multiple tailored resumes are easy to tell apart. Build a filename stem:
<CandidateName>_<Company>_Resume→ e.g.Tian_Zhang_Spotify_Resume
Replace spaces with underscores and drop characters unsafe in filenames
(/ \ : * ? " < > |). If the company isn't known, use the role title; if neither
is available, use Tailored. If the candidate's name is missing, use Resume.
Below, this stem is written <stem>.
- Determine the original resume's page count
N(from the source PDF; if the source was pasted text with no PDF, default to 1 page). - Build a print-styled, self-contained
<stem>.html. - Convert it to
<stem>.pdf(WeasyPrint → headless Chrome → wkhtmltopdf → pandoc; if none is installed, save the HTML and tell the candidate to Print → Save as PDF). - Verify the output is exactly
Npages withpdfinfoand adjust density (font size, spacing, margins, amount of real content) until it matches and the space is filled — never add a page, never leave a page half-empty, never pad with invented content. Seereferences/pdf-export.mdfor the render → measure → adjust loop.
Also write <stem>_Gap-Analysis.md (the score, requirements matrix,
strengths, and gaps), and keep <stem>.html so the candidate can fine-tune and
re-export. Then in your reply:
- Show a short before → after read: the original match estimate vs the tailored one, and why it moved (surfaced real experience — never inflated).
- Give a compact change log: the meaningful edits, each with the original snippet and the reason it ties to the job.
- Remind the candidate to review every line before sending — it's their real experience, re-framed, but they own the final word.
- Offer to iterate: "want a section to emphasize X more, bullets shorter, a different tone, or a version without the summary?" Re-run the relevant step on request.
Guardrails checklist (run before delivering)
- No invented employers, titles, dates, degrees, certs, metrics, or skills.
- Every "met/partially met" status in the gap analysis has real evidence.
- Missing must-haves are in the gap analysis, NOT papered over in the resume.
- No keyword stuffing; no over-alignment that distorts what the candidate did.
- Dates and factual identifiers are unchanged.
- The PDF has exactly the original's page count (verified with
pdfinfo), fills the space, and no page was added. - Space is filled with real content/formatting — never invented padding.
- The candidate was told to verify before submitting.
What ships with it: 2 files
10.2 KB alongside SKILL.md
references/
- method.md4.7 KB
- pdf-export.md5.4 KB
Gives 0 of the 12 instructions most hr recruiting skills give in ~2.0k tokens
Counted across 356 of the 357 authors here whose files we hold, read 2026-08-07
- Quantify achievements with specific metricsin 14 of 356, across 6 files
- Keep the resume under two pagesin 14 of 356, across 6 files
- Request the full job description if not providedin 12 of 356, across 4 files
- Extract keywords and prioritize job requirementsin 12 of 356, across 4 files
- Stop and ask for clarification if required inputs are missingin 12 of 356, across 5 files
- Map candidate experience to job requirementsin 11 of 356, across 3 files
- Ask if the user wants adjustmentsin 11 of 356, across 3 files
- Provide strengths and gap analysis after the resumein 10 of 356, across 2 files
- Request candidate background details if not providedin 10 of 356, across 2 files
- Format experience bullets as action verb plus resultin 10 of 356, across 2 files
- Ask for missing inputs before startingin 10 of 356, across 9 files
- Use exact job description terminologyin 9 of 356, across 1 file
Said here and by no other author read
- produce an honest gap analysis with a requirements matrix
- propose a tailoring plan and get explicit sign-off before rewriting
- organize the resume around three to five job-derived themes
- rewrite bullets as real impact statements using measurable results
- reorder skills and experience by theme relevance without changing dates
- produce a print-styled self-contained HTML file
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.