posquit0/Awesome-CV

TeX

:page_facing_up: Awesome CV is LaTeX template for your outstanding job application

texoverleafsharelatexpdfresumecvcoverletterlatexlatex-templateawesome
Crescimento de estrelas
Estrelas
28.8k
Forks
5.3k
Crescimento semanal
+52
Issues
55
10k20k
mai. de 2015fev. de 2019dez. de 2022out. de 2026
README

AwesomeCV
Awesome CV

LaTeX template for your outstanding job application


What is Awesome CV?

Awesome CV is LaTeX template for a CV(Curriculum Vitae), Résumé or Cover Letter inspired by Fancy CV. It is easy to customize your own template, especially since it is really written by a clean, semantic markup.

Please help keep this project alive! Donations are welcome and will go towards further development of this project.

PayPal: paypal.me/posquit0

Thank you for your support!

Preview

Résumé

You can see PDF

Page. 1 Page. 2
Résumé Résumé

Cover Letter

You can see PDF

Without Sections With Sections
Cover Letter(Traditional) Cover Letter(Awesome)

Quick Start

Note: These gallery templates may contain older source code. For this repository's version, upload its files and follow the Overleaf instructions below.

How to Use

Requirements

Awesome CV uses LuaLaTeX with HarfBuzz, driven by latexmk. XeLaTeX and pdfLaTeX are not supported by this version of the class.

Install a current full TeX Live distribution (or MacTeX on macOS), including lualatex, latexmk, and fontawesome6. TeX Live 2026 is the recommended starting point. latexmk also requires Perl, which is included with TeX Live on Windows. Make is optional.

Install the Source Sans 3 and Roboto font families, including Regular, Italic, Bold, Bold Italic, Light, and Light Italic. Use the static desktop OTF/TTF fonts from Source Sans 3 and Roboto; installing only a variable font may not provide the named faces required by the class. Fonts must be visible to LuaLaTeX under these family names. After installing fonts, run luaotfload-tool --update if they are not found.

Alternatively, place the static font files in the repository root. The included luaotfload.conf enables discovery of fonts in the working directory, including files uploaded to Overleaf.

The Dockerfile provides TeX Live and the required fonts together. It is also used by CI, so Docker is the reference environment for reproducing builds locally.

Usage

Run commands from the repository root, where latexmkrc and awesome-cv.cls are located. Paths in the examples are relative to this directory.

latexmk

This builds the cover letter, CV, and résumé into build/coverletter.pdf, build/cv.pdf, and build/resume.pdf. make runs the same command. Generated PDFs, logs, and SyncTeX files stay in build/; the committed PDFs in examples/ are previews and are not overwritten.

To build one document, or rebuild it automatically while editing:

latexmk examples/resume.tex
latexmk -pvc examples/resume.tex

The existing make resume.pdf, make cv.pdf, and make coverletter.pdf shortcuts also write to build/. For your own document, run latexmk your-cv.tex from the repository root; keep its input and image paths relative to that root.

The shared latexmkrc selects LuaLaTeX, enables SyncTeX, stops on compilation errors, and lets latexmk rerun the compiler and track dependencies. Repeating a build without changes skips compilation.

Use make clean (or latexmk -c) to remove the examples' auxiliary files while keeping their PDFs. Use make distclean (or latexmk -C) to remove the generated example PDFs as well. To clean a custom document, pass its filename, for example latexmk -C your-cv.tex.

Docker

From the repository root, build the environment and compile:

docker build --tag awesome-cv .
docker run --rm --user "$(id -u):$(id -g)" --volume "$PWD:/doc" awesome-cv

These commands work in a POSIX shell, including WSL on Windows. In PowerShell:

docker build --tag awesome-cv .
docker run --rm --volume "${PWD}:/doc" awesome-cv

The image runs make by default. To build one document, append latexmk examples/resume.tex to docker run. Outputs are written to the host's build/ directory. The image provides writable font and TeX caches for the non-root user used by the POSIX command and CI.

The base image is pinned to a multi-platform digest, and additional Debian packages come from a dated snapshot. Rebuilding a checkout therefore uses the same TeX and font package sources. Native installations and Overleaf can differ from this baseline. CI uses Linux amd64; Docker on Apple Silicon uses the pinned arm64 image. To reproduce CI's architecture, add --platform linux/amd64 to both Docker commands (emulation may be slower).

This pins the toolchain, not the bytes of every PDF: examples use \today, and PDF metadata can include build timestamps. See the build environment guide for version inspection and dependency updates.

Editors and Overleaf

For VS Code, open the repository root as the workspace and install the recommended LaTeX Workshop extension. The committed workspace settings run latexmk from that root, use latexmkrc, and locate PDF/SyncTeX output in build/. Open examples/resume.tex, examples/cv.tex, or examples/coverletter.tex and run Build LaTeX project. Compilation magic comments are disabled in this workspace so they cannot bypass the shared recipe.

For other editors, configure latexmk as the build command with the repository root as its working directory. The examples' TS-program comments identify LuaLaTeX for editors that use them; the full build settings live in latexmkrc.

For Overleaf:

  1. Upload the repository contents, keeping awesome-cv.cls, latexmkrc, and luaotfload.conf at the project root and preserving the examples/ directory.
  2. Copy the desired main file, such as examples/resume.tex, to resume.tex at the project root and select that copy as the Main document. Overleaf builds from the main file's directory, so a root-level main file keeps input, image, and configuration paths consistent.
  3. Select LuaLaTeX and a current available TeX Live version in the compiler settings. Overleaf manages its own output location.
  4. If the required font faces are unavailable, upload the static OTF/TTF files at the project root. luaotfload.conf lets LuaLaTeX discover their family names. Overleaf's environment is managed separately from the Docker image.

The root awesome-cv.cls is the source of truth. examples/awesome-cv.cls is a convenience symlink to it; it is not a second class to edit. If a ZIP tool or Windows checkout turns that symlink into a text file, omit the example-directory copy and keep the real class at the project root.

Contributing

Run make test before submitting changes. The Docker image includes the PDF inspection dependency; append make test to the Docker command above to run the same checks as CI. The suite checks page counts, text extraction, links, embedded fonts, compiler font warnings, and focused layout regressions. See the test guide for native prerequisites and coverage.

CI uploads PDFs, compiler logs, a JSON report, and page images from build/ for review, including available diagnostics after a failure. Check the page images for layout changes; automated checks do not cover every visual detail. When changing build settings, keep latexmkrc, the editor configuration, the Dockerfile, and these instructions aligned.

Credit

LaTeX is a fantastic typesetting program that a lot of people use these days, especially the math and computer science people in academia.

FontAwesome6 LaTeX Package is a LaTeX package that provides access to the Font Awesome 6 icon set.

Roboto is the default font on Android and ChromeOS, and the recommended font for Google’s visual language, Material Design.

Source Sans 3 is a set of OpenType fonts that have been designed to work well in user interface (UI) environments.

Contact

You are free to take my .tex file and modify it to create your own resume. Please don't use my resume for anything else without my permission, though!

If you have any questions, feel free to join me at #posquit0 on Freenode and ask away. Click here to connect.

Good luck!

Maintainers

See Also