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
- sahilsaini432/claude_skillstheir own version, first seen May 22, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 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
- Distinctive: line 38
Before doing anything else, identify which mode applies.
- Distinctive: line 41
Run Step 0 (pre-flight check), then Steps 1–4 automatically.
- Distinctive: line 45
Run the Quality Check workflow below instead of Steps 0–4.
- Distinctive: line 53
When no JD is present, run a formatting and voice audit on whatever document(s) are provided.
- Distinctive: line 80
Do not rewrite content that is already clean
- Distinctive: line 86
When building or significantly updating a base resume, run a short elicitation before writing any bullets.
- Distinctive: line 105
Before outputting any experience section, scan every bullet for common overclaim patterns.
- Distinctive: line 114
When in doubt, use softer accurate language: "participated in," "contributed to," "authored stories for," "supported," "collaborated on." …
- Distinctive: line 120
Before outputting the summary, check that no title in the summary conflicts with the actual title in the experience section.
- Distinctive: line 126
If the experience section qualifies the title (delegate, acting, interim, associate), the summary must not claim the unqualified version.
- Distinctive: line 133
Before extracting keywords or building any documents, do a rapid scan of the JD against the user's known background to detect severe …
- Distinctive: line 165
Run a quick keyword map (required qualifications only)
- Distinctive: line 168
Ask: "The gaps above are significant.
- Distinctive: line 169
Wait for confirmation before running Steps 1–4
- Distinctive: line 232
Do not add experience that did not happen
- Distinctive: line 242
After the file, list every JD keyword the user cannot truthfully claim:
- Distinctive: line 252
Every bullet uses a bold label followed by a colon, then the body text.
- Distinctive: line 274
Instead, use semicolons or commas:
- Distinctive: line 317
Do not open with "I" as the first word
- Distinctive: line 318
Do not repeat the resume
- Distinctive: line 319
Do not use the word "journey"
- Distinctive: line 320
Do not list skills — the letter tells a story about two or three of them
- Distinctive: line 330
Always spell out on first use:
- Distinctive: line 343
Use full product names at least once:
- Distinctive: line 350
Never merge into "Education & Certifications." Use separate headers — many ATS parsers only recognize standard section labels.
- Distinctive: line 354
Every summary should contain (naturally) where applicable:
- Distinctive: line 390
Do not ask for confirmation between steps 1–4.
≈ “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.
Files
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: CalibriMode 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 |
| Championed | Led / Drove / Introduced |
| Spearheaded | Led |
| Leveraged | Used / Applied |
| Utilized | Used |
| Passionate about | Cut 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
- List the specific issues found (one line per fix)
- Output the corrected document(s) as .docx files
- 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 phrasing | Check 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
- Run a quick keyword map (required qualifications only)
- Present a concise summary: what the role requires, what is covered, what is missing
- State clearly whether this is a stretch application or a mismatch
- 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?"
- 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 Keyword | Covered? | 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 overhead | Built agents handling demo decks, ETL alerts and survey insights; reduced overhead across teams |
Led transition — waterfall to Scrum — across multiple units | Transitioned from waterfall to Scrum/Kanban; established scrum boards and served as Scrum Master |
Word Choice: Natural Over Corporate
| ❌ Avoid | ✅ Use instead |
| Spearheaded | Led |
| Championed | Drove / Pushed / Introduced |
| Leveraged | Used / Applied |
| Enterprise-scale solutions | (describe what was delivered) |
| Ensuring adherence to | Ensured / following |
Cover Letter Voice & Tone Standards
Structure
Four paragraphs maximum:
- Opening — one specific reason you applied to this role or organization. Not "I am excited to apply."
- Fit paragraph — two or three specific accomplishments that map to the JD. Real examples with real detail.
- Gap paragraph (when gaps exist) — name hard gaps directly and frame honestly. Do not hide gaps.
- 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 form | Pick two things and go deep |
| "I look forward to hearing from you" as the only closing | One 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:
| Abbreviation | Full form |
| BI | Business Intelligence (BI) |
| ETL | Extract, Transform, Load (ETL) |
| UAT | User Acceptance Testing (UAT) |
| PO | Product Owner (PO) |
| RPA | Robotic Process Automation (RPA) |
| SDLC | Software 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 maximumOutput Sequence
- Step 0 — pre-flight check; pause if severe gaps detected
- Steps 1 & 2 — keyword extraction + mapping table, in chat
- Step 3 — tailored .docx file presented with present_files
- 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.
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
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.

