Faber ats
Checks resume content and structure against ATS (Applicant Tracking System) parsing requirements and a target job description. Returns a structured report with keyword match percentage, missing-keyword gap table, section header validation, date consistency check, metric density score, and concrete formatting recommendations. TRIGGER when: user asks if their resume will pass ATS, wants a keyword match analysis, asks about resume compatibility, pastes a job posting alongside their resume for comparison, or asks "will this get through the filters?" Also triggers when user mentions ATS, applicant tracking, keyword optimization, resume scanning, or job match percentage. DO NOT TRIGGER when: user wants to write or rewrite resume content (use faber or faber-bullet), wants a cover letter, or wants general career advice.From its SKILL.md
npx -y skills add faber-craft/faber-resume --skill faber-atsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 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
7.3 KB, ~1.5k tokens by cl100k_base, as published. Nobody here has run it
Faber ATS — The ATS Content Auditor
Checks resume content against ATS parsing requirements and job descriptions. Produces a structured compatibility report with actionable recommendations.
Core Principle
ATS systems don't read resumes like humans. They extract raw text, segment it into fields, and match keywords against job requirements. This auditor checks whether the resume's content will parse correctly and match well — it works on the semantic layer, not the file format.
How It Works
Step 1: Determine Operating Mode
| Mode | Trigger | What to Check |
|---|---|---|
| JD-targeted | User provides both resume and job description | Full keyword gap analysis + structural checks |
| Role-targeted | User provides resume + target role (no specific JD) | Keyword check against typical requirements for that role |
| General audit | User provides resume only, no target | Structural checks only (headers, dates, formatting). Skip keyword analysis — note to user: "Without a target role/JD, I can't check keyword match." |
Step 2: Run Content Checks
Read references/ats-checklist.md and perform each check:
2a. Keyword Gap Analysis (JD-targeted and role-targeted modes only)
Extract keywords from the JD (or common requirements for the role):
- Required skills — from "Requirements" / "Must Have" sections
- Preferred skills — from "Nice to Have" / "Preferred" sections
- Industry terms — role-specific language, methodologies
- Tools & technologies — specific software, platforms, languages
- Certifications — explicitly mentioned credentials
Compare against resume content. Classify each keyword:
✅ PRESENT — Exact match found in resume
⚠️ PARAPHRASED — Semantically equivalent term used (flag for consideration)
❌ MISSING — Not found anywhere in resume
Anti-stuffing rule: When reporting missing keywords, note whether the user actually has the skill (if master profile is available). If they don't have it, report it as a genuine skill gap — don't suggest adding it to the resume.
Anti-bias rule: Never suggest the user add keywords they haven't verified. The gap table shows what's missing, not what to fake.
2b. Section Headers
Check all section headings against the standard headers list. Flag any non-standard headers that ATS parsers might not recognize.
2c. Date Consistency
Check that all employment dates use a consistent format throughout the document. Flag mixed formats.
2d. Contact Information
Verify presence of: name, email, phone, location. Flag any missing required fields.
2e. Metric Density
Count what percentage of experience bullets contain quantified results. Score and recommend if below 60%.
Step 3: Run Format Checks (if HTML/CSS resume)
If the resume is in HTML format, also check:
- Single-column layout (no multi-column that could scramble reading order)
- No tables used for layout
- Semantic HTML structure (
<section>,<h2>headings) - No text in images
@media printblock present withbreak-inside: avoid- Standard fonts specified
Step 4: Generate Report
Produce a structured report following the format in references/ats-checklist.md.
Mode Disclosure (required for role-targeted mode): If operating in role-targeted mode (no specific JD), the report MUST begin with:
⚠️ Mode: Role-Targeted (No specific JD provided) This report checks against typical keywords for the target role, not a specific job posting. Scores will vary (often lower) when matched against a real JD. For accurate matching, provide a specific job description.
# ATS Compatibility Report
## Overall Score: [X/100]
Scoring:
- Keyword Match: [weight 40%] — % of required keywords present
- Section Headers: [weight 15%] — all standard = full marks
- Date Consistency: [weight 10%] — consistent = full marks
- Contact Info: [weight 10%] — all fields present = full marks
- Metric Density: [weight 15%] — bullets with metrics / total bullets
- Format Safety: [weight 10%] — structural ATS compatibility
## Keyword Match: [X%]
### Required Keywords
| Keyword | Status | Location in Resume | Recommendation |
|:--------|:-------|:------------------|:---------------|
| [keyword] | ✅/⚠️/❌ | [where found or "—"] | [action if needed] |
### Preferred Keywords
| Keyword | Status | Location | Recommendation |
|:--------|:-------|:---------|:---------------|
## Section Headers: [PASS / WARN / FAIL]
[List any non-standard headers with suggested replacements]
## Date Consistency: [PASS / WARN / FAIL]
[Any inconsistencies found]
## Contact Information: [PASS / WARN / FAIL]
[Missing fields if any]
## Metric Density: [X%]
[Recommendation if below 60%]
## Format Safety: [PASS / WARN / FAIL]
[Any structural issues]
## Top 3 Recommendations
1. [Most impactful fix]
2. [Second priority]
3. [Third priority]
---
⚠️ This check validates content and keyword match.
For format safety, ensure you convert to PDF via browser print
before submitting to ATS portals.
Edge Cases
No JD Provided
Run structural checks only. Tell the user: "I've checked formatting, headers, and consistency. To check keyword match, provide a job description or target role."
Resume Has Skills the JD Doesn't Mention
Don't remove them. The user's full skill set matters for other applications. Just note which skills are JD-relevant and which are supplementary.
JD Has Vague Requirements
"Strong communication skills," "team player," etc. — don't include these in keyword gap analysis. These are assessed in interviews, not ATS scans. Note: "The JD mentions [X] — this is typically assessed in interviews, not keyword matching."
Multiple JDs
If the user wants to check against multiple JDs, run separate reports for each and highlight which skills overlap across postings.
What NOT to Do
- Don't recommend keyword stuffing. If a keyword is missing because the user lacks that skill, say so honestly.
- Don't penalize for missing "nice-to-have" keywords. Only required keywords significantly affect the score.
- Don't check visual design. ATS doesn't care about fonts, colors, or spacing — those are for human readers. Only check structural layout issues.
- Don't guarantee pass rates. Every ATS works differently. The score is an estimate, not a guarantee.
- Don't add keywords to the master profile that came from the JD without user confirmation.
What ships with it: 1 file
5.2 KB alongside SKILL.md
references/
- ats-checklist.md5.2 KB