Case Study

CV as Single Source of Truth — how a résumé became an automation project

A concrete example of the single-source-of-truth principle: a bilingual CV that is automatically generated as PDF and website from a single data file.

Build time

One afternoon

Stack

TypeScript · Typst · Astro

Result

1 data source → 2 PDFs + website

The problem

A CV sounds like a simple document. In practice, it's a maintenance problem.

Every change — a new project, an updated technology, a new time period — requires edits in multiple places: the German PDF version, the English one, the personal website, application documents in various formats.

That's four locations for the same information. Four places where inconsistencies arise. The core issue: no single source of truth.

The solution

A single data file contains all CV content bilingually. From there, an automated pipeline generates every output — with tech experience years calculated automatically from real project periods.

One change → one command → all outputs up to date and consistent.

data.ts — one bilingual data source
npm run publish
PDF German (Typst)
PDF English (Typst)
Website: crozzit.de/projects (Astro)
Before-and-after comparison: manually maintained Word document on the left, automatically generated CV PDF on the right
Before: a Word document maintained in four places. After: generated from one data source — DE and EN.

The AI aspect

The TypeScript logic was written by AI. I defined the structure, AI implemented, I reviewed. No loss of control — a different relationship with implementation.

What used to take days: one afternoon.

What this means

This pattern occurs daily in companies: price lists in Excel and on the website, product data in ERP and shop, contract texts in Word and CMS.

The problem is not a CV-specific edge case — it's an architecture problem.

Related topics

The CV project touches on themes that matter in many organizations.

Facing a similar problem?

Let's find out where a single source of truth can save you effort.

Get in touch