Skip to main content

A LaTeX CV/resume framework

Project description

RenderCV

The engine of the RenderCV App

test coverage docs pypi-version pypi-downloads

RenderCV allows you to create a high-quality CV as a PDF from a YAML input file. It supports Markdown syntax and gives you complete control over the $\LaTeX$ code.

The primary motivation behind RenderCV is to provide a concrete framework that allows:

  • Version controlling a CV's content and design separately and in an organized manner.
  • Building an automated pipeline that updates the final output (PDF, $\LaTeX$, Markdown, HTML, and PNGs) whenever the content is modified.
  • Making the CV's design uniform and nicely structured without room for human errors.

RenderCV offers built-in $\LaTeX$ and Markdown templates ready to produce high-quality CVs. However, the templates are entirely arbitrary and can easily be updated to leverage RenderCV's capabilities with custom CV themes.

RenderCV takes a YAML file that looks like this:

cv:
  name: John Doe
  location: Your Location
  email: youremail@yourdomain.com
  sections:
    this_is_a_section_title:
      - This is a type of entry, TextEntry—just a plain string.
      - You may have as many entries as you want under a section.
      - RenderCV offers a variety of entry types such as TextEntry,
        BulletEntry, EducationEntry, ExperienceEntry, NormalEntry,
        OneLineEntry, PublicationEntry.
      - Each entry type has its own set of attributes and different
        looks.
    my_education_section:
      - institution: Boğaziçi University
        area: Mechanical Engineering
        degree: BS
        start_date: 2024-09
        end_date: 2029-05
        highlights:
          - 'GPA: 3.9/4.0 ([Transcript](https://example.com))'
          - '**Coursework:** Structural Analysis, Thermodynamics,
            Heat Transfer'
    experience:
      ...

Then, it produces one of these PDFs with its corresponding $\LaTeX$ code, Markdown file, HTML file, and images as PNGs. Each of these is an example of one of 4 built-in themes of RenderCV. Click on the images below to preview PDF files.

Classic Theme Example of RenderCV Sb2nov Theme Example of RenderCV
Moderncv Theme Example of RenderCV Engineeringresumes Theme Example of RenderCV

The contents of the HTML file can be pasted into Grammarly or any word processor for spelling and grammar checking.

Grammarly for RenderCV

It also validates the input file. If there are any problems, it tells users where the problems are and how they can fix them.

CLI of RenderCV

RenderCV comes with a JSON Schema so that the YAML input file can be filled out interactively.

JSON Schema of RenderCV

Quick Start Guide

Either use the RenderCV App, rendercv-pipeline, or follow the steps below.

  1. Install Python (3.10 or newer).
  2. Run the command below in a terminal to install RenderCV.
    pip install rendercv
    
  3. Run the command below to generate starting input files.
    rendercv new "Full Name"
    
  4. Edit the contents of Full_Name_CV.yaml in your favorite editor (tip: use an editor that supports JSON Schemas).
  5. Run the command below to generate your CV.
    rendercv render Full_Name_CV.yaml
    

Here, you can find a comprehensive user guide that covers the YAML input file structure and command-line interface (CLI) in greater detail.

Motivation

Writing the content of a CV and designing a CV are separate issues that should be treated separately. RenderCV attempts to provide this separation. This approach encourages users to concentrate on the content without getting distracted by the appearance of their CV and vice versa.

RenderCV also provides a set of utilities that automate most of the manual work involved in the CV updating process. After updating a single sentence or date in the YAML input file written in pure English, RenderCV will:

  • Re-create your $\LaTeX$ file,
  • Render a new PDF file,
  • Create a new Markdown file,
  • Create a new HTML document, and
  • Create images of each page of the PDF file as PNGs.

Why use RenderCV instead of $\LaTeX$? I can version-control $\LaTeX$ code too!

RenderCV is not a replacement for $\LaTeX$. It is a set of utilities designed to create and manage $\LaTeX$ CVs. If you're currently using $\LaTeX$ to create your CV, you should try RenderCV. Using your existing $\LaTeX$ themes in RenderCV is very easy.

Advantages of RenderCV over using pure $\LaTeX$:

  • RenderCV will separate the content of your CV from your $\LaTeX$ code. They will sit in independent files, and RenderCV will use both to generate your CV.
  • You will be able to version-control your $\LaTeX$ code and content separately.
  • Updating your content in a YAML file is easier than updating a complex $\LaTeX$ file.
  • A pure $\LaTeX$ CV will have many code duplications because a CV is a document with a list of sections that contain a list of entries. RenderCV has only one $\LaTeX$ code for each entry type, duplicated automatically based on the YAML input file.
  • Spell-checking is not very straightforward in $\LaTeX$ documents.

Documentation

Contributing

All contributions to RenderCV are welcome! To get started, please read the developer guide.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rendercv_hb-1.15.tar.gz (59.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rendercv_hb-1.15-py3-none-any.whl (48.1 MB view details)

Uploaded Python 3

File details

Details for the file rendercv_hb-1.15.tar.gz.

File metadata

  • Download URL: rendercv_hb-1.15.tar.gz
  • Upload date:
  • Size: 59.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for rendercv_hb-1.15.tar.gz
Algorithm Hash digest
SHA256 961f3bb35f3991a60ae2af30a83146a08f5530f74d8db89114f8fc73a2864b06
MD5 bea052facfa8c5cf6e83211f67c6e9e2
BLAKE2b-256 74aa74b10a7cc377363853baebf5a44bf7ee6d5a23738d5e4fa8272932dd1ab7

See more details on using hashes here.

File details

Details for the file rendercv_hb-1.15-py3-none-any.whl.

File metadata

  • Download URL: rendercv_hb-1.15-py3-none-any.whl
  • Upload date:
  • Size: 48.1 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for rendercv_hb-1.15-py3-none-any.whl
Algorithm Hash digest
SHA256 854c2f50acf4568ac65be07bdb8043cab4a097830b039b3f076b3c8d7f61a1fd
MD5 c3cb4312e4cf59af08bc22e34d17c164
BLAKE2b-256 8533bbe3582bdea7fa4e57375a3d2d7f85ebc98980a513850fec3d3c7c9117c5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page