agentleFS
Ibanez012003Ibanez012003/resume-optimizer/SKILL.md

ats-resume-optimizer

Skill5 starsChanged 2 months agoMITView on GitHub

Resume and cover letter workflow — use this skill for ANY resume or cover letter task, whether or not a job description is provided. Triggers include full ATS tailoring (JD provided), quality and formatting review ("humanize this", "clean this up", "remove em-dashes", "apply formatting standards"), general resume edits, cover letter drafts or reviews, and gap analysis. When a JD is present, run the full 4-step ATS process. When no JD is present, run Quality Check Mode instead.

1 other project uses a version of this.

Adopted by

Most recently taken up by

  • Other versions1 project uses a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 1

    1. sahilsaini432/claude_skills★ 0same name

    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.

The file

Show its rules and text

We split this skill into the rules it gives an agent

27 rules. About 0 are common, 27 are distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈27

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  • could be automatic: a setting could enforce it
  1. Distinctive:

    Before doing anything else, identify which mode applies.

    line 38
  2. Distinctive:

    Run Step 0 (pre-flight check), then Steps 1–4 automatically.

    line 41
  3. Distinctive:

    Run the Quality Check workflow below instead of Steps 0–4.

    line 45
  4. Distinctive:

    When no JD is present, run a formatting and voice audit on whatever document(s) are provided.

    line 53
  5. Distinctive:

    Do not rewrite content that is already clean

    line 80
  6. Distinctive:

    When building or significantly updating a base resume, run a short elicitation before writing any bullets.

    line 86
  7. Distinctive:

    Before outputting any experience section, scan every bullet for common overclaim patterns.

    line 105
  8. Distinctive:

    When in doubt, use softer accurate language: "participated in," "contributed to," "authored stories for," "supported," "collaborated on." …

    line 114
  9. Distinctive:

    Before outputting the summary, check that no title in the summary conflicts with the actual title in the experience section.

    line 120
  10. Distinctive:

    If the experience section qualifies the title (delegate, acting, interim, associate), the summary must not claim the unqualified version.

    line 126
  11. Distinctive:

    Before extracting keywords or building any documents, do a rapid scan of the JD against the user's known background to detect severe …

    line 133
  12. Distinctive:

    Run a quick keyword map (required qualifications only)

    line 165
  13. Distinctive:

    Ask: "The gaps above are significant.

    line 168
  14. Distinctive:

    Wait for confirmation before running Steps 1–4

    line 169
  15. Distinctive:

    Do not add experience that did not happen

    line 232
  16. Distinctive:

    After the file, list every JD keyword the user cannot truthfully claim:

    line 242
  17. Distinctive:

    Every bullet uses a bold label followed by a colon, then the body text.

    line 252
  18. Distinctive:

    Instead, use semicolons or commas:

    line 274
  19. Distinctive:

    Do not open with "I" as the first word

    line 317
  20. Distinctive:

    Do not repeat the resume

    line 318
  21. Distinctive:

    Do not use the word "journey"

    line 319
  22. Distinctive:

    Do not list skills — the letter tells a story about two or three of them

    line 320
  23. Distinctive:

    Always spell out on first use:

    line 330
  24. Distinctive:

    Use full product names at least once:

    line 343
  25. Distinctive:

    Never merge into "Education & Certifications." Use separate headers — many ATS parsers only recognize standard section labels.

    line 350
  26. Distinctive:

    Every summary should contain (naturally) where applicable:

    line 354
  27. Distinctive:

    Do not ask for confirmation between steps 1–4.

    line 390

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “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

ATS Resume Optimizer

A Claude skill for job seekers. Tailors resumes and cover letters to specific job descriptions, audits for ATS compatibility, surfaces honest skill gaps, and enforces clean, human-sounding language throughout.


User Configuration

Fill in this section before using the skill. Claude will reference it throughout.

NAME: [Your full name]
LOCATION: [City, State]
PHONE: [Phone number]
EMAIL: [Email address]
LINKEDIN: [linkedin.com/in/yourhandle]

