A reproducible document generation pipeline built with PowerShell, Python, LaTeX, and GitHub Actions to automate multilingual CV and cover letter production. This system eliminates tedious manual formatting by generating, compiling, validating, and versioning tailored LaTeX documents from structured inputs.
It also supports batch compilation, selective document builds and digital signature embedding.
P.S. I use this system to manage my own resume and cover letters. The repository includes my CV, tracked and versioned to reflect updates over time.
The project consists of:
- PowerShell build scripts for controlled LaTeX compilation
- Python + OpenAI API integration for automated cover letter generation
- CI/CD pipelines (GitHub Actions) for automated builds and artifact validation
- Template-based LaTeX structure with strict formatting validation
- Batch and targeted build support
- Digital signature embedding
- Batch compilation of multiple
.texCV variants - Selective target builds
- Debug mode for compilation tracing
- Output + auxiliary directory separation
- Non-blocking LaTeX error handling
- Uses OpenAI API to generate tailored LaTeX cover letters
- Injects CV + job posting + system prompt
- Validates LaTeX output before writing
- Automatically backs up previous versions
- Enforces compile-safe LaTeX formatting
- GitHub Actions pipeline for:
- Automated builds
- Artifact versioning
- Reproducible PDF generation
- Ensures consistent output across environments
- Automatically embeds signature image into generated cover letters
- Centralized asset management
- PowerShell 7+
- Python 3.10+
- OpenAI API Key
- TeX Live / MikTeX
./build.ps1./build.ps1 -Targets english.tex,french.tex./build.ps1 -Debug./buildCovers.ps1./buildCovers.ps1 Company1 Company2To embed a digital signature image at the bottom of each cover letter:
- Place your signature image in
inputs/signature.png - The script inserts
\includegraphicsinto the final LaTeX before compilation
The CV template and style files are adapted from MTeck’s Resume by Michael Lustfield, used under the CC BY 4.0 license.