CV-nixCfg
Health Warn
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 5 GitHub stars
Code Pass
- Code scan — Scanned 6 files during light audit, no dangerous patterns found
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
Curriculum Vitae — LaTeX source, compiled PDFs, markdown fragments for AI agents, and Claude Code configuration; tooling managed by flake-parts with a Nix devshell providing the TeX Live environment
CV-nixCfg
A reproducible LaTeX CV framework powered by Nix flakes — personal data lives in a separate private repo.Contents
Overview
A LaTeX CV framework using the moderncv document class. The entire toolchain — texlive, formatters, pre-commit hooks, CI, and Europass PDF automation — is declared in a Nix flake.
Personal data (name, contact info, CV sections, Europass XML) is supplied via a separate cv-data flake input so the framework can be open-sourced while keeping your content private.
- Template:
tex/cv.tex— preamble +\input{cv-data/...}section hooks - Example data:
data.example/— placeholder structure showing what your data repo should contain - Europass builder:
europass/build.py— Playwright automation for rendering via europass.europa.eu
Using Your Own Data
- Create a private repo (e.g.
you/cv-data) with the layout shown indata.example/:
cv-data/
├── tex/
│ ├── header.tex # \name, \phone, \email, \social, \extrainfo
│ ├── summary.tex
│ ├── skills.tex
│ ├── experience.tex
│ ├── research.tex
│ ├── projects.tex
│ ├── hackathons.tex
│ ├── honours.tex
│ ├── education.tex
│ └── languages.tex
├── europass/
│ └── cv.xml
└── final-pdfs/ # output PDFs written here by build scripts
- Override the
cv-datainput:
nix flake lock --override-input cv-data "git+ssh://[email protected]/you/cv-data"
- Enter the devshell — it creates
tex/cv-data/→ your data'stex/automatically:
nix develop # or: direnv allow
Dev Environment
nix develop
# or with direnv:
direnv allow
The devshell provides texlive, python3 + Playwright, xmllint, nixd, alejandra, and installs git hooks. It also sets CV_DATA_DIR and symlinks tex/cv-data/ to your data.
Build
Compile the CV to PDF from inside the devshell:
# Auto-reruns as needed (recommended)
cd tex && latexmk -pdf cv.tex
# Single pass
cd tex && pdflatex cv.tex
# or: xelatex cv.tex
Build the Europass PDF (requires EUROPASS_EMAIL / EUROPASS_PASSWORD or .envrc.local):
./build-europass.sh
Formatting & Checks
nix fmt # format all Nix files
nix flake check # pre-commit hooks + formatting
Project Structure
.
├── .github/
│ └── workflows/ # Generated GitHub Actions (do not edit)
│ ├── flake-check.yml
│ └── flake-lock-update.yml
├── data.example/ # Placeholder cv-data layout (copy to your private repo)
│ ├── europass/
│ │ └── cv.xml
│ └── tex/
│ ├── header.tex
│ ├── summary.tex
│ ├── skills.tex
│ ├── experience.tex
│ ├── research.tex
│ ├── projects.tex
│ ├── hackathons.tex
│ ├── honours.tex
│ ├── education.tex
│ └── languages.tex
├── europass/
│ ├── build.py # Playwright automation for Europass PDF
│ └── schema/ # Vendored Europass XSD v3.4.0
├── flake/
│ ├── actions/ # GitHub Actions source (Nix → YAML)
│ │ ├── common.nix
│ │ ├── flake-check.nix
│ │ └── flake-lock-update.nix
│ ├── checks.nix # Pre-commit hooks via git-hooks.nix
│ ├── devshells.nix # devshell: texlive, Python, xmllint, Nix tools
│ └── formatters.nix # treefmt config (alejandra, deadnix, statix)
├── tex/
│ └── cv.tex # LaTeX template — \input{cv-data/...} section hooks
├── build-europass.sh # Entry point for Europass PDF build
├── flake.nix # Flake entry point (flake-parts + import-tree)
└── README.md
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found