TARGET ROLES: [e.g., Business Analyst, Product Owner, Data Analyst, Healthcare IT]

BASE RESUME SUMMARY: [Paste a 2-3 sentence summary of your background here]

DOCUMENT STYLE:
  Primary color: 1F4E79   (dark blue — change hex to customize)
  Accent color:  2E74B5   (medium blue)
  Text color:    595959   (gray)
  Font:          Calibri

Mode Detection — Run This First

Before doing anything else, identify which mode applies.

Full ATS Mode — JD is present (pasted, uploaded, or linked): Run Step 0 (pre-flight check), then Steps 1–4 automatically.

Quality Check Mode — No JD provided, but resume and/or cover letter is present, OR the request is about language, formatting, or tone: Triggered by: "humanize this", "clean this up", "too agentic", "remove em-dashes", "apply formatting standards", "simplify", "update my bullets", or any resume/cover letter work without a JD. Run the Quality Check workflow below instead of Steps 0–4.

Never ask which mode — detect from context and proceed.


Quality Check Mode

When no JD is present, run a formatting and voice audit on whatever document(s) are provided. Output corrected .docx file(s).

What to scan for

Em-dash sandwiches — the pattern "Built X — detail — result". Replace with semicolons or commas:

  • ❌ "Led the transition — waterfall to Scrum — across multiple units"
  • ✅ "Led the transition from waterfall to Scrum/Kanban; established scrum boards and served as Scrum Master"

Standalone em-dashes mid-sentence — replace with a semicolon, colon, or restructure.

Flagged words — scan every sentence and replace:

❌ Flag✅ Replace with
ChampionedLed / Drove / Introduced
SpearheadedLed
LeveragedUsed / Applied
UtilizedUsed
Passionate aboutCut it
Enterprise-scale solutions(describe what was delivered)

Poetic or inflated phrasing — any sentence that sounds written to impress rather than communicate. Rewrite to be plain and specific.

Output

  1. List the specific issues found (one line per fix)
  2. Output the corrected document(s) as .docx files
  3. Do not rewrite content that is already clean

Pre-Build Elicitation (base resume builds and enrichment requests)

When building or significantly updating a base resume, run a short elicitation before writing any bullets. This prevents multiple rebuild cycles from details that surface late.

Quantification prompts:

  • How many user stories, tickets, or requirements did you author?
  • How many teams, stakeholders, or source systems were involved?
  • How many people did you manage or lead (formally or informally)?
  • How many agents, tools, or automations did you build?
  • Any key time frames or scale indicators (partners, clients, users, columns, terms, reports)?

Accuracy prompts:

  • For each major project: did you own and drive this, or contribute to and support it?
  • Were there co-owners or leads above you on this work?
  • Is there anything easy to overstate — e.g., "influenced" when it was "participated in discussions"?
  • Are any items listed as separate that were actually the same thing?

Accuracy Check (always run before finalizing bullets)

Before outputting any experience section, scan every bullet for common overclaim patterns.

Risky phrasingCheck before using
"Drove / led / owned [initiative]"Did they lead it, or contribute to it?
"Influenced design decisions"Were they the decision-maker, or in the room?
"Championed [transformation]"Did they initiate it, or execute within it?
"[Two things] agent"Are these one agent or two? Confirm before splitting

When in doubt, use softer accurate language: "participated in," "contributed to," "authored stories for," "supported," "collaborated on." Precision beats impressiveness.


Title Consistency Check (always run before finalizing summary)

Before outputting the summary, check that no title in the summary conflicts with the actual title in the experience section.

Common contradiction pattern:

  • Summary: "Senior Business Analyst and Product Owner"
  • Experience: "Senior Business Analyst / Product Owner Delegate"

If the experience section qualifies the title (delegate, acting, interim, associate), the summary must not claim the unqualified version. Frame aspiration separately:

  • "Actively growing into a formal Product Owner role, with hands-on product ownership experience..."

Step 0 — Pre-Flight Gap Check (always run first in Full ATS Mode)

Before extracting keywords or building any documents, do a rapid scan of the JD against the user's known background to detect severe mismatches. This step saves time and credits.

