YAML-driven LaTeX document-generation system for Brandon Gottshall's resume, CV, leadership resume, and cover letters.
Scrutable™ identity and stable record metadata live in
config/identity.yaml. The trademark and usage contract
is documented in docs/SCRUTABLE_IDENTITY.md.
This repository began as a fork of
posquit0/Awesome-CV, but it has been
reworked into personal career infrastructure: structured YAML content feeds
document-specific LaTeX templates, Python scripts generate .tex files, and
XeLaTeX builds polished PDFs. It is also agent-ready: schemas, docs, a
repo-local Codex plugin, and Claude Code commands define how LLMs should
validate, generate, export, and privately archive tailored document runs.
These PDFs are public portfolio artifacts and include the professional contact
details stored in content/core/personal.yaml.
| Layer | Paths | Purpose |
|---|---|---|
| Source data | content/core/, content/optional/, content/cover_letters/ |
Canonical personal, professional, optional-section, and cover-letter text in YAML. |
| Document configuration | config/documents.yaml, config/cover_letters/ |
Selects sections, margins, colors, cover-letter variants, and document defaults. |
| LaTeX templates | templates/, templates/sections/, src/awesome-cv.cls |
Defines the visual system and section-level rendering on top of Awesome CV. |
| Pipeline package | document_pipeline/ |
Typed content loading, YAML validation, LaTeX rendering, PDF builds, privacy scans, and portfolio export. |
| CLI surfaces | python -m document_pipeline, scripts/, Makefile |
Stable commands for humans, agents, and future site automation. |
| Agent workflow | AGENTS.md, plugins/document-generator/, .claude/ |
Codex and Claude workflow rules and prompts for official and tailored documents. |
YAML content + config
|
v
Python generator -> generated/*.tex
|
v
XeLaTeX builder -> output/*.pdf
Install Python dependencies:
python3 -m pip install -r requirements.txtGenerate LaTeX files from YAML:
make generateThe package CLI exposes the same pipeline directly:
python3 -m document_pipeline generate
python3 -m document_pipeline build resume
python3 -m document_pipeline validateValidate content and configuration:
make validateGenerate and build every configured PDF:
make allBuild one document:
make resume
make cv
make cover-letter
make leadership-resumeClean generated LaTeX and PDF build artifacts:
make cleanPDF compilation requires XeLaTeX. make generate only needs Python plus the
packages in requirements.txt.
Export portfolio data and run local verification:
make export
make showcase
make test
make privacy-scan
make verify.
|-- content/
| |-- core/ # Personal data, summary, experience, education, skills
| |-- optional/ # Certifications, projects, publications, teaching, and more
| `-- cover_letters/ # Cover-letter paragraph content by variant
|-- config/
| |-- documents.yaml # Document section lists and layout settings
| |-- cover_letter.yaml # Legacy cover-letter fallback defaults
| `-- cover_letters/ # Variant-specific cover-letter metadata
|-- templates/
| |-- base_resume.tex
| |-- base_cv.tex
| |-- base_cover_letter.tex
| `-- sections/ # Reusable section templates
|-- scripts/
| |-- generate.py # YAML/template to LaTeX generation
| `-- build.py # XeLaTeX build orchestration
|-- document_pipeline/ # Typed loading, rendering, validation, build, export, and CLI modules
|-- schemas/ # JSON Schemas for content, config, and archive manifests
|-- plugins/document-generator/# Repo-local Codex plugin and prompt templates
|-- exports/ # Portfolio-ready static data
|-- generated/ # Ignored generated .tex files
|-- output/ # Tracked generated PDFs
|-- docs/ # Editing and customization guides
|-- src/awesome-cv.cls # Awesome CV LaTeX class
`-- Makefile # Common generation/build targets
resume: concise job-application resume using core content and selected certifications.cv: broader professional profile. It currently includes populated optional sections such as certifications, languages, and references; additional optional sections remain available throughcontent/optional/andconfig/documents.yaml.leadership_resume: alternate resume profile focused on leadership and ensemble experience.cover-letter: variant-driven cover letter assembled from configured paragraphs and recipient metadata.
- Update source content in
content/core/andcontent/optional/. - Adjust section order, margins, colors, or cover-letter variants in
config/. - Run
make validatebefore generation. - Run
make generateto inspect generated LaTeX when changing content or templates. - Run
make allor a document-specific target to refresh PDFs inoutput/. - Run
make exportwhen public outputs change.
The generator accepts both hyphenated and underscored document names:
python3 -m document_pipeline generate resume
python3 -m document_pipeline generate cv
python3 -m document_pipeline generate cover-letter
python3 -m document_pipeline generate leadership-resume- Quick Start
- Content Guide
- Customization Guide
- Portfolio Export
- Custom Generation Archive Contract
- Cover Letter Generator Plan
Agents should start with AGENTS.md. The repo-local Codex plugin in
plugins/document-generator/ and the Claude Code surface in .claude/ provide
workflow instructions, prompt templates, and an archive helper for private
job-specific generation runs.
Raw tailored runs belong in a private companion archive repo configured through
CUSTOM_GENERATION_ARCHIVE_ROOT. This public repo contains only the archive
contract, schema, and sanitized example structure.
make export writes exports/profile.json, which is the intended static input
for Brandon's portfolio site. The export includes normalized profile data,
public document metadata, PDF paths, and showcase preview paths without requiring
the site to parse YAML directly. See Portfolio Export
for the integration contract and ownership rules.
This repo was forked from Awesome CV by Claud D. Park. The Awesome CV LaTeX class and template lineage remain credited here, while this fork adapts the template into a data-driven personal document system for Brandon's career materials.
The original Awesome CV template assets are distributed under the LaTeX Project Public License v1.3c. Brandon-authored tooling and docs are covered by LICENSE as described in PROVENANCE.md. Brandon's YAML content and generated personal documents are portfolio material, not a generic resume theme or reusable sample identity.