ATS-Optimized Resume Builder
Parses a job description, extracts ATS keywords, and rebuilds your resume with optimized phrasing, quantified achievements, and keyword density scoring. Prerequisites: brave-search MCP, python3, pandoc.
MCP get_skill({ skillId: "ats-optimized-resume-builder-2bb87edd" })Use this skill with your agent
Create a free account and connect via MCP
# ATS-Optimized Resume Builder
Analyze a job description for ATS keywords, then restructure your resume to maximize match rate with quantified achievements.
## When to Use
- "Optimize my resume for this job posting"
- "What keywords am I missing for this role?"
- "Rewrite my resume bullet points with metrics"
## Requirements
- **Brave Search MCP** for industry keyword research
- **python3** for keyword extraction and match scoring
- **pandoc** for format conversion (Markdown → PDF/DOCX)
## Workflow
### Step 1 — Parse Job Description
User provides job description text or URL.
```bash
python3 << 'PYEOF'
import re
from collections import Counter
jd = """{JOB_DESCRIPTION}"""
# Extract key technical skills and requirements
words = re.findall(r'\b[A-Za-z][a-z]+(?:\s[A-Za-z][a-z]+)?\b', jd)
word_freq = Counter(w.lower() for w in words if len(w) > 3)
# Common filler words to exclude
stopwords = {'with', 'that', 'this', 'will', 'from', 'have', 'been', 'they', 'their', 'about', 'would', 'which', 'when', 'make', 'like', 'just', 'over', 'such', 'take', 'than', 'them', 'well', 'only', 'also', 'more', 'other', 'your'}
filtered = {k: v for k, v in word_freq.items() if k not in stopwords}
print("Top Keywords in Job Description:")
for word, count in sorted(filtered.items(), key=lambda x: -x[1])[:25]:
print(f" {word}: {count}x")
PYEOF
```
### Step 2 — Research Role Standards
```
brave_web_search: "{JOB_TITLE} resume keywords ATS {YEAR}"
brave_web_search: "{JOB_TITLE} {INDUSTRY} resume examples strong bullet points"
brave_web_search: "{COMPANY_NAME} culture values mission statement"
```
### Step 3 — Score Current Resume
```bash
python3 << 'PYEOF'
jd_keywords = {JD_KEYWORDS_SET} # from Step 1
resume_text = """{CURRENT_RESUME}""".lower()
matched = [kw for kw in jd_keywords if kw in resume_text]
missing = [kw for kw in jd_keywords if kw not in resume_text]
score = len(matched) / len(jd_keywords) * 100 if jd_keywords else 0
print(f"ATS Match Score: {score:.0f}%")
print(f"\n✅ Matched ({len(matched)}): {', '.join(matched)}")
print(f"\n❌ Missing ({len(missing)}): {', '.join(missing)}")
print(f"\nTarget: 75%+ for ATS pass")
PYEOF
```
### Step 4 — Rewrite Resume
Generate optimized resume in markdown:
```markdown
# {FULL_NAME}
{EMAIL} | {PHONE} | {CITY, STATE} | {LINKEDIN_URL}
## Summary
{ROLE}-focused professional with {X} years of experience in {KEY_SKILL_1}, {KEY_SKILL_2}, and {KEY_SKILL_3}. {Achievement with number}.
## Experience
### {JOB_TITLE} — {COMPANY}
*{START_DATE} – {END_DATE}*
- {ACTION_VERB} {what you did} resulting in {QUANTIFIED_RESULT}
- {ACTION_VERB} {what you did} across {SCOPE} leading to {METRIC}% improvement
- {ACTION_VERB} {KEY_JD_KEYWORD} initiatives that {MEASURABLE_OUTCOME}
## Skills
{Comma-separated list matching JD keywords}
## Education
### {DEGREE} — {UNIVERSITY}
*{YEAR}*
```
Rules for bullet points:
- Start with strong action verb (Led, Developed, Architected, Reduced, Increased)
- Include at least one number (%, $, count, time saved)
- Weave in JD keywords naturally
### Step 5 — Convert Format
```bash
# Markdown to DOCX
pandoc "outputs/career/resume.md" -o "outputs/career/resume.docx" --reference-doc=resume-template.docx
# Markdown to PDF (if LaTeX installed)
pandoc "outputs/career/resume.md" -o "outputs/career/resume.pdf" --pdf-engine=xelatex
```
### Step 6 — Final Score Check
Re-run Step 3 scoring against the new resume to verify improvement.
## Important Rules
- Never fabricate experience, skills, or metrics — only rephrase what the user provides
- All numbers and achievements must come from the user
- Keep resume to 1-2 pages
- Use standard section headings (Experience, Skills, Education) for ATS parsing
## Example Prompts
- "Optimize my resume for this Senior Developer job posting: [URL]"
- "Score my resume against this job description"
- "Rewrite my bullet points to include metrics"Related Skills
More skills in Career & Professional
Interview Prep Coach
Researches company interview process via Brave Search, generates role-specific practice questions with STAR-method answer frameworks, and provides mock interview feedback. Prerequisites: brave-search MCP.
LinkedIn Profile Optimizer
Reads your LinkedIn profile via Playwright MCP, researches industry keywords via Brave Search, rewrites headline/summary/experience with keyword optimization, and updates your profile directly in the browser. Prerequisites: playwright MCP, brave-search MCP.
Performance Review Self-Assessment Writer
Helps you write compelling self-assessments and peer reviews with quantified accomplishments, structured against your company's review framework. Prerequisites: python3.
Salary Negotiation Script Builder
Researches market compensation data via Brave Search, calculates your worth based on experience/location, and generates word-for-word negotiation scripts for offers, raises, and counter-offers. Prerequisites: brave-search MCP, python3.
Targeted Cover Letter Generator
Researches a company via Brave Search, maps your experience to their job requirements, and generates a personalized cover letter with company-specific talking points. Prerequisites: brave-search MCP, pandoc.
Explore Other Categories
Skills from other categories with shared topics
Academic Cv Builder
Format CVs for academic positions with publications, grants, and teaching
Career Changer Translator
Translate skills from one industry to another, identify transferable skills
Cover Letter Generator
Create personalized, compelling cover letters from resume and job description