Pixel-exact A4 PDFs from HTML with Gotenberg
How CVolve exports PDFs that match the preview exactly: Chromium in Gotenberg, A4 print settings, real page counts and a browser locked off the network.
An open-source, self-hostable CV builder: one master profile, many tailored CVs, and an AI assistant that only proposes changes you approve.
Most people rewrite their CV from scratch for every application. Old versions get lost in folders called CV_final_v3_REAL.docx. The design breaks when you add one more job. And AI tools that "improve" your CV often rewrite things you never asked them to touch.
CVolve (CV + Evolve) fixes this with a simple idea: keep your whole career in one place, and create as many CVs from it as you need.
You fill in a master profile once: jobs, education, skills, projects, languages and certifications. You can type it in, or import a Markdown file or an existing CV in PDF or DOCX. The AI reads it and you review everything before it is saved. Every new CV copies its content from this profile. Then you choose which jobs, sections and bullets to show, and you can reword anything for that CV without changing the original.
In CVolve, content and styling are separate. You write the words, and the template decides how they look. That means:
The live preview shows red guides where each page ends, so you know before exporting if the CV runs onto a second page.
CVolve can import templates in many formats: its own .cvolve packages, HTML with simple Mustache placeholders, Twig HTML, JSON Resume themes, zipped HTML, and even a finished HTML CV that the AI converts into a template. Designers can build new templates with the companion CVolve Template Maker.
The AI assistant can help you:
But it never changes your CV on its own. Every suggestion appears as a before/after diff with two buttons: Apply or Discard. A version snapshot is saved before anything is applied, so you can always go back. The AI only changes words, never the template's design, and it never adds fields the template does not support.
You choose the AI provider: OpenAI, Anthropic Claude, Google Gemini, Mistral, a local Ollama model, or any OpenAI-compatible server. You can also run CVolve with no AI at all.
Before you apply, CVolve's checker reviews the CV:
The version history keeps automatic and manual snapshots. You can compare any two versions side by side and restore one with a single click.
CVolve has a REST API (/api/v1) and a Model Context Protocol (MCP) server (/mcp), both secured with personal API tokens. Connect Claude Desktop, Cursor or any MCP client, and your AI agent can read your profile, create CVs and propose changes. The same approval rules apply as in the app.
You can also share a CV through a public read-only link, and switch it off whenever you want.
CVolve is self-hosted. Your career history lives in your own database, on your own server or laptop, not in someone else's cloud. Starting it takes one command:
git clone https://github.com/future-site-ai/cvolve.git && cd cvolve docker compose up -d --build
Then open http://localhost:8080. The first start runs the database migrations, installs the preset templates and creates a demo account with a sample profile and two CVs.
CVolve is built with Symfony 7.4 LTS on PHP 8.3 and PostgreSQL 16, with Twig, Stimulus and Turbo on the front end. AI runs through Neuron AI, PDF export through Gotenberg and DOCX export through PHPWord. Background jobs (exports, AI imports, emails) run on Symfony Messenger. The template engine lives in a shared, sandboxed template kit that CVolve Template Maker uses too, so a template behaves the same in both apps.
CVolve is free and open source under the MIT License. You can use it, change it and build on it, including for commercial work.
We welcome contributions of every size: bug reports, ideas, translations, templates, documentation and code. Read the contributing guide and look for issues labelled good first issue.
If CVolve is useful to you, please star it on GitHub. It helps other people find the project.
How CVolve exports PDFs that match the preview exactly: Chromium in Gotenberg, A4 print settings, real page counts and a browser locked off the network.