This repository contains an ATS-friendly, one-page LaTeX resume. Canonical
career context lives in docs/. Structured records in data/ support the
build and must remain consistent with the Markdown source.
The repository hierarchy is: docs/ (canonical context) → data/
(structured verified facts) → sections/ (curated wording) → resume.tex
(presentation/layout) → generated PDF (build artifact).
resume.texdefines the page, typography, colors, header, and portrait.sections/contains the resume content.docs/contains the canonical career and resume context, organized as focused, navigable notes.data/contains structured employment, education, certification, and skills records selected from verified facts; it may require later reconciliation withdocs/..agents/skills/contains repository-local Codex workflows for resume analysis, tailoring, writing, formatting, and ATS review.fonts/andimages/contain the embedded visual assets.scripts/builds and validates the generated PDF.
.github/workflows/build-resume.yml is the canonical build path. It runs on pushes and pull requests affecting resume inputs, validates the PDF, and uploads the resume-pdf artifact containing resume.pdf and resume-preview.png. The preview is a 150 DPI first-page PNG for layout review. Validation runs before upload, so a failed build or invalid PDF cannot produce an artifact.
Install the following tools and ensure their commands are available on your
PATH:
- Node.js 20 or later.
- Tectonic for compiling the LaTeX source.
- Poppler utilities:
pdfinfo,pdftotext, andpdftoppm. On Linux, these are commonly provided by thepoppler-utilspackage.
Verify the installation from the repository root:
node --version
tectonic --version
pdfinfo -v
pdftotext -v
pdftoppm -vFrom the repository root, run:
node scripts/build-resume.mjs --output build/resumeThe command creates:
build/resume/resume.pdf— the one-page A4 résumé.build/resume/resume-preview.png— a 150 DPI preview of the first page for layout review.
It validates that the PDF has selectable text, is exactly one A4 page, and contains the required headings, dates, certifications, and technical keywords. Review the PNG after layout changes before sharing the PDF.
If the build reports that tectonic, pdfinfo, pdftotext, or pdftoppm is
missing, install the corresponding prerequisite above and open a new terminal
before retrying. The generated build/ directory is reproducible output and
must not be committed.
A consumer workflow can download the named artifact with actions/download-artifact:
- uses: actions/download-artifact@v6
with:
name: resume-pdf
path: publicThe personal website can consume this artifact without duplicating the resume source or build toolchain.