What counts as a severe gap

Pause and ask for confirmation if ANY of the following are true:

1. Professional category mismatch The role is fundamentally in a different professional category than the user's background. Examples:

  • Software engineering roles requiring 3+ years of coding in languages or frameworks not in their background
  • Clinical roles requiring active licensure (RN, MD, pharmacist)
  • Roles requiring a specific non-equivalent degree (e.g., Computer Science for a software engineering role)

2. Three or more hard required gaps Three or more of the JD's explicitly required qualifications (not preferred) are completely absent from the user's background.

3. Core tool stack completely absent The role's primary tools are entirely missing. Example: Workday Studio/EIBs for a Workday integration engineer role.

4. Experience years significantly unmet The required years of experience in the specific role type is more than double what the user can claim.

What does NOT count as severe

Proceed without asking:

  • Formal title gap (e.g., titled PM vs PM-adjacent work)
  • People management gap when the work has been cross-functional team leadership
  • Missing one specific tool with a clear equivalent (MS Project → Jira)
  • Preferred qualifications unmet when required qualifications are mostly covered
  • Domain gap when core skills match

How to handle a severe gap

  1. Run a quick keyword map (required qualifications only)
  2. Present a concise summary: what the role requires, what is covered, what is missing
  3. State clearly whether this is a stretch application or a mismatch
  4. Ask: "The gaps above are significant. Do you want to continue and build the resume and cover letter anyway, or would you rather move on?"
  5. Wait for confirmation before running Steps 1–4

Step 1 — Extract Keywords

From the JD, extract and list:

  • Job title(s) and any alternate titles mentioned
  • Required and preferred hard skills
  • Tools and platforms named explicitly
  • Key responsibilities (as verb phrases)
  • Domain / industry terms
  • Methodology terms (Agile, SDLC, Waterfall, OCM, etc.)
  • Soft skills called out explicitly

Step 2 — Map to Resume

Cross-reference every extracted keyword against the user's actual experience only. Present as a table:

JD KeywordCovered?Where

Use:

  • ✅ — clearly covered by real experience
  • ⚠️ — partial match or close equivalent (note what the equivalent is)
  • ❌ — genuine gap, not in experience

Hard rule: never invent, stretch, or imply experience that is not there.


Step 3 — Build the Tailored Resume

Summary

Rewrite in ≤50 words using JD language. Lead with the credentials most relevant to this specific role.

Core Competencies

Evaluate whether to include this section:

Include when: large employer with ATS portal, wide keyword range, government or healthcare application. Drop when: senior/director-level role, boutique firm, human-first process, or bullets and summary already carry all target keywords.

Format when included — pipe-separated text, never a table:

function compRow(...items) {
  return new Paragraph({
    children: [new TextRun({ text: items.join('  |  '), size: 20, font: 'Calibri' })],
    spacing: { before: 12, after: 12 }
  });
}
compRow('Skill One', 'Skill Two', 'Skill Three')

Technical Skills

Note tool equivalents where the JD names a specific tool the user has under a different name (e.g., "MS Project (equivalent: Jira)").

Experience Bullets

For each role:

  • Rewrite using the JD's exact phrasing where truthful
  • Reorder so the most JD-relevant bullets appear first
  • Drop or demote bullets with no relevance to this role
  • Do not add experience that did not happen
  • Apply all Bullet Formatting & Voice Standards below

Output

Build and present the tailored resume as a .docx file. Always output the file.


Step 4 — Gap List

After the file, list every JD keyword the user cannot truthfully claim:

  • Label it Hard gap (completely absent) or Soft gap (close but not exact)
  • One-line note on whether a quick action closes it (a cert, a cover letter framing note, equivalent tool mention)

Bullet Formatting & Voice Standards

Format: Bold Label + Colon

Every bullet uses a bold label followed by a colon, then the body text.

function blt(label, body) {
  return new Paragraph({
    numbering: { reference: 'bullet-list', level: 0 },
    children: [
      new TextRun({ text: label + ': ', bold: true, size: 20, font: 'Calibri' }),
      new TextRun({ text: body, size: 20, font: 'Calibri' })
    ],
    spacing: { before: 20, after: 20 }
  });
}

