Show HN: RenderCV – Open-source CV/resume generator, YAML to PDF
100 points| sinaatalay | 2 months ago |github.com
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/
smnrchrds|2 months ago
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|2 months ago
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|2 months ago
https://github.com/rendercv/rendercv/commit/5cc5fbdf9ec1a742...
Cloudly|2 months ago
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|2 months ago
mkozak|2 months ago
pietz|2 months ago
https://jsonresume.org/schema
sinaatalay|2 months ago
scythmic_waves|2 months ago
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|2 months ago
I have a lot of anxiety about missing opportunities because of shitty OCR.
sinaatalay|2 months ago
mkozak|2 months ago
Dansvidania|2 months ago
varun_ch|2 months ago
https://typst.app/universe/package/basic-resume/
Does anyone have examples of how they’re using the YAML?
sinaatalay|2 months ago
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|2 months ago
Anyway, I really enjoy using Typst.
netbioserror|2 months ago
joshdavham|2 months ago
zpusmani|2 months ago
Does this support custom CSS for the layout or is it bound to the YAML templates?
sinaatalay|2 months ago
michidk|2 months ago
sinaatalay|2 months ago
We wanted to define 9 different entry schemas that could be used under any section title. In our schema, each section, regardless of its title, contains a list composed of one of these nine entry types. This is different from the JSON Resume approach, where specific entry schemas are tied to specific sections (work schema for work section, etc.).
In RenderCV, users can choose any section title they want and use any of the 9 entry types within it. Each entry type is rendered differently in the generated PDF.
fheysen|2 months ago
NewsaHackO|2 months ago
sinaatalay|2 months ago
catapart|2 months ago
sinaatalay|2 months ago
dfajgljsldkjag|2 months ago
Sadly, it appears the project was heavily sloppified a mere 2 weeks ago: https://github.com/rendercv/rendercv/commit/5cc5fbdf9ec1a742...
sinaatalay|2 months ago
opengrass|2 months ago
brcmthrowaway|2 months ago
uniqueuid|2 months ago
I mean, a CV is not really rocket science and there are quite a few great typst templates out there.
browningstreet|2 months ago
thangalin|2 months ago
https://keenwrite.com/blog/2025/10/15/creating-catchy-cover-...
A handful of prospective managers told me that my cover letter stood out among hundreds of applicants.
Here's the full shell script I used to build cover letters (you'll need to point "theme dir" to the directory where the cover letter theme---aspiros---is found). With this script, creating a cover letter went from about 20 minutes down to 5. If you have any troubles getting it to work, contact me via https://whitemagicsoftware.com/.
This saved me about 19 hours of work; hopefully it will save you time, as well. See also: https://xkcd.com/1205/