Top
Best
New

Posted by sinaatalay 12/21/2025

Show HN: RenderCV – Open-source CV/resume generator, YAML to PDF(github.com)
I built RenderCV because Word kept breaking my layout and LaTeX was overkill. I wanted my CV as a single YAML file (content, design, margins, everything) that I could render with one command.

Run rendercv render cv.yaml → get a perfectly typeset PDF.

Highlights:

1. Version-controllable: Your CV is just text. Diff it, tag it.

2. LLM-friendly: Paste into ChatGPT, tailor to a job description, paste back, render. Batch-produce variants with terminal AI agents.

3. Perfect typography: Typst under the hood handles pixel-perfect alignment and spacing.

4. Full design control: Margins, fonts, colors, and more; tweak everything in YAML.

5. Comes with JSON Schema: Autocompletion and inline docs in your editor.

Battle-tested for 2+ years, thousands of users, 120k+ total PyPI downloads, 100% test coverage, actively maintained.

GitHub: https://github.com/rendercv/rendercv

Docs: https://docs.rendercv.com

Overview on RenderCV's software design (Pydantic + Jinja2 + Typst): https://docs.rendercv.com/developer_guide/understanding_rend...

I also wrote up the internals as an educational resource on maintaining Python projects (GitHub Actions, packaging, Docker, JSON Schema, deploying docs, etc.): https://docs.rendercv.com/developer_guide/

100 points | 41 comments
smnrchrds 12/21/2025|
First of all, thank you for making this. I used it in my recent job search and it was fantastic.

Second, if I may make a request, could you please follow SemVer? I tried rendering my resume again last week, only 3 or 4 months after having made it originally with RenderCV version 2 point something I cannot recall, and it would not work. The design schema and perhaps also the CLI options have changes so much that I expect I would need to spend 2 to 4 hours getting it to work again, and there is no guarantee that it would not break again in another month. I would have appreciated if the versioning scheme followed SemVer, so I would know that any v2 engine would work and v3 engine would not.

I also would appreciate it if you could write detailed migration docs between versions and/or recommendations in error messages. The reason I think migrating my CV would take so long is that I have to go by trial and error, searching for similar-sounding parameter names and replacing them one-by-one. I gave up after an hour of this as I was nowhere near done.

Third, is markdown render supposed to miss information or is it a bug? Some sections of the resume would not end up in the markdown version, only showing section title and nothing else. If this is not expected behaviour, please let me know.

Again, thank you for making this. I look forward to using it again in the future.

sinaatalay 12/21/2025||
Thank you so much for the kind words, and I'm sorry for the trouble the changes caused you.

To give some context: I hadn't worked on RenderCV for about six months, and when I came back, I had grown technically and my design taste had changed. I decided to do a significant overhaul rather than preserve backwards compatibility. It felt necessary to maintain my enthusiasm for this project long-term.

You're right about semantic versioning. I used a two-number scheme (MAJOR.MINOR) back in 2023 when I didn't know much about releasing software. By the time I understood the benefits of MAJOR.MINOR.PATCH, I didn't want to change it mid-stream. I'm planning to switch after v3. It will give me more flexibility to tag updates appropriately.

I'm also adding migration documentation to my list. You're right that I should have done this. Going forward, there will be clear migration guides.

Regarding the Markdown issue where sections show only titles, that sounds like a bug. If you could open an issue with details, I'd appreciate it.

Thank you for using RenderCV!

dfajgljsldkjag 12/21/2025||
The author discovered AI coding 2 weeks ago and completely went to town on the entire project. If you use any version before this (2.2) it will probably work fine.

https://github.com/rendercv/rendercv/commit/5cc5fbdf9ec1a742...

sinaatalay 12/21/2025||
Just to clarify, that commit was the result of about a month of careful development, and involved significant manual effort beyond AI coding.

See the PR: https://github.com/rendercv/rendercv/pull/528

Cloudly 12/21/2025||
I have been through a huge over supply of AI generated CVs using similar tools this year. I am sure this will help people so not bashing the tool per se, but bare in mind that you will be joining the robots.

I don't know what the solution really is, but as much as I hate it, a verified Linkedin Profile is a huge signal now. Otherwise a real personal site with care and history. I am guilty of being bad with the second so - no easy answers. Maybe even a wacky looking CV would make me notice a candidate more. Powerpoint 90s style.