// Example
blt('User Story Development', 'Crafted and refined 100+ Jira user stories with technical SMEs; managed complex cross-team workloads through structured spec-driven development.')

No Em-Dash Sandwiches

Never use: "Built X — detail, detail — result"

Instead, use semicolons or commas:

❌ Avoid✅ Use instead
Built agents automating workflows — demo decks, ETL alerts — reducing overheadBuilt agents handling demo decks, ETL alerts and survey insights; reduced overhead across teams
Led transition — waterfall to Scrum — across multiple unitsTransitioned from waterfall to Scrum/Kanban; established scrum boards and served as Scrum Master

Word Choice: Natural Over Corporate

❌ Avoid✅ Use instead
SpearheadedLed
ChampionedDrove / Pushed / Introduced
LeveragedUsed / Applied
Enterprise-scale solutions(describe what was delivered)
Ensuring adherence toEnsured / following

Cover Letter Voice & Tone Standards

Structure

Four paragraphs maximum:

  1. Opening — one specific reason you applied to this role or organization. Not "I am excited to apply."
  2. Fit paragraph — two or three specific accomplishments that map to the JD. Real examples with real detail.
  3. Gap paragraph (when gaps exist) — name hard gaps directly and frame honestly. Do not hide gaps.
  4. Closing — one sentence. Invite the conversation.

Voice Rules

❌ Avoid✅ Use instead
"I am excited to learn of this opportunity"A specific reason you applied
"Spearheaded", "championed", "leveraged""Led", "drove", "used"
"proven track record of excellence"A real example
"passionate about"Cut it; show it instead
Long lists of skills in paragraph formPick two things and go deep
"I look forward to hearing from you" as the only closingOne specific sentence about next steps

What to Avoid

  • Do not open with "I" as the first word
  • Do not repeat the resume
  • Do not use the word "journey"
  • Do not list skills — the letter tells a story about two or three of them

ATS Structural Standards

Applied to every resume output automatically.

Acronym Expansions

Always spell out on first use:

AbbreviationFull form
BIBusiness Intelligence (BI)
ETLExtract, Transform, Load (ETL)
UATUser Acceptance Testing (UAT)
POProduct Owner (PO)
RPARobotic Process Automation (RPA)
SDLCSoftware Development Life Cycle (SDLC)

Microsoft Prefix

Use full product names at least once:

  • Microsoft Power BI
  • Microsoft Azure DevOps
  • Microsoft Power Automate

Section Headers — Education and Certifications Separate

Never merge into "Education & Certifications." Use separate headers — many ATS parsers only recognize standard section labels.

Summary Keywords

Every summary should contain (naturally) where applicable:

  • "requirements management" or "business requirements"
  • "business intelligence (BI)"
  • "data governance"
  • "digital transformation"
  • "process improvement"
  • "Agile" or "Agile methodology"

Document Style Defaults

// Override in User Configuration above
const DARK_BLUE = '1F4E79';
const MED_BLUE  = '2E74B5';
const GRAY      = '595959';

// Font: Calibri throughout, size 20 for body, 21 for job headers, 22 for section headers
// Section headers: UPPERCASE, bold, DARK_BLUE, bottom border MED_BLUE SINGLE size 6
// Job headers: bold title · blue company · gray location · italic gray dates
// Bullets: LevelFormat.BULLET, size 20, indent left 360 hanging 200
// Spacing: sectionHeader before 200 after 80 / jobHeader before 160 after 50 / bullet before 20 after 20
// Page margins: top 720 bottom 720 left 1008 right 1008 (twips), US Letter
// Target: 2 pages maximum

Output Sequence

  1. Step 0 — pre-flight check; pause if severe gaps detected
  2. Steps 1 & 2 — keyword extraction + mapping table, in chat
  3. Step 3 — tailored .docx file presented with present_files
  4. Step 4 — gap list in chat after the file

Do not ask for confirmation between steps 1–4. Run all four and present everything in one response, unless Step 0 triggered a pause.

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.