Resume + ATS + LinkedIn Optimizer — an AI Agent Skill
Build, rewrite, tailor, and audit a job-winning resume/CV and LinkedIn profile — optimized at the same time for ATS parsing (Workday, Greenhouse, Lever, Taleo, iCIMS, Ashby), the 7-second recruiter skim, and LinkedIn recruiter search. Zero fabrication. Fully sourced. Battle-tested.
This is an Agent Skill
for Claude Code (and any agent that reads SKILL.md). Point your AI agent at it
and it turns a person's real experience into the strongest possible resume and
LinkedIn profile — the way top university career centers, ex-FAANG recruiters,
and the actual behavior of production ATS say to do it, minus the myths.
If you've ever wondered "why do I never hear back?" — this is the fix, and it does it honestly.
Why this skill is different
Most resume prompts and "ATS checkers" repeat fear-based myths, invent metrics, and hand you a two-column template that ATS can't even read. This one is built on what's actually true:
- 🔒 Zero fabrication. Never invents employers, titles, dates, degrees, or numbers. Instead it excavates the real metrics you already have and hedges honest estimates. A resume that lies fails the reference check — and your career deserves better.
- 📄 Optimizes for all three at once. ATS parseability and human skim-readability and LinkedIn recruiter-search ranking — not one at the expense of the others.
- 🧠 Sourced, not vibes. Harvard/MIT career services, Google's XYZ formula, Ladders eye-tracking research, ex-Amazon/Google recruiters, and the documented parsing behavior of real ATS. Myths (the "75% auto-reject" hoax, hidden-text keyword stuffing, "PDFs don't parse") are debunked, not repeated.
- ⚙️ Deterministic tooling. The agent writes the words; bundled Python
tools own layout and checks — render an ATS-safe
.docx, run truthfulness invariants, estimate keyword coverage, and strip AI-slop language. - 🗂️ A Master Profile as source of truth. Tailoring becomes selection from everything you've truthfully done — fast, consistent, and honest across every job you apply to.
What it can do
| You want to… | Ask your agent |
|---|---|
| Build a resume from scratch / raw notes | "Build my resume from this experience." |
| Make an existing resume much stronger | "Improve my resume." |
| Tailor to a specific job | "Tailor my resume to this job description: …" |
| Check if it's ATS-friendly | "Audit my resume for ATS." |
| Write/quantify achievement bullets | "Turn these duties into quantified bullets." |
| Optimize your LinkedIn profile | "Optimize my LinkedIn headline / About / skills." |
| Write a tailored cover letter | "Write a cover letter for this job." |
| Decide whether a job is worth applying to | "Should I apply to this role?" |
Install
Claude Code
Clone into your skills directory (user-level shown; use .claude/skills/ inside
a project for project-level):
git clone https://github.com/artificialguybr/resume-ats-linkedin-optimizer.git \
~/.claude/skills/resume-ats-linkedin-optimizer
The skill auto-activates when you ask anything resume/CV/ATS/LinkedIn-related. You can also invoke it explicitly.
Any other agent (Cursor, Cline, custom, etc.)
The skill is plain Markdown. Add SKILL.md (and the references/, assets/,
scripts/ folders) to your agent's context, or paste SKILL.md as a system
instruction. It's framework-agnostic.
Optional: the render tool
Rendering a JSON resume to an ATS-safe .docx or .pdf needs one dependency
each:
pip install -r scripts/requirements.txt # python-docx (.docx) + reportlab (.pdf)
The other tools (validate, coverage, deslop) are pure standard library.
How it works
The agent follows a gated workflow (only the phases your task needs):
Intake → Master Profile → Metric Excavation → Content Engineering
→ ATS Formatting → Keyword Tailoring → Render → Evaluate → (LinkedIn)
The Master Profile (assets/master-profile-template.md) is your private,
exhaustive record of everything you've done. Every resume and LinkedIn variant is
a selection from it — never an invention on top of it. That's what makes
tailoring both fast and truthful.
Bundled tools (scripts/resume_tools.py)
# Render structured JSON → single-column, ATS-safe .docx or .pdf (format inferred from extension)
python scripts/resume_tools.py render --resume resume.json --out resume.pdf
python scripts/resume_tools.py render --resume resume.json --out resume.docx
# Truthfulness invariants: no fabricated employer/date, identity untouched, nothing dropped
python scripts/resume_tools.py validate --resume resume.json --source master-profile.json
# Labeled keyword-coverage ESTIMATE vs a job description (never a fake "ATS score")
python scripts/resume_tools.py coverage --resume resume.json --jd job.txt
# Flag AI-slop: buzzwords, inflated verbs, filler, em-dash tics
python scripts/resume_tools.py deslop --resume resume.json
See assets/example-resume.json for the input shape and
assets/resume.schema.json for the full schema.
What's inside
SKILL.md ← the orchestrator (start here)
references/
01-ats-and-formatting.md ← how each ATS parses; format rules; PDF vs DOCX
02-content-and-bullets.md ← XYZ/CAR bullets; quantification; recruiter skim
03-keywords-and-tailoring.md ← JD analysis; keyword tiering; apply/skip gate
04-linkedin.md ← algorithm; per-field limits + formulas; checklist
05-master-profile.md ← the single source of truth + visibility system
06-scoring-and-evaluation.md ← rubric; truthfulness invariants; skim test
07-myths-and-truth.md ← ATS myths debunked
08-cover-letters.md ← when to write one, structure, rules, template
assets/ ← templates, JSON schema, verb bank, metric proxies, slop blacklist
scripts/ ← resume_tools.py (render / validate / coverage / deslop)
A few myths this skill refuses to repeat
- ❌ "ATS auto-reject 75% of resumes." — A myth from a defunct 2012 vendor. ~92% of recruiters say their ATS doesn't auto-reject. What kills you is human overload + knockout questions.
- ❌ "Hidden white-text keywords beat the bot." — Modern AI layers detect it and flag you as manipulative.
- ❌ "ATS can't read PDFs." — Outdated since ~2019. The killer is a two-column or image layout, not the PDF container.
- ❌ "Cram the keyword 12 times." — Stuffing ranks you lower and reads as spam.
Full list with the truth: references/07-myths-and-truth.md.
Contributing
Issues and PRs welcome — especially newer ATS behavior, LinkedIn field changes, and additional metric-proxy benchmarks. Keep the zero-fabrication principle intact.
License
MIT — see LICENSE. Go get the job.
No comments yet
Be the first to share your take.