From job-search-agent
Generate a targeted, ATS-optimized resume tailored to a specific job description using the user's career profile. Produces a polished PDF or DOCX with the right keywords, reordered experience, and bullet points that directly address what the JD is asking for. Trigger this skill whenever the user says "tailor my resume", "customize my CV", "make a resume for this job", "update my resume for this role", "ATS optimize my resume", "write resume bullets", "rewrite my experience for this JD", "create a targeted resume", or any variation of adapting a resume to a specific opportunity. Also trigger when the user has just analyzed a JD with job-analyzer and wants to proceed to the application step. If someone says "I want to apply" after analyzing a role, this is the next skill.
How this skill is triggered — by the user, by Claude, or both
Slash command
/job-search-agent:resume-tailorThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Generate resumes that are surgically targeted to specific job descriptions — not generic
Generate resumes that are surgically targeted to specific job descriptions — not generic "one-size-fits-all" documents. Every bullet, every keyword, every ordering decision is informed by what the JD is actually asking for, matched against the user's real experience.
Never fabricate. Every claim on the resume must be grounded in the user's profile. If their profile says "working knowledge of Kubernetes" and the JD wants "expert in K8s," do NOT upgrade them to expert. Instead, frame what they actually have honestly: "Deployed and managed containerized services using Docker with Kubernetes orchestration" — which is truthful and still hits the keyword.
Never copy JD language verbatim. Hiring managers and ATS-flagging tools can detect when candidates mirror JD phrasing exactly. Instead, use natural variations of key terms.
career-profile)career-profile-builder firstBefore writing anything, plan the resume strategy:
Pull from the JD:
Decide which roles and achievements from the profile are most relevant:
Choose the optimal resume structure for this specific application:
Write a targeted summary that addresses the JD's core needs in the first sentence.
Formula: [Years] + [domain] + [role type] + [with expertise in JD's top 3 requirements]
Example: "Senior data engineer with 6 years building production ML pipelines and
real-time data infrastructure. Expertise in Spark, Airflow, and dbt with a track
record of reducing pipeline latency by 40% and processing costs by $2M annually.
Passionate about data quality and developer experience."
Each bullet follows the Impact-First Formula:
[Strong action verb] + [what you did] + [for whom/what scale] + [measurable result]
Rules:
Good bullet examples:
Bad bullet examples (avoid):
Organize skills to front-load JD matches:
Run these checks on the finished resume:
Read the appropriate SKILL.md for the output format:
/mnt/skills/public/pdf/SKILL.md/mnt/skills/public/docx/SKILL.md[Full Name]
[City, State] | [Phone] | [Email] | [LinkedIn URL] | [GitHub/Portfolio URL]
PROFESSIONAL SUMMARY
[3-4 line targeted summary]
EXPERIENCE
[Most Recent/Relevant Role]
[Company Name] | [Location] | [Start – End]
• [Impact bullet 1 — most JD-relevant]
• [Impact bullet 2]
• [Impact bullet 3]
• [Impact bullet 4 if highly relevant role]
[Previous Role]
...
SKILLS
[Category]: [Skill1, Skill2, Skill3, ...]
...
EDUCATION
[Degree, Field] | [University] | [Graduation Date]
[Relevant coursework / honors if applicable]
CERTIFICATIONS (if applicable)
[Cert Name] | [Issuer] | [Date]
After generating, run quality checks:
KEYWORD COVERAGE: 78% (14/18 must-have terms found)
✓ Python — Experience section bullet 2, Skills section
✓ Spark — Experience section bullets 1, 3
✗ Snowflake — NOT FOUND. Suggest adding to Skills as "Snowflake (familiar)"
if profile supports it, or address in cover letter.
✓ dbt — Experience section bullet 4
...
If coverage is below 70%, flag it and suggest where to naturally add missing terms.Generate a separate applications/{role-slug}/linkedin-updates.md file listing:
Present the resume to the user with:
Save the resume metadata to the application tracker in the career profile:
{
"resume_version": "resume_[company]_[role]_[date]",
"target_job_id": "jd_xxx",
"keywords_optimized_for": [],
"sections_modified": [],
"achievements_highlighted": []
}
If the user asks for changes:
Be confident in the resume but transparent about trade-offs. "I emphasized your ML pipeline work because that's 3 of their 5 must-haves. Your frontend experience is real but less relevant here, so I kept it to one bullet." The user should understand every decision so they can override if needed.
npx claudepluginhub alan-w25/job-search-agent --plugin job-search-agentCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.