From job-hunt-toolkit
Use when the user asks to "export the PDF", "regenerate PDF", "build PDF from HTML", "convert HTML CV to PDF", "refresh the PDF", "HTML to PDF", "render CV to PDF", "produce PDF from HTML", "generate PDF", or after editing a CV HTML and needs a fresh PDF. Converts an HTML CV into a PDF using headless Chromium, ensuring consistent rendering across all applications.
How this skill is triggered — by the user, by Claude, or both
Slash command
/job-hunt-toolkit:export-pdf [html-file] (optional; defaults to the current file context or detected CV)[html-file] (optional; defaults to the current file context or detected CV)This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Convert an HTML CV to PDF using headless Chromium; every workspace PDF should use this skill for consistent rendering.
Convert an HTML CV to PDF using headless Chromium; every workspace PDF should use this skill for consistent rendering.
prepare-to-send to verify PDF freshness. NOT called by new-application (user tailors HTML first, then runs export-pdf).*_CV.html exists in the current working directory, use it.Check in order:
which chromium || which chromium-browser || which google-chrome || which 'Google Chrome' || ls /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome 2>/dev/null
Prefer this order on macOS:
/Applications/Google Chrome.app/Contents/MacOS/Google Chrome/Applications/Chromium.app/Contents/MacOS/Chromiumchromium on PATHchromium-browser on PATHIf none found, fail loudly:
ERROR: No Chromium-based browser found. Install Chrome (brew install --cask google-chrome) or Chromium (brew install --cask chromium).
Do NOT silently fall back to another PDF tool — cross-application PDF consistency is critical.
Fail fast if not.
.pdf extension.Use scripts/html-to-pdf.sh which wraps the browser invocation. Call it with absolute paths:
bash ${PLUGIN_ROOT}/skills/export-pdf/scripts/html-to-pdf.sh <html-absolute-path> <pdf-absolute-path>
Where ${PLUGIN_ROOT} resolves to the plugin's root directory.
exiftool is installed, print a quick summary of PDF metadata so the user sees what leaked inUse Read to inspect the produced PDF text. These strings almost certainly mean Chromium rendered a browser error page rather than the CV:
This page isn't workingERR_CONNECTION_REFUSEDchrome-error://This site can't be reachedHTTP ERRORIf any such string is found, fail immediately:
ERROR: PDF content suggests render failure; re-run export-pdf or inspect HTML.
Do NOT report success or proceed to scrubbing if this check fails.
Auto-invoke scrub-pdf-metadata on the produced PDF as the final step:
$job-hunt-toolkit:scrub-pdf-metadata <pdf-absolute-path>
Every exported PDF is scrubbed, even when attached directly without prepare-to-send.
✓ Exported: <html-filename> → <pdf-filename>
Size: <bytes>
Metadata scrubbed.
--print-to-pdf writes to CWD otherwise, which is unpredictable across tool calls.scrub-pdf-metadata; prepare-to-send also verifies scrubbing.TODO, <!-- draft -->, [placeholder] — these will appear in the PDF unless scrubbed at HTML level.| Scenario | Action |
|---|---|
| Chromium not found | Fail loudly with install instructions |
| HTML file missing or unreadable | Fail loudly |
| Chromium exits non-zero | Print stderr, fail loudly |
| Output PDF < 1KB | Treat as failure; delete partial PDF |
| Target PDF is read-only / directory not writable | Fail loudly |
Remind user:
$job-hunt-toolkit:prepare-to-send before attaching to any application for a final freshness and content checkGuides reception of code review feedback: verify before implementing, avoid performative agreement, push back with technical reasoning when needed.
Design banners for social media, ads, website heroes, and print with multiple art direction options and AI-generated visuals.
npx claudepluginhub alex-kopylov/zweihander --plugin job-hunt-toolkit