Skip to content

coreyjonoliver/resume

Repository files navigation

Resume

This is my resume written in LaTeX based on a template created by Jason Blevins. The original template can be found on Jason's website. Also the license provided in the original template is given both below and in the source code of my resume.

Prerequisites

By default, the build runs inside Docker, so the only requirement is a working Docker installation. The first run will build a local image (resume-builder:local) from the included Dockerfile; subsequent runs reuse it unless Dockerfile or requirements.txt change.

To build without Docker, set USE_DOCKER=no. This requires the following to be installed locally:

  • A full TeX Live distribution (including latexmk, xelatex, chktex, and latexindent)
  • Python 3
  • Python dependencies: pip install -r requirements.txt

Usage

make all                # Generate .tex files from YAML data, then compile to PDF
make generate           # Generate .tex files only
make compile            # Compile existing .tex files to PDF
make check              # Run chktex on generated .tex files
make lint               # Run latexindent on generated .tex files
make list               # List available resume variants
make clean              # Remove the build directory
make clean-docker       # Remove the local Docker image
make clean-all          # Remove build directory and Docker image

To skip Docker for any target, append USE_DOCKER=no:

make all USE_DOCKER=no

How it works

Resume data lives in data/resume.yaml. Variant configurations in the variants/ directory control which sections and content are included in each output. Running make generate invokes scripts/build.py to produce a .tex file per variant in build/, and make compile then compiles each to PDF.

The LinkedIn profile (build/linkedin.md) is also generated from resume.yaml. Bullet selection for LinkedIn is controlled by the linkedin.work section in the YAML, following the same pattern as variant configs.

Content guidelines

These guidelines are based on widely accepted best practices for resumes and LinkedIn profiles. Follow them when adding or editing content in resume.yaml and variant configs.

Resume (PDF) — 2-page hard limit

Each variant must fit within two pages when compiled to PDF. To stay within this limit:

  • Keep 3–4 bullets per position (5 max for a current/primary role).
  • Write concise bullets: lead with an action verb, state what you did and the result, and aim for 1–2 lines of text each.
  • The position description field should be a single sentence summarizing the role; detailed accomplishments belong in bullets.
  • Prefer concrete outcomes (metrics, adoption, standards established) over listing responsibilities.
  • If a new bullet pushes a variant past two pages, cut the weakest existing bullet rather than trimming font size or margins.

LinkedIn — concise and scannable

  • About section: One short paragraph (3–4 sentences). Conversational tone, first person.
  • Experience bullets: 3–4 per position, same as the resume.
  • Bullet selection: The linkedin.work section in resume.yaml controls which bullets appear on LinkedIn. Choose the most impactful and broadly understandable accomplishments. Save niche technical details for the resume variants.
  • Avoid duplicating the position description in a bullet. The description provides context; bullets should add specific accomplishments on top of it.

Releases

A release is automatically created via a GitHub Actions workflow whenever a PR with a release label is merged into the default branch.

License

See LICENSE

About

My resume in Latex

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors