Back to templates

Template details

cvgen

Local-first CLI and web editor that generates professional CVs as HTML or PDF from JSON data and Handlebars templates.

About this template

cvgen (Jobpare CV Generator) is a local-first tool for producing professional résumés from JSON data and HTML templates, rendered to HTML or print-ready PDF.

What is cvgen?

cvgen takes a single JSON file describing a person's profile, summary, work experiences, education, skills, projects, certifications, and languages, and merges it with a Handlebars HTML template to produce a finished CV. Output is either a browser-friendly HTML file or a PDF generated through Puppeteer when Chrome/Chromium is available. The project runs on Node.js 18+ and ships both a command-line generator and a browser-based visual editor hosted on GitHub Pages.

Key Features

  • JSON data input — the whole CV lives in one version-control-friendly JSON file with a defined schema (profile, summary, experiences, education, skills, projects, certifications, languages).
  • HTML and PDF output — the CLI writes .html directly or converts to .pdf via Puppeteer; --html-only forces HTML even with a .pdf extension.
  • Web-based editor — an online editor at jobpare.github.io/cvgen/ with a form view, a raw JSON view, and live preview; changes autosave to localStorage under the key cvgen_{job_id}.
  • CLI tool — node src/generate.js generate -t <template> -i <input.json> -o <output> with options --html-only, --validate-only, and --help.
  • Template 1 — a single-column, responsive, print-optimized Handlebars template with color-coded sections and skill tags, backed by a published Figma design.
  • URL-driven data loading — the ?data= parameter loads a localStorage job ID, a preloaded example such as backend-cv-schema, or an external URL.
  • Preloaded examples — backend developer and frontend developer JSON schemas are preloaded into localStorage for offline and fast access.
  • postMessage integration — external apps can open the editor and push CV JSON with a SET_CV_JSON message; no response is returned.

Who is it for?

  • Developers: maintain a CV as a JSON file in Git and regenerate HTML or PDF from the command line on each update.
  • Designers and professionals who prefer visuals: use the browser editor with live preview instead of editing code.
  • Product teams integrating CV editing: embed the hosted editor via postMessage and send candidate data programmatically.

What can you do with cvgen?

  • Automate CV builds: run the CLI in scripts to regenerate HTML or PDF output from a stored JSON file.
  • Draft in the browser: edit fields in the form editor or paste raw JSON, preview instantly, then download the JSON.
  • Validate before generating: use --validate-only with the bundled schema (src/validation/schema.js) to catch malformed data first.
  • Load remote CV data: point ?data= at an external URL so an API can feed CV content into the editor.

How does cvgen work?

  1. Write or load a CV JSON file (examples are provided for backend and frontend roles).
  2. Optionally open the web editor to edit and preview, then download the JSON.
  3. Run the CLI with a template and input file to produce HTML or PDF in the output/ directory.

Pros and cons

  • Pro: no LaTeX distribution needed — only Node.js and, for PDF export, Chrome/Chromium.
  • Pro: data is plain JSON that diffs cleanly in Git.
  • Con: PDF generation depends on Chrome/Chromium; without it you fall back to HTML output.
  • Con: only one template (template-1.html) is listed in the repository.

Pricing

cvgen is open source and licensed under the MIT License.

Screenshot of cvgen