My personal CV in reproducible form.
Find a file
Marty Oehme febdcb9796
feat(lib): Add entry hiding with content boolean
Add the simple value `hidden: true` to any entry (experience, education,
volunteering, skills, language, etc) and it will not be displayed on the
final output.
2025-09-15 10:30:11 +02:00
lib feat(lib): Add entry hiding with content boolean 2025-09-15 10:30:11 +02:00
.gitignore ref(repo): Refactor resume into single importable function 2025-03-19 12:53:42 +01:00
content.yml feat(content): Add relevant IT modules 2025-08-25 11:37:57 +02:00
cv.typ feat(CV): Add digital work section 2025-05-23 16:11:36 +02:00
Makefile Ensure build dir before make 2025-02-04 10:31:48 +01:00
README.md docs: Update README 2025-08-25 11:53:43 +02:00
resume.typ ref(repo): Refactor resume into single importable function 2025-03-19 12:53:42 +01:00

Data-driven CV & resume

My personal CV and resume files, automatically generated from a multi-lingual yaml data file.

The CV contains a full run-down of my educational and job experience to date, while the resume is more compact, reduced to a single page and can be tailored for a specific job area or expertise.

Is called like the following:

#resume(
    yaml("content.yml"),
    main: ("experience", "education", "volunteering", "skills", "languages"),
    sidebar: ("volunteering", "skills")
)

This is the default invocation, though sidebar and main body sections can be exchanged at will. The following sections currently exist:

  • education
  • experience, subdivided in "experience", "experience_by_client" and "experience_by_type"
  • languages
  • skills
  • summary
  • volunteering

Sections in the main body or sidebar can be reordered at will.

Any individual entry can be hidden by adding a simple hidden: true to the relevant YAML entry (works for all sections).

A simple example education entry:

education:
  - place:
      de: Universität der Welt, Planet Erde
      en: University of the World, Planet Earth
    title:
      de: Globale Friedensstiftung, MA
      en: Global Peace Foundations, MA
    date:
      de: 2016
      en: 2016
    hidden: false

Advanced experience presentation settings

The experience section has 3 forms:

Purely chronological ("experience"), which is the default; separated by client worked for ("experience_by_client"); separated by the type of work undertaken, then further separated by client worked for ("experience_by_client").

These options are intended especially for self-employed / entrepreneurial CVs. They let you subdivide your work experience whichever way works best, and additionally divide work undertaken for your own employ or salaried positions for example.

Data-driven uses

Since the CV data is separated from the CV presentation, it is possible to create different presentations for the same underlying data structures.

One fun example is my self-presentation as a Linux manual page. Other, more reasonable, uses are encouraged, such as presentation embedded within an HTML page, different print and screen-reading documents, or short calling cards.