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-d711d14a" })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.