Tailor resume
Skill clickblipclick/resume-tailor/.claude/skills/tailor-resume
Use when tailoring a resume to a specific pasted job description. Reads content/master.yaml and jobs/<slug>/job.md, proposes a selections.yaml with per-change reasoning, runs the render/measure/export loop, and enforces one-page output via human-approved cuts.From its SKILL.md
npx -y skills add clickblipclick/resume-tailor --skill tailor-resumeAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 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.
SKILL.md
4.5 KB, ~1.0k tokens by cl100k_base, as published. Nobody here has run it
Tailor Resume Skill
When to use
User wants to generate a tailored, page-limited PDF for a job description.
Scaffolding
If no jobs/*-<slug>/ directory exists yet, always scaffold via the script: save the JD to a temp file and run bun run tailor <temp-file> --slug <slug>. Never create the job directory manually — the script adds a date prefix (YYYY-MM-DD-<slug>) that the rest of the workflow depends on.
Hard rules
- Never apply a cut, override, or reordering without showing the user the specific change and the reason, and getting explicit approval. Batch approval is fine ("looks good, proceed"); rejections can be specific ("all except 2 and 5").
- Never skip the measure step. Every selections change must be followed by
bun run measure <path-to-selections.yaml>. - Iteration cap: 5 fit-loop passes. After the 5th, stop and ask the user for direction rather than thrashing.
- Page limit. Default is 1 page. If the user sets
max_pagesin selections.yaml, respect that limit. Ifmeasurereports overflow (overflow_px > 0), do not export.
Workflow
1. Gather context
- Identify the job directory (e.g.
jobs/2025-04-18-acme-sre/). Usels jobs/if needed. - Read
content/master.yamlin full. - Read the
job.mdfrom the job directory. - Consider the
job.mdandcontent/master.yamlas if you were a hiring manager for the given role. Consider what master bullets would be most attractive for that role. Listen to the user but push back if you think they are making a mistake or an incorrect judgment. Ultimately, they are in control. - For skills, err toward including more even if it's not explicitly applicable for the role.
- List
jobs/archive/and read any priorjob.md+selections.yamlfor roles/companies that look similar to the current JD. Use these only as framing reference, not as authoritative.
2. Propose initial selections
Produce a proposed selections.yaml and present it as a diff-with-reasoning list. Format:
Including:
- acme-led-migration — JD emphasizes data platform work; this matches directly.
- acme-hired — JD mentions team growth.
Excluding:
- globex-frontend-* — JD is backend-only; these would dilute focus.
Rewording:
- acme-reduced-latency: "Cut API p95 latency 60%"
(original: "Improved API latency by 60%") — JD uses "p95" explicitly.
Template:
- template: default — using the standard template unless the user requests otherwise.
The proposed selections.yaml must include a template field (default: "default").
Always propose profile_overrides with a tailored headline and summary for the JD. The headline should match the JD's role title (or a close generalization). The summary should be rewritten to emphasize the skills, technologies, and themes the JD prioritizes, while staying truthful to the candidate's experience. Ensure the headline and summary's opening are consistent (e.g. both say "Senior Software Engineer", not one "Frontend" and one "Software").
Wait for user approval. Apply approved changes to jobs/<slug>/selections.yaml.
3. Render + measure
Run:
bun run measure <path-to-selections.yaml>
Report the measure JSON back to the user.
4. If overflowing, propose cuts
If pages > max_pages:
- Identify candidate cuts sized to the reported
overflow_lines. - Present each as diff-with-reasoning (what you'd drop or shorten, and why this bullet is least critical given the JD).
- Wait for approval.
- Apply approved changes; return to step 3.
After 5 iterations with no fit, stop and ask the user whether to: (a) relax a constraint, (b) manually edit, or (c) adjust the template.
5. Export
When pages <= max_pages:
bun run export <path-to-selections.yaml> --out jobs/<slug>/resume.pdf
Editing discipline
- Never edit
content/master.yamlfrom this skill. Master is owner-curated. If the JD requires content that doesn't exist in master, raise it to the user explicitly — they decide whether to add to master or use a one-off override. - Bullet IDs are stable. Don't rename them.
- Vary leading verbs across bullets. Avoid repeating the same initial verb within a role section. When writing overrides, check what verbs adjacent bullets already use.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.
Gives 0 of the 12 instructions most hr recruiting skills give in ~1.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
- scaffold job directories using the script
- propose selections with per-change reasoning
- wait for user approval before applying changes
- run measure after every selections change
- propose cuts sized to reported overflow
- respect max_pages limit set by user
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.