cv-optimize
Skill3 starsChanged 8 months agoMITView on GitHub
Resume/CV optimization. Analyze a resume, reposition strengths, and produce an optimized PDF tailored to a target role.
In this repository18 other files it gives its agents.
- architecture-diagramSkill
- case-studySkill
- csv-to-chartSkill
- db-edaSkill
- demo-storytellingSkill
- disk-cleanupSkill
- drawioSkill
- generate-imageSkill
- gh-issue-to-specSkill
- json-validateSkill
- log-triageSkill
- markdown-link-checkSkill
- pdf-to-summarySkill
- postmortemSkill
- product-positioningSkill
- proposal-reviewSkill
- roundtableSkill
- vendor-evalSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
15 rules. About 0 are common, 15 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈15
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 17
Read a resume file (PDF / Markdown / DOCX), perform structured analysis, and produce a target-role-optimized PDF.
- Distinctive: line 23
Resume file: Read from user-provided path (supports PDF / Markdown)
- Distinctive: line 30
If no target role is provided, ask once:
- Distinctive: line 41
After reading the full resume, output a structured analysis:
- Distinctive: line 80
If emphasis points were specified, highlight them in Summary and highlight box
- Distinctive: line 83
Add Tech Stack tags to each role (blockquote or meta style)
- Distinctive: line 86
Use action + contribution + verified outcome.
- Distinctive: line 90
Remove skills irrelevant to target role
- Distinctive: line 95
"Why I'm right for X" highlight box: when target is clear and emphasis points exist
- Distinctive: line 96
"Career transition trajectory": when candidate has obvious career pivots
- Distinctive: line 97
Selected side projects table: keep only 3-5 relevant to target
- Distinctive: line 103
Check the existing PDF toolchain first.
- Distinctive: line 128
No 3+ level nesting — flatten deep structures
- Distinctive: line 138
Use Read tool to verify PDF layout
- Distinctive: line 139
If trailing page is too empty, adjust margin/font-size and regenerate
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
/cv-optimize — Resume Analysis & Optimization
Read a resume file (PDF / Markdown / DOCX), perform structured analysis, and produce a target-role-optimized PDF.
Phase 0: Collect Input
- Resume file: Read from user-provided path (supports PDF / Markdown)
- Target info (from arguments or ask user):
- Target role (e.g., "AI Engineer", "PM", "Data Scientist")
- Target company name (optional, for tailoring)
- JD content or link (optional, for keyword alignment)
- Emphasis points (e.g., "leadership", "bilingual", "career transition")
If no target role is provided, ask once:
What role are you optimizing for? (e.g., AI Engineer / PM / Data Scientist / general)
Any specific strengths you want to emphasize?Phase 1: Resume Analysis
After reading the full resume, output a structured analysis:
## Resume Analysis — {Name}
### Basic Info
- Name / Target title / Total experience / Education
### Strengths (Keep)
1. ... (list 3-5 highlights worth keeping, especially quantified achievements)
### Issues (Needs Optimization)
| # | Issue | Severity | Description |
|---|-------|----------|-------------|
| 1 | ... | High/Med/Low | ... |
### Target Role Match Analysis
| Requirement | Candidate's Experience | Match Level |
|-------------|----------------------|-------------|
| ... | ... | Strong/Medium/Weak/Gap |Mandatory checks (every resume):
- Title vs target alignment
- Summary is focused (no more than 3 key positioning statements)
- Each experience has quantified results
- Skills section aligned with target role (flag outdated skills)
- Timeline is clear and consistent
- Structure depth doesn't exceed 2 levels
- Space allocation proportional to relevance
- Each role includes Tech Stack
Phase 2: Reposition & Optimize
2.1 Positioning Adjustment
- Redefine subtitle (role positioning statement)
- Rewrite Summary (focus on 2-3 key differentiators with numbers)
- If emphasis points were specified, highlight them in Summary and highlight box
2.2 Experience Restructuring
- Add Tech Stack tags to each role (blockquote or meta style)
- Expand highly relevant experiences with section-label sub-blocks
- Condense less relevant experiences to 2-4 bullets
- Use action + contribution + verified outcome. Quantify only from supplied evidence; otherwise use a factual qualitative result and mark missing metrics.
- Preserve the candidate's actual responsibility. Never turn participation or assistance into leadership without evidence.
2.3 Skills Section Rebuild
- Remove skills irrelevant to target role
- Group by category (e.g., AI/ML, Data, Infrastructure, Tools)
- Include target-role keywords only when supported by the candidate's actual experience. Mark gaps rather than inventing skills.
2.4 Special Sections (add when appropriate)
- "Why I'm right for X" highlight box: when target is clear and emphasis points exist
- "Career transition trajectory": when candidate has obvious career pivots
- Selected side projects table: keep only 3-5 relevant to target
Phase 3: Generate Optimized PDF
Check the existing PDF toolchain first. WeasyPrint requires Python and native rendering dependencies; it is not a zero-install guarantee. Ask before downloading packages or installing system dependencies.
3.1 HTML Structure
Element mapping:
- h1 → Name
- .subtitle → Role positioning statement
- .contact → Contact info
- h2 → Major section titles (Summary / Experience / Skills)
- .job-title → Job title per role
- .job-company → Company + location + dates
- .job-meta → Tech Stack (blue left-border blockquote)
- .section-label → Sub-section titles (gray background)
- ul > li → Bullet points (single level only, no nesting)
- table → Competencies / Skills / Projects
- .highlight-box → Special emphasis block (blue left-border + light gray background)3.2 Layout Rules
- Target 2 pages (max 3, never leave a near-empty trailing page)
- Font size: headings 21-22pt / body 9-9.5pt / meta 8.5pt
- Line height 1.5-1.55
- Margins 16-18mm
- Table headers: dark blue background, white text; even rows light gray
- No 3+ level nesting — flatten deep structures
3.3 PDF Generation
# Run only in an approved environment with required native libraries
uv run --with weasyprint python3 script.pyAfter generation:
- Use Read tool to verify PDF layout
- If trailing page is too empty, adjust margin/font-size and regenerate
- Confirm page count is reasonable, tell user the file path
3.4 Output File Naming
{original_file_directory}/{Name}_{Target_Role}_optimized.pdfPhase 4: Change Summary
Output a concise comparison table:
| Item | Original | Optimized |
|------|----------|-----------|
| Positioning | ... | ... |
| Summary | ... | ... |
| Skills | ... | ... |
| Length | ... | ... |Plus notes (e.g., sections where the candidate needs to provide specific numbers).
Design Principles
- One resume, one narrative — all bullets serve the same positioning story
- Quantify > describe — "improved 67%" beats "significantly improved" every time
- Delete > shrink > keep — irrelevant experience: cut to 2 lines, don't waste half a page
- ATS-friendly — ensure target role's core keywords appear in Summary + Skills + Experience
- Clear visual hierarchy — 10-second scan reveals: name → positioning → 3 key numbers → timeline
- No empty words — delete "eager learner", "team player", "value creator" — they carry zero information
Color System
Primary (dark blue):
- Heading text: #0d1b2a
- Section titles: #1b263b
- Accent: #415a77
- Light background: #f0f4f8
- Table header: #1b263b (white text)
- Table even rows: #f8f9fa
- Section labels: #e8edf2Quality Gates
- Dates, employers, degrees, responsibility and metrics trace to input evidence.
- Missing metrics remain questions or placeholders, never invented percentages.
- HTML escapes user content and uses local assets; no remote images, fonts or CSS.
- PDF generation does not fetch remote URLs or arbitrary local files referenced by input.
- Inspect layout AND extract text to check reading order; do not guarantee ATS compatibility.
- Preserve the original and use a new output path. DOCX requires a DOCX reader; do not claim direct Read support.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

