npx claudepluginhub reggiechan74/jobops --plugin jobopsThis skill uses the workspace's default tool permissions.
I'll convert your markdown resume into a professionally designed PDF using the frontend-design skill and Playwright rendering.
Formats resumes for ATS compatibility using clean, scannable layouts, standard fonts, spacing, and structure while avoiding parsing-breaking elements.
Generates ATS-optimized resumes tailored to job postings from master resumes or experience data, producing .docx files via Python rendering.
Builds, customizes, analyzes ATS-optimized resumes and exports to PDF. Use for creating from scratch, tailoring for roles, improvement recommendations, or format conversion.
Share bugs, ideas, or general feedback.
I'll convert your markdown resume into a professionally designed PDF using the frontend-design skill and Playwright rendering.
Arguments:
$1: Path to markdown resume file (required, absolute or relative to workspace)$2: Theme choice (optional): modern | classic | minimal (default: modern)$3: Target page count (optional): 1 | 2 | 3 (default: auto-detect based on content)Available Themes:
Page Count Options:
First, I'll verify the markdown resume file exists and read its contents:
$1 — resolve as given (absolute path used verbatim; relative path resolved against the current working directory)$2 (defaults to modern if not specified)$3 (defaults to auto if not specified)Read the resume file and validate it contains resume-like content (name, experience, skills, etc.).
Parse page count argument:
$3 is 1, 2, or 3: Use as target page count$3 is auto or not specified: Auto-detect based on content length$3 is invalid: Default to auto with a warningAnalyze the markdown content to identify resume sections:
Load the base CSS and selected theme:
${CLAUDE_PLUGIN_ROOT}/styles/resume-base.css (core print/PDF styles bundled with the plugin)${CLAUDE_PLUGIN_ROOT}/styles/resume-themes/{theme}.css (theme-specific styles bundled with the plugin)Combine into a single stylesheet for the HTML document.
Using the frontend-design skill, generate a professionally structured HTML resume that:
Uses semantic HTML5 structure:
<div class="resume">
<header class="resume-header">...</header>
<section class="summary">...</section>
<section class="experience">...</section>
<section class="skills">...</section>
<section class="education">...</section>
</div>
Applies the CSS classes defined in resume-base.css:
.resume-header, .resume-name, .resume-title, .contact-info.section-title, .experience-item, .item-header, .item-title.achievements, .skill-tags, .skill-tag.education-item, .degree, .institutionMaintains content fidelity:
Optimizes layout for target page count:
For 1-page resume:
| Setting | Value |
|---|---|
| Base font | 9pt |
| @page margin | 0.4in 0.5in |
| Section margin-bottom | 0.6rem |
| Experience item margin-bottom | 0.5rem |
| Achievement line-height | 1.3 |
| Achievement margin-bottom | 0.15rem |
| Summary | Condensed to 2-3 sentences max |
| Skills | Inline comma-separated, no bullets |
For 2-page resume (default):
| Setting | Value |
|---|---|
| Base font | 10pt |
| @page margin | 0.55in 0.6in |
| Section margin-bottom | 1.15rem |
| Experience item margin-bottom | 1rem |
| Achievement line-height | 1.48 |
| Achievement margin-bottom | 0.3rem |
| Summary | Full professional summary |
| Skills | Categorized with bullets |
For 3-page resume:
| Setting | Value |
|---|---|
| Base font | 10.5pt |
| @page margin | 0.6in 0.65in |
| Section margin-bottom | 1.4rem |
| Experience item margin-bottom | 1.2rem |
| Achievement line-height | 1.55 |
| Achievement margin-bottom | 0.4rem |
| Summary | Comprehensive with key highlights |
| Skills | Expanded with proficiency levels |
IMPORTANT Design Requirements:
Generate a complete HTML document structure:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{Candidate Name} - Resume</title>
<style>
/* Base CSS content here */
/* Theme CSS content here */
/* Any additional dynamic styles */
</style>
</head>
<body>
<div class="resume">
<!-- Generated resume HTML -->
</div>
</body>
</html>
Save the generated HTML to a temporary file for Playwright to render:
/tmp/resume_temp_{timestamp}.htmlUse the Playwright MCP to render the HTML to PDF:
Navigate to the HTML file:
mcp__playwright__browser_navigate to file:///tmp/resume_temp_{timestamp}.html
Wait for content to load:
mcp__playwright__browser_wait_for with appropriate timeout
Generate PDF with professional settings:
Save PDF to output location:
{original_name}_formatted.pdfCRITICAL: The formatting process is NOT complete until the PDF has been visually reviewed and confirmed to be properly formatted.
After generating the PDF, you MUST:
| Criteria | Target | Red Flags |
|---|---|---|
| Page count | Match target (1, 2, or 3 pages as specified) | Off by +/-1 page from target |
| Page balance | Even content distribution across pages | >25% empty space on final page |
| Header spacing | Clear hierarchy, breathing room | Cramped or excessive gaps |
| Section spacing | Consistent, professional margins | Sections touching or too spread |
| Font readability | Clear at normal viewing distance | Too small (<8.5pt) or too large (>12pt) |
| Content overflow | All text visible and complete | Cut-off text, orphaned bullets |
| Page breaks | Break between logical sections | Mid-bullet or mid-sentence breaks |
Page count validation:
1 and result is 2+: Tighten spacing aggressively2 and result is 1: Expand spacing to fill second page2 and result is 3: Reduce spacing to fit on two pages3 and result is 2: Expand spacing for comfortable three-page layoutIf ANY quality criteria fail, automatically adjust and regenerate based on target page count:
Condensing (need fewer pages):
| Adjustment | Small (-0.25 page) | Medium (-0.5 page) | Large (-1 page) |
|---|---|---|---|
| Base font | -0.25pt | -0.5pt | -1pt |
| Line-height | -0.02 | -0.05 | -0.1 |
| Section margin | -10% | -20% | -30% |
| Bullet spacing | -0.05rem | -0.1rem | -0.15rem |
| @page margin | -0.05in | -0.1in | -0.15in |
Expanding (need more pages):
| Adjustment | Small (+0.25 page) | Medium (+0.5 page) | Large (+1 page) |
|---|---|---|---|
| Base font | +0.25pt | +0.5pt | +0.75pt |
| Line-height | +0.02 | +0.05 | +0.08 |
| Section margin | +10% | +20% | +30% |
| Bullet spacing | +0.05rem | +0.1rem | +0.15rem |
| @page margin | +0.05in | +0.08in | +0.1in |
For page 1 mostly empty (content pushed to later pages):
page-break-inside: avoid on sections.experience-item and similar small elements have page-break protectionsection elementsFor uneven page distribution:
1-page specific constraints:
3-page specific constraints:
After automatic adjustments, if the result still needs refinement:
Show the user the current PDF screenshot
Ask specific questions:
Accept user tweaks:
Regenerate with user feedback and repeat until approved
/tmp/resume_temp_*.html files created during iterationThe generated PDF will include:
Paths are user-supplied. The examples below use the v2.0 application-centric layout (Applications/{slug}/...) and top-level analysis folders, but any absolute or relative path is accepted.
# Modern theme, auto page count (default)
/formatresume Applications/AcmeCorp_Director_2026-04-23/resume/step3_final.md
# Classic theme, auto page count
/formatresume Applications/FinCo_VP_2026-04-23/resume/step3_final.md classic
# Minimal theme, auto page count
/formatresume Applications/Startup_Engineer_2026-04-23/resume/step3_final.md minimal
# Modern theme, force 1-page (entry-level/targeted)
/formatresume Applications/Startup_Analyst_2026-04-23/resume/step3_final.md modern 1
# Classic theme, force 2-page (standard professional)
/formatresume Applications/Enterprise_Manager_2026-04-23/resume/step3_final.md classic 2
# Modern theme, force 3-page (executive/academic)
/formatresume Applications/GlobalCorp_VP_2026-04-23/resume/step3_final.md modern 3
# Absolute paths are accepted too
/formatresume /workspaces/JobOps/Applications/AcmeCorp_Director_2026-04-23/resume/step3_final.md modern 2
When to use each page count:
| Pages | Best For | Typical Experience |
|---|---|---|
| 1 | Entry-level, career changers, targeted applications | 0-5 years |
| 2 | Mid-career professionals, most job applications | 5-15 years |
| 3 | Senior executives, academics, extensive portfolios | 15+ years |
Invoke the frontend-design skill to generate the HTML structure. The skill will:
For resumes with extensive experience:
If any step fails:
Now executing the resume formatting pipeline with file $1, theme $2, and target pages $3...