RenderCV
2023 – present
Sina Atalay
The user experience of writing a CV has traditionally been painful.
You have two main choices:
- Word processors like Google Docs or Microsoft Word
- Typesetting tools like LaTeX or Typst
The first option is frustrating. Every time you change the content, you risk breaking the layout or messing something else up. Getting the formatting right in the first place is tedious.
The second option is usually overkill. It requires boilerplate and setup, and once you've written your CV, tweaking the design is really hard.
Writing a CV should be simple:
- Write your content in peace
- Play with the design until you're happy with how it looks
Neither mainstream option offers this workflow. In both cases, design and content are tangled together, making iteration painful.
I thought I could improve this experience, so I built RenderCV, a CLI application written in Python.
Write your CV as YAML:
cv:
name: John Doe
location: San Francisco, CA
email: john.doe@email.com
website: https://rendercv.com/
social_networks:
- network: LinkedIn
username: rendercv
- network: GitHub
username: rendercv
sections:
education:
- institution: Princeton University
area: Computer Science
degree: PhD
...
Then run RenderCV:
rendercv render John_Doe_CV.yaml
and get a PDF with perfect typography.
Then, play with your design until you’re happy:
design:
theme: classic
page:
size: us-letter
top_margin: 0.7in
bottom_margin: 0.7in
left_margin: 0.7in
right_margin: 0.7in
show_footer: true
show_top_note: true
colors:
body: rgb(0, 0, 0)
name: rgb(0, 79, 144)
headline: rgb(0, 79, 144)
connections: rgb(0, 79, 144)
section_titles: rgb(0, 79, 144)
links: rgb(0, 79, 144)
footer: rgb(128, 128, 128)
top_note: rgb(128, 128, 128)
typography:
line_spacing: 0.6em
alignment: justified
date_and_location_column_alignment: right
font_family: Source Sans 3
# ...and much more
Ultimately, you get PDFs like these.
![]() |
![]() |
![]() |
|---|---|---|
![]() |
![]() |
![]() |
Since launch, RenderCV has gained 15,000+ GitHub stars and 140,000+ downloads on PyPI.
We also built a web app at app.rendercv.com that runs RenderCV via WebAssembly. It has 8,000+ monthly active users.
GitHub Repository: github.com/rendercv/rendercv
Documentation: docs.rendercv.com





