If you've ever wrestled with Word or Google Docs trying to keep your resume styling consistent while swapping out content for different job applications, cv-claw offers a cleaner path. This new CLI tool, posted on Hacker News by developer farhan0167, splits resume creation into two separate concerns: structured JSON content and Jinja2/CSS templates. Hand Claude a PDF, screenshot, or job posting in plain language, and it produces the JSON; then run cv-claw render to spit out a polished HTML file you can export directly from your browser. The core insight here is clean separation of concerns. Traditional advice says tailor your resume for each role—but doing that by hand means either maintaining multiple document versions with divergent styling or starting fresh each time and losing consistency. CV-claw sidesteps this by treating your work history as data (validated JSON against a fixed schema) and your visual presentation as a template you can swap without touching the underlying content. Five job applications, one JSON file, five different templates—and no styling drift between them. The tool ships with four agent tasks covering the full workflow: ingest handles PDF/image/text-to-JSON conversion, tailor adapts your resume for specific job descriptions, tweak-template restyles an existing render, and create-template scaffolds new Jinja2 layouts. Everything runs through Claude Code or any Claude surface that supports skills—you describe what you want in plain language, and the agent produces the JSON and triggers renders. No browser automation required, no dev server spinning up, just structured output. Templates themselves are deliberately open-ended. Because they're authored in pure Jinja2 with CSS (which Claude writes), you're not locked into a gallery of pre-built designs. Point Claude at a reference layout or describe your aesthetic preferences, and it generates the template to match. The .cvclaw/templates/ directory is reserved for workspace templates that shadow bundled ones—forking an existing design means dropping in a folder with the same structure, and the discovery system picks it up automatically. Installation keeps things straightforward: pip install cv-claw or uv tool install cv-claw gets you the CLI. The skill ships as a downloadable zip (cv-claw-skill.zip) that installs into ~/.claude/skills/ for Claude Code users or imports through Settings → Capabilities → Skills for claude.ai and Claude Desktop. If you're not using the agent skill, cv-claw init scaffolds a complete example resume you can edit directly before running cv-claw render. PDF export works through your browser's print dialog on the rendered HTML—no native PDF backend required unless you install the extra with pip install 'cv-claw[pdf]'. The validate command lets you sanity-check your JSON against the schema before rendering, which is useful when Claude generates content and you want to catch structural issues early.
Key Takeaways
- CV-claw enforces a clean separation between resume data (JSON) and presentation (Jinja2/CSS), making AI-driven iteration practical
- Agent skills handle ingest, tailoring, template tweaks, and new design creation through natural language prompts
- Template discovery supports both bundled styles and workspace forks via the .cvclaw/templates/ directory structure
- Zero frontend toolchain needed—HTML renders are self-contained and export directly to PDF from any browser
The Bottom Line
This is exactly the kind of workflow abstraction that makes AI agents actually useful for document tasks—no more one-off regenerations with drifting styles. If you're building hiring pipelines or helping people job-search, cv-claw gives you a repeatable system rather than a bag of prompts. For developers tired of resume template hell, this is worth bookmarking.