/tailor-resume
Generate an ATS-optimized resume tailored to a specific job posting. Creates clean HTML you can print to PDF. Works for any industry. Use when someone says 'tailor my resume', 'make me a resume', 'create a resume for', or 'update my resume for'.
$ npx -y skills add andrew-shwetzer/career-ops-plugin-do-not-fork-currently-updating-v2- --skill tailor-resume --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/tailor-resume
Context preview
The summary Claude sees to decide when to auto-load this skill.
Generate an ATS-optimized resume tailored to a specific job posting. Creates clean HTML you can print to PDF. Works for any industry. Use when someone says 'tailor my resume', 'make me a resume', 'create a resume for', or 'update my resume for'.
SKILL.md
tailor-resume.SKILL.mdname: tailor-resume
description: "Generate an ATS-optimized resume tailored to a specific job posting. Creates clean HTML you can print to PDF. Works for any industry. Use when someone says 'tailor my resume', 'make me a resume', 'create a resume for', or 'update my resume for'."
argument-hint: "<company name or 'for the latest evaluation'>"
user-invocable: true
allowed-tools:
- Read
- Write
- Glob
Tailor Your Resume
Generate an ATS-optimized resume customized for a specific job posting. Read references/ats-rules.md before generating any HTML.
Step 0: Load Context
1. Read `data/profile.yml` for structured background data 2. Read `data/resume.md` if it exists (full resume text for detail) 3. Find the target evaluation:
- If the user specified a company/role, search `data/evaluations/` for a match
- If "latest" or no argument, use the most recent evaluation file
- If ambiguous, list recent evaluations and ask which one
4. If no evaluation exists: > "I need to evaluate the job first so I know what to emphasize. > Paste the job posting and I'll assess it, then generate your resume."
Step 1: Keyword Extraction
From the evaluation + JD, extract 15-20 keywords that ATS systems scan for:
- Exact phrases from "Required Qualifications" (highest priority)
- Industry-standard terms (not creative synonyms)
- Certifications, tools, methodologies named in the JD
- Action verbs that match the responsibilities section
Step 2: Detect Language & Locale
- JD in English + US company: Letter paper (8.5" x 11")
- JD in English + non-US: A4
- JD in another language: match that language, use A4
- Resume language MUST match JD language
Step 3: Build Resume Content
Using the evaluation's Block E (Tailoring Plan) as a guide, construct each resume section from profile data:
Professional Summary (3-4 lines)
- Open with years of experience + core identity
- Include 3-5 top keywords from the JD naturally
- End with a forward-looking statement connecting to this specific role
- Use the narrative.headline from profile as a starting point
Experience Section
- Include all roles from work_history, most relevant FIRST
- For each role: Company, Title, Dates on one line
- 3-5 bullets per role, ordered by relevance to THIS JD
- Each bullet: Action verb + what you did + quantified result
- Mirror JD language exactly (if JD says "project management",
write "project management", not "programme management")
- Pull specific numbers from proof_points and work_history highlights
Education Section
- Degree, School, Year
- Include relevant coursework or honors only if recent grad
Skills Section
- List JD keywords FIRST, then additional skills
- Group by category if 10+ skills (Technical, Tools, Methodologies, etc.)
- Include both acronym and full form: "Search Engine Optimization (SEO)"
Certifications Section (if applicable)
- From credentials in profile
- Include status, jurisdiction, number if relevant
Projects / Portfolio (if applicable and relevant)
- Only include if the archetype values it (Creative, Technology)
- Brief description + link + key metric
Step 4: Generate HTML
Read the template from references/resume-template.html.
Fill all `{{PLACEHOLDER}}` slots with the generated content.
ATS compliance rules (from references/ats-rules.md):
- Single column ONLY
- Standard section headers exactly: "Experience", "Education", "Skills"
- No images, icons, or graphics
- All text selectable (no text-in-images)
- Standard fonts: Arial, Calibri, Georgia, or system sans-serif
- Font size: 10-12pt body, 14-16pt name
- Margins: 0.5-1 inch
- No headers/footers (ATS strips them)
- Max 2 pages
Step 5: Output
Write the HTML to `data/resumes/{company-slug}-{role-slug}.html`.
Show the user a preview of the content (not the HTML code):
## Resume Preview: {Name} - {Target Role} at {Company}
**Summary:** {first 2 lines}
**Experience:**
- {Role 1} at {Company} ({dates}) - {first bullet}
- {Role 2} at {Company} ({dates}) - {first bullet}
**Skills:** {top 10}
**Keywords matched:** {n}/20 from the JDStep 6: PDF Instructions
> "Your tailored resume is saved at `data/resumes/{filename}.html`. > > **To save as PDF:** > 1. Open the file in your browser (double-click it) > 2. Press **Cmd+P** (Mac) or **Ctrl+P** (Windows) > 3. Select **Save as PDF** > 4. Done! > > The HTML is designed to print cleanly. What you see is what you get."
Step 7: Update Tracker
Update the matching row in `data/applications.md`:
- Status: "Resume Ready" (if currently "Evaluated")
- Notes: append "Resume: {filename}"
Step 8: Next Steps
> "Resume is ready! Next steps: > - **Review it** by opening the HTML file > - **Apply** by saying 'help me with the {company} application' > - **Compare** this role with others: 'compare my options'"
Read more
name: tailor-resume description: "Generate an ATS-optimized resume tailored to a specific job posting. Creates clean HTML you can print to PDF. Works for any industry. Use when someone says 'tailor my resume', 'make me a resume', 'create a resume for', or 'update my resume for'." argument-hint: "<company name or 'for the latest evaluation'>" user-invocable: true allowed-tools: - Read - Write - Glob
Tailor Your Resume
Generate an ATS-optimized resume customized for a specific job posting. Read references/ats-rules.md before generating any HTML.
Step 0: Load Context
1. Read `data/profile.yml` for structured background data 2. Read `data/resume.md` if it exists (full resume text for detail) 3. Find the target evaluation:
- If the user specified a company/role, search `data/evaluations/` for a match
- If "latest" or no argument, use the most recent evaluation file
- If ambiguous, list recent evaluations and ask which one
4. If no evaluation exists: > "I need to evaluate the job first so I know what to emphasize. > Paste the job posting and I'll assess it, then generate your resume."
Step 1: Keyword Extraction
From the evaluation + JD, extract 15-20 keywords that ATS systems scan for:
- Exact phrases from "Required Qualifications" (highest priority)
- Industry-standard terms (not creative synonyms)
- Certifications, tools, methodologies named in the JD
- Action verbs that match the responsibilities section
Step 2: Detect Language & Locale
- JD in English + US company: Letter paper (8.5" x 11")
- JD in English + non-US: A4
- JD in another language: match that language, use A4
- Resume language MUST match JD language
Step 3: Build Resume Content
Using the evaluation's Block E (Tailoring Plan) as a guide, construct each resume section from profile data:
Professional Summary (3-4 lines)
- Open with years of experience + core identity
- Include 3-5 top keywords from the JD naturally
- End with a forward-looking statement connecting to this specific role
- Use the narrative.headline from profile as a starting point
Experience Section
- Include all roles from work_history, most relevant FIRST
- For each role: Company, Title, Dates on one line
- 3-5 bullets per role, ordered by relevance to THIS JD
- Each bullet: Action verb + what you did + quantified result
- Mirror JD language exactly (if JD says "project management",
write "project management", not "programme management")
- Pull specific numbers from proof_points and work_history highlights
Education Section
- Degree, School, Year
- Include relevant coursework or honors only if recent grad
Skills Section
- List JD keywords FIRST, then additional skills
- Group by category if 10+ skills (Technical, Tools, Methodologies, etc.)
- Include both acronym and full form: "Search Engine Optimization (SEO)"
Certifications Section (if applicable)
- From credentials in profile
- Include status, jurisdiction, number if relevant
Projects / Portfolio (if applicable and relevant)
- Only include if the archetype values it (Creative, Technology)
- Brief description + link + key metric
Step 4: Generate HTML
Read the template from references/resume-template.html.
Fill all `{{PLACEHOLDER}}` slots with the generated content.
ATS compliance rules (from references/ats-rules.md):
- Single column ONLY
- Standard section headers exactly: "Experience", "Education", "Skills"
- No images, icons, or graphics
- All text selectable (no text-in-images)
- Standard fonts: Arial, Calibri, Georgia, or system sans-serif
- Font size: 10-12pt body, 14-16pt name
- Margins: 0.5-1 inch
- No headers/footers (ATS strips them)
- Max 2 pages
Step 5: Output
Write the HTML to `data/resumes/{company-slug}-{role-slug}.html`.
Show the user a preview of the content (not the HTML code):
## Resume Preview: {Name} - {Target Role} at {Company}
**Summary:** {first 2 lines}
**Experience:**
- {Role 1} at {Company} ({dates}) - {first bullet}
- {Role 2} at {Company} ({dates}) - {first bullet}
**Skills:** {top 10}
**Keywords matched:** {n}/20 from the JDStep 6: PDF Instructions
> "Your tailored resume is saved at `data/resumes/{filename}.html`. > > **To save as PDF:** > 1. Open the file in your browser (double-click it) > 2. Press **Cmd+P** (Mac) or **Ctrl+P** (Windows) > 3. Select **Save as PDF** > 4. Done! > > The HTML is designed to print cleanly. What you see is what you get."
Step 7: Update Tracker
Update the matching row in `data/applications.md`:
- Status: "Resume Ready" (if currently "Evaluated")
- Notes: append "Resume: {filename}"
Step 8: Next Steps
> "Resume is ready! Next steps: > - **Review it** by opening the HTML file > - **Apply** by saying 'help me with the {company} application' > - **Compare** this role with others: 'compare my options'"
A Claude Cowork plugin that turns your job search into a system. Evaluate job postings, generate ATS-optimized resumes, scan career portals, track applications, and more.
Other skills on career-ops.
- /apply
Help fill out a job application form. Generates personalized answers for every field using your profile and evaluation. Never auto-submits. Use when someone says 'help me apply', 'fill out this application', or 'application for'.
Open skill - /compare
Compare multiple job opportunities side by side. See scores, compensation, pros/cons, and a recommendation. Use when someone says 'compare my options', 'which job should I take', 'rank my opportunities', or 'compare these roles'.
Open skill - /evaluate
Evaluate how well a job posting matches your background. Paste a JD or URL and get an honest A-F scored assessment with match analysis, compensation research, positioning strategy, and interview prep. Use when someone says 'evaluate this job', 'should I apply', 'how well do I
Open skill - /help
See all available career-ops skills, what they do, and which one to use next based on where you are in your job search. Use when someone says 'help', 'what can you do', 'how does this work', or seems unsure what to do next.
Open skill - /outreach
Draft personalized outreach messages for LinkedIn connections, hiring managers, or recruiters. Creates targeted messages using a hook + proof + proposal structure. Under 300 characters for connection requests. Use when someone says 'draft outreach', 'message the recruiter',
Open skill - /research
Research a company before applying or interviewing. Get an intelligence brief with culture, financials, recent news, team structure, key contacts, and smart interview questions. Use when someone says 'research this company', 'tell me about', 'what do you know about', or 'prep me
Open skill

