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
- Read
data/profile.yml for structured background data
- Read
data/resume.md if it exists (full resume text for detail)
- 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
- 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 JD
Step 6: PDF Instructions
"Your tailored resume is saved at data/resumes/{filename}.html.
To save as PDF:
- Open the file in your browser (double-click it)
- Press Cmd+P (Mac) or Ctrl+P (Windows)
- Select Save as PDF
- 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'"
Source: andrew-shwetzer/career-ops-plugin — distributed by TomeVault.
1---2name: tailor-resume3description: 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'. Use when this capability is needed.4---56# Tailor Your Resume78Generate an ATS-optimized resume customized for a specific job posting.9Read references/ats-rules.md before generating any HTML.1011## Step 0: Load Context12131. Read `data/profile.yml` for structured background data142. Read `data/resume.md` if it exists (full resume text for detail)153. Find the target evaluation:16 - If the user specified a company/role, search `data/evaluations/` for a match17 - If "latest" or no argument, use the most recent evaluation file18 - If ambiguous, list recent evaluations and ask which one194. If no evaluation exists:20 > "I need to evaluate the job first so I know what to emphasize.21 > Paste the job posting and I'll assess it, then generate your resume."2223## Step 1: Keyword Extraction2425From the evaluation + JD, extract 15-20 keywords that ATS systems scan for:2627- Exact phrases from "Required Qualifications" (highest priority)28- Industry-standard terms (not creative synonyms)29- Certifications, tools, methodologies named in the JD30- Action verbs that match the responsibilities section3132## Step 2: Detect Language & Locale3334- JD in English + US company: Letter paper (8.5" x 11")35- JD in English + non-US: A436- JD in another language: match that language, use A437- Resume language MUST match JD language3839## Step 3: Build Resume Content4041Using the evaluation's Block E (Tailoring Plan) as a guide, construct42each resume section from profile data:4344### Professional Summary (3-4 lines)45- Open with years of experience + core identity46- Include 3-5 top keywords from the JD naturally47- End with a forward-looking statement connecting to this specific role48- Use the narrative.headline from profile as a starting point4950### Experience Section51- Include all roles from work_history, most relevant FIRST52- For each role: Company, Title, Dates on one line53- 3-5 bullets per role, ordered by relevance to THIS JD54- Each bullet: Action verb + what you did + quantified result55- Mirror JD language exactly (if JD says "project management",56 write "project management", not "programme management")57- Pull specific numbers from proof_points and work_history highlights5859### Education Section60- Degree, School, Year61- Include relevant coursework or honors only if recent grad6263### Skills Section64- List JD keywords FIRST, then additional skills65- Group by category if 10+ skills (Technical, Tools, Methodologies, etc.)66- Include both acronym and full form: "Search Engine Optimization (SEO)"6768### Certifications Section (if applicable)69- From credentials in profile70- Include status, jurisdiction, number if relevant7172### Projects / Portfolio (if applicable and relevant)73- Only include if the archetype values it (Creative, Technology)74- Brief description + link + key metric7576## Step 4: Generate HTML7778Read the template from references/resume-template.html.7980Fill all `{{PLACEHOLDER}}` slots with the generated content.8182ATS compliance rules (from references/ats-rules.md):83- Single column ONLY84- Standard section headers exactly: "Experience", "Education", "Skills"85- No images, icons, or graphics86- All text selectable (no text-in-images)87- Standard fonts: Arial, Calibri, Georgia, or system sans-serif88- Font size: 10-12pt body, 14-16pt name89- Margins: 0.5-1 inch90- No headers/footers (ATS strips them)91- Max 2 pages9293## Step 5: Output9495Write the HTML to `data/resumes/{company-slug}-{role-slug}.html`.9697Show the user a preview of the content (not the HTML code):9899```100## Resume Preview: {Name} - {Target Role} at {Company}101102**Summary:** {first 2 lines}103104**Experience:**105- {Role 1} at {Company} ({dates}) - {first bullet}106- {Role 2} at {Company} ({dates}) - {first bullet}107108**Skills:** {top 10}109110**Keywords matched:** {n}/20 from the JD111```112113## Step 6: PDF Instructions114115> "Your tailored resume is saved at `data/resumes/{filename}.html`.116>117> **To save as PDF:**118> 1. Open the file in your browser (double-click it)119> 2. Press **Cmd+P** (Mac) or **Ctrl+P** (Windows)120> 3. Select **Save as PDF**121> 4. Done!122>123> The HTML is designed to print cleanly. What you see is what you get."124125## Step 7: Update Tracker126127Update the matching row in `data/applications.md`:128- Status: "Resume Ready" (if currently "Evaluated")129- Notes: append "Resume: {filename}"130131## Step 8: Next Steps132133> "Resume is ready! Next steps:134> - **Review it** by opening the HTML file135> - **Apply** by saying 'help me with the {company} application'136> - **Compare** this role with others: 'compare my options'"137138---139> Source: [andrew-shwetzer/career-ops-plugin](https://github.com/andrew-shwetzer/career-ops-plugin) — distributed by [TomeVault](https://tomevault.io).140<!-- tomevault:4.0:skill_md:2026-06-20 -->