Skip to content

satyajitghana/resume

Repository files navigation

Satyajit Ghana — Résumé

A clean, ATS-friendly resume typeset in XeLaTeX, with a faint dithered kestrel watermark. Three PDFs are built from one source (in the repo root):

  • satyajit-resume.pdf — display version with the kestrel watermark (for your site / humans).
  • satyajit-resume-ats.pdf — identical text, no background. Submit this one to ATS / job portals.
  • satyajit-resume-one-pager.pdf — full content condensed to a single page (watermarked).
  • satyajit-resume-one-pager-ats.pdf — the one-pager with no background, for ATS.

Resume page 1 Resume page 2 One-page resume


Build

No system LaTeX needed — this uses Tectonic (a self-contained XeLaTeX engine) and uv for the Python tooling.

# one-time: install Tectonic (single binary) if you don't have it
curl --proto '=https' --tlsv1.2 -fsSL https://drop-sh.fullyjustified.net | sh   # -> ./tectonic

make            # builds all three PDFs into the repo root
make ats        # just the ATS version
make onepager   # just the one-page version
make image      # regenerate the dithered kestrel watermark
make preview    # refresh the README preview PNGs
make check      # run the local open-source ATS checker (see below)

Fonts are bundled in src/fonts/ (no system font install needed): Space Grotesk for display, and Inter for body — both embedded into the PDF.

ATS

The resume is built for clean machine parsing, following current (2024–2026) best practice:

  • Single column, real selectable text, standard headings (Experience / Education / Skills).
  • Contact details (incl. a location line) live in the body — never in a page header/footer.
  • Visible URLs that are also hyperlinked; Mon YYYY dates; round bullets; ASCII-only symbols.
  • No tables/columns for layout, no icons-as-text, no images carrying text.
  • The ATS PDF has no background image — the watermark is display-only.

make check runs scripts/ats_check.py, a local checker assembled from the same open-source engines real ATS use — pdfminer.six + PyMuPDF for extraction and spaCy for NER — and prints a transparent parse + content score. Current result on satyajit-resume-ats.pdf: 100/100.

Note: pyresparser (the popular pip parser) is abandoned and won't load under spaCy 3.8 / Python 3.12, so this repo uses the underlying extraction engines directly.

Layout

resume/
├── README.md
├── Makefile
├── satyajit-resume.pdf                # display (kestrel watermark)
├── satyajit-resume-ats.pdf            # clean ATS version
├── satyajit-resume-one-pager.pdf      # condensed single page (watermarked)
├── satyajit-resume-one-pager-ats.pdf  # condensed single page, ATS
├── build/                 # intermediate tectonic output (not the deliverables)
├── preview/               # PNG previews shown above
├── scripts/               # uv project: dither.py (watermark), ats_check.py (ATS score)
├── src/
│   ├── resume.tex         # display build   (kestrel watermark)
│   ├── resume-ats.tex     # ATS build       (defines \ATSMODE -> no watermark)
│   ├── resume-onepager.tex     # one-page build (\ONEPAGER -> compact + drop \verbose)
│   ├── resume-onepager-ats.tex # one-page ATS build (\ONEPAGER + \ATSMODE)
│   ├── resume-body.tex    # shared header + section includes
│   ├── style.tex          # fonts, palette, sizing params, section macros, watermark hook
│   ├── fonts/             # Space Grotesk + Inter (bundled)
│   ├── assets/            # kestrel-source.jpg, kestrel-dither.png, CREDITS.md
│   └── sections/          # summary, experience, skills, education
├── v1/                    # archived: original Adobe-design + Awesome-CV resumes
└── v2/                    # archived: 2024 LaTeX resume (resume-v2.pdf)

Image credit

Kestrel photo by Alexis Lours, CC BY 4.0, via Wikimedia Commons — downscaled, grayscaled and Atkinson-dithered into a faint watermark by scripts/dither.py. See src/assets/CREDITS.md.

About

My Resume

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors