agentleFS
andrew-shwetzerandrew-shwetzer/career-ops-plugin/skills/tailor-resume/SKILL.md

tailor-resume

Skill501 starsChanged 7 months agoMITView on GitHub

Generate an ATS-optimized resume tailored to a specific job posting. Creates clean HTML you can print to PDF. Works for any industry. Use when someone says 'tailor my resume', 'make me a resume', 'create a resume for', or 'update my resume for'.

19 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use find-jobs.

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.
  • QaliAISkill

    find-jobs

    Discover fresh job postings straight from public employer ATS feeds (Greenhouse, Lever, Ashby, SmartRecruiters, etc.) and deduplicate against the history ledger.

    Also in 4 projects that use this

The file

Show its rules and text

We split this skill into the rules it gives an agent

15 rules. 0 are common, 8 are distinctive, and 7 are very specific to this project.

  • 0

    Common

    Most of the 16 edited versions we read keep these.

  • 8

    Distinctive

    This author's own choices. Worth a look.

  • 7

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Read references/ats-rules.md before generating any HTML.

    line 15
  2. Very specific:

    Read data/profile.yml for structured background data

    line 19
  3. Very specific:

    Read data/resume.md if it exists (full resume text for detail)

    line 20
  4. Very specific:

    If the user specified a company/role, search data/evaluations/ for a match

    line 22
  5. Distinctive:

    If "latest" or no argument, use the most recent evaluation file

    line 23
  6. Distinctive:

    If ambiguous, list recent evaluations and ask which one

    line 24
  7. Distinctive:

    If no evaluation exists:

    line 25
  8. Distinctive:

    Use the narrative.headline from profile as a starting point

    line 54
  9. Distinctive:

    Only include if the archetype values it (Creative, Technology)

    line 79
  10. Very specific:

    Read the template from references/resume-template.html.

    line 84
  11. Distinctive:

    No images, icons, or graphics

    line 91
  12. Distinctive:

    All text selectable (no text-in-images)

    line 92
  13. Distinctive:

    No headers/footers (ATS strips them)

    line 96
  14. Very specific:

    Write the HTML to data/resumes/{company-slug}-{role-slug}.html.

    line 101
  15. Very specific:

    Update the matching row in data/applications.md:

    line 133

“Common” is measured: kept by at least 6 in 10 of the 16 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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Tailor Your Resume

Generate an ATS-optimized resume customized for a specific job posting. Read references/ats-rules.md before generating any HTML.

Step 0: Load Context

  1. Read data/profile.yml for structured background data
  2. Read data/resume.md if it exists (full resume text for detail)
  3. Find the target evaluation:
    • If the user specified a company/role, search data/evaluations/ for a match
    • If "latest" or no argument, use the most recent evaluation file
    • If ambiguous, list recent evaluations and ask which one
  4. If no evaluation exists:

    "I need to evaluate the job first so I know what to emphasize. Paste the job posting and I'll assess it, then generate your resume."

Step 1: Keyword Extraction

From the evaluation + JD, extract 15-20 keywords that ATS systems scan for:

  • Exact phrases from "Required Qualifications" (highest priority)
  • Industry-standard terms (not creative synonyms)
  • Certifications, tools, methodologies named in the JD
  • Action verbs that match the responsibilities section

Step 2: Detect Language & Locale

  • JD in English + US company: Letter paper (8.5" x 11")
  • JD in English + non-US: A4
  • JD in another language: match that language, use A4
  • Resume language MUST match JD language

Step 3: Build Resume Content

Using the evaluation's Block E (Tailoring Plan) as a guide, construct each resume section from profile data:

Professional Summary (3-4 lines)

  • Open with years of experience + core identity
  • Include 3-5 top keywords from the JD naturally
  • End with a forward-looking statement connecting to this specific role
  • Use the narrative.headline from profile as a starting point

Experience Section

  • Include all roles from work_history, most relevant FIRST
  • For each role: Company, Title, Dates on one line
  • 3-5 bullets per role, ordered by relevance to THIS JD
  • Each bullet: Action verb + what you did + quantified result
  • Mirror JD language exactly (if JD says "project management", write "project management", not "programme management")
  • Pull specific numbers from proof_points and work_history highlights

Education Section

  • Degree, School, Year
  • Include relevant coursework or honors only if recent grad

Skills Section

  • List JD keywords FIRST, then additional skills
  • Group by category if 10+ skills (Technical, Tools, Methodologies, etc.)
  • Include both acronym and full form: "Search Engine Optimization (SEO)"

Certifications Section (if applicable)

  • From credentials in profile
  • Include status, jurisdiction, number if relevant

Projects / Portfolio (if applicable and relevant)

  • Only include if the archetype values it (Creative, Technology)
  • Brief description + link + key metric

Step 4: Generate HTML

Read the template from references/resume-template.html.

Fill all {{PLACEHOLDER}} slots with the generated content.

ATS compliance rules (from references/ats-rules.md):

  • Single column ONLY
  • Standard section headers exactly: "Experience", "Education", "Skills"
  • No images, icons, or graphics
  • All text selectable (no text-in-images)
  • Standard fonts: Arial, Calibri, Georgia, or system sans-serif
  • Font size: 10-12pt body, 14-16pt name
  • Margins: 0.5-1 inch
  • No headers/footers (ATS strips them)
  • Max 2 pages

Step 5: Output

Write the HTML to data/resumes/{company-slug}-{role-slug}.html.

Show the user a preview of the content (not the HTML code):

## Resume Preview: {Name} - {Target Role} at {Company}

**Summary:** {first 2 lines}

**Experience:**
- {Role 1} at {Company} ({dates}) - {first bullet}
- {Role 2} at {Company} ({dates}) - {first bullet}

**Skills:** {top 10}

**Keywords matched:** {n}/20 from the JD

Step 6: PDF Instructions

"Your tailored resume is saved at data/resumes/{filename}.html.

To save as PDF:

  1. Open the file in your browser (double-click it)
  2. Press Cmd+P (Mac) or Ctrl+P (Windows)
  3. Select Save as PDF
  4. Done!

The HTML is designed to print cleanly. What you see is what you get."

Step 7: Update Tracker

Update the matching row in data/applications.md:

  • Status: "Resume Ready" (if currently "Evaluated")
  • Notes: append "Resume: {filename}"

Step 8: Next Steps

"Resume is ready! Next steps:

  • Review it by opening the HTML file
  • Apply by saying 'help me with the {company} application'
  • Compare this role with others: 'compare my options'"

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.