agentsclimarketplace

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

Install
npx -y skills add clickblipclick/resume-tailor --skill tailor-resume

Assembled 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

  1. 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").
  2. Never skip the measure step. Every selections change must be followed by bun run measure <path-to-selections.yaml>.
  3. Iteration cap: 5 fit-loop passes. After the 5th, stop and ask the user for direction rather than thrashing.
  4. Page limit. Default is 1 page. If the user sets max_pages in selections.yaml, respect that limit. If measure reports overflow (overflow_px > 0), do not export.

Workflow

1. Gather context

  • Identify the job directory (e.g. jobs/2025-04-18-acme-sre/). Use ls jobs/ if needed.
  • Read content/master.yaml in full.
  • Read the job.md from the job directory.
  • Consider the job.md and content/master.yaml as 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 prior job.md + selections.yaml for 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.yaml from 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.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.