Ats optimization
Auto-fires when a resume is being generated or is in context. Runs ATS checks via resume-coach and returns a prioritized list of inline fix suggestions — each showing the original text and a specific proposed rewrite. Distinct from resume-score, which produces a formal score card on explicit request. This skill suggests and applies fixes.From its SKILL.md
npx -y skills add tmargolis/career-navigator --skill ats-optimizationAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 14 stars14 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.4 KB, as published. Nobody here has run it
Check a resume for ATS-hostile formatting, keyword gaps, and narrative weaknesses, then propose specific inline fixes. Invoke resume-coach to perform the analysis.
This skill fires automatically when a resume has just been generated (after tailor-resume assembles a draft, before the user confirms the save) or when a resume is pasted into the conversation. It also fires on explicit request.
Workflow
1. Identify the resume
Check for a resume in context — in order of priority:
- A resume just generated by
tailor-resumein this session - Content pasted directly into the conversation
- An artifact name or filename the user referenced — look it up in
{user_dir}/CareerNavigator/artifacts-index.jsonand read the file
If no resume is identifiable:
"Which resume should I check? Paste it here or give me the filename."
2. Get the job description
A JD is required for keyword match analysis. Check for one in context:
- If
tailor-resumejust ran, the JD is already in context — use it - If the user pasted a JD alongside the resume — use it
- If no JD is in context, ask:
"Paste the job description so I can check keyword coverage. Skip it and I'll check formatting and narrative only."
If the user skips, proceed with formatting and narrative checks only — note that keyword match will be omitted from the results.
3. Invoke resume-coach
Pass the resume text and JD (if available) to resume-coach. The agent applies its ATS Scoring Rules and Narrative Coaching Rules and returns a list of issues: the check that failed, the offending text, and a proposed fix.
4. Present inline fix suggestions
Organize findings into a prioritized list — highest-impact issues first. For each issue, show the original and the proposed rewrite side by side:
ATS check — {filename or "this resume"}
{n} issue(s) found
1. {Check name} [HIGH / MEDIUM / LOW]
Original: "{exact text from the resume}"
Fix: "{specific proposed rewrite}"
2. {Check name} [HIGH / MEDIUM / LOW]
Original: "{exact text}"
Fix: "{specific rewrite or instruction if no direct replacement is possible}"
...
Priority levels:
- HIGH — likely to cause ATS rejection or score below 70: missing must-have keywords, non-standard section headers, multi-column layout, missing contact info
- MEDIUM — meaningfully hurts score: weak verb openers, achievements with no metrics, summary that doesn't mirror JD language
- LOW — polish items: inconsistent date formats, minor phrasing improvements
Cap the list at 10 issues. If there are more, note it:
"{n} additional low-priority items found. Address HIGH and MEDIUM items first."
If no issues are found:
"No ATS issues found. This resume is clean for parsing and keyword coverage."
5. Apply fixes
After presenting the list:
"Apply all fixes, or tell me which numbers to apply. Say 'skip' to leave as-is."
If the user confirms all or specific items:
- Apply the accepted fixes to the resume text
- Show the updated sections inline so the user can review the result
- If this resume is a saved artifact, ask:
"Save the updated version? It will overwrite {filename}."
- If yes: write the updated content to the file and update
artifacts-index.jsonwith today's date - If no: display the corrected text for the user to copy manually
- If yes: write the updated content to the file and update
If the user skips:
- Do not modify anything
- Confirm:
"No changes made. Run
/career-navigator:tailor-resumeto regenerate with a fresh pass."
6. What this skill does not do
- Does not produce a score card — use
/career-navigator:resume-scorefor a formal 40/35/25 score - Does not fabricate experience, metrics, or skills — if a metric is missing, the fix will say "add your number" not invent one
- Does not ask the user to provide information already in context