browningstreet 12/21/2025||
Lots of people apply to places other than startups, and for positions other than developer.
mkozak 12/21/2025||
AI generated (and quite often fake) CVs are a fucking joke. I've spent many hours over the last 2 years going through the pile of them
8n4vidtmkvmk 12/21/2025||
I wonder what the benefit is.. there's only room on a CV for maybe 2 sentences per job. Surely we can type that out by hand and mind
pietz 12/21/2025||
A bit of a missed opportunity not to use the JSON Resume schema for this.

https://jsonresume.org/schema

sinaatalay 12/21/2025|
We deliberately chose not to use JSON Resume because we wanted greater flexibility. For example, in RenderCV, you can use any section title you want and place any of the 9 available entry types under any section. In contrast, JSON Resume has predefined section titles, and each section is restricted to a predefined entry type. For instance, you must use the experience entry schema under the experience section.
pietz 12/21/2025||
I hear you. This boils town to personal opinion. I would have preferred to use an existing standard than introducing yet another one. The custom sections aren't something I've ever seen or needed anyway.
scythmic_waves 12/21/2025||
I used this recently for my resume and I recommend it.

I have the technical background to write Latex and Typst documents but I honestly didn't want the headache. Plus I'm the type to futz with styling all day long instead of putting down actual content. RenderCV was simple to use and did exactly what I wanted.

subdavis 12/21/2025||
I’d love to know if this performs better than your average resume in OCR or scanning tools. I think if you could advertise that you follow some kind of arcane best practices, that would be super attractive to a lot of people.

I have a lot of anxiety about missing opportunities because of shitty OCR.

sinaatalay 12/21/2025|
Thank you. We will add an analysis of how RenderCV PDFs perform with applicant tracking systems in docs at some point, but users have been reporting positive results. We generate the PDFs using Typst, which adheres to modern PDF standards.
mkozak 12/21/2025||
Looks nice! I do, however, see an issue with such tools, as they require people to maintain their CV. I don't want to hijack the thread so I won't link here unless asked to do so, but I've build something to keep developers' profiles up to date
Dansvidania 12/21/2025|
please share?
mkozak 12/22/2025||
Sure thing! https://codeboards.io - any feedback is welcome
varun_ch 12/21/2025||
This looks really interesting, but I’m wondering what this adds that someone can’t already do with Typst+a resume template. The basic-resume template already abstracts enough that you only need to care about content rather than formatting:

https://typst.app/universe/package/basic-resume/

Does anyone have examples of how they’re using the YAML?

sinaatalay 12/21/2025|
RenderCV actually relies on its own Typst package: https://typst.app/universe/package/rendercv

Here are a couple of reasons, just a few that come to mind, why using YAML + RenderCV can be more appealing than working directly in Typst:

- Reusing the same content across multiple themes. YAML + RenderCV allows you to experiment with different themes and design options to the exact same content with no changes to the data itself. This is difficult to achieve in pure Typst, where switching templates typically means adapting your content to a different set of Typst commands.

- Centralized control over entry layouts. You can adjust how entire classes of entries are rendered from a single place—for example, changing the layout of all education entries at once, rather than editing each entry individually.

scelerat 12/21/2025||
I just re-did my resume last week using Typst, and the experience had me contemplating building some kind of generator as well!

Anyway, I really enjoy using Typst.

netbioserror 12/22/2025|
I was going to say. This is pretty easily achievable with a Typst template and script, which can even parse YAML.
joshdavham 12/21/2025||
Favorited for next time I make a resume - thanks for making this! Hopefully I’ll never have to touch LaTeX ever again.
zpusmani 12/21/2025|
I really love tools that treat documents as code. I have been trying to move my workflows away from binary formats (like PPT & Word) to text based ones I can more easily version control.

Does this support custom CSS for the layout or is it bound to the YAML templates?

sinaatalay 12/21/2025|
It’s completely flexible. However, it's not done through CSS. We use Typst to generate PDFs, and we template Typst files using Jinja2 from YAML. You can override the built-in Typst templates; see the guide here: https://docs.rendercv.com/user_guide/how_to/override_default...
zpusmani 12/21/2025||
Ah makes sense, using Typst under the hood for strict layout control compared to CSS. Thanks for the link to the override guide and I'll check it out.
More comments...