Generating ATS-compliant resumes with RenderCV

Published on July 01, 2026

Introduction

As part of my job-hunting efforts, I occasionally pause to review my resume and identify weak spots to improve. Recently, I did one such review by employing a variety of LLMs, feeding them my resume and asking for an honest critique. Their responses were varied, but they all shared a common thread: my resume’s format is not compliant with ATS software. One model, Gemini, couldn’t even parse it.

For the last 4 years, I have been manually curating my resume with Canva as a two-column, single-page PDF document. It has yielded results, as I got my last two jobs with it, so I never stopped to consider that I could improve my success rate by working with ATS instead of against it. With an open mind, I asked the LLMs how to make it ATS-compliant and, more importantly, whether they could recommend a better tool to maintain my resume and ensure it remains ATS-compliant moving forward. Claude recommended RenderCV.

What is RenderCV?

As per their FAQ

RenderCV is a resume builder that lets you focus entirely on your content. It guarantees an industry-standard, high-quality PDF every time. Formatting mistakes are not possible.

RenderCV is powered by Typst, which produces tagged, text-based PDFs that comply with modern PDF standards (including PDF/A). Every character is real selectable text with correct Unicode mappings, so ATS systems can extract your content accurately. We have tested and documented this in detail.

They have a paid web app which includes some interesting features, but I wanted to try out the tool before committing to anything. Luckily, the app is powered by an open source CLI, which can be easily installed.

pip install "rendercv[full]"

This allowed me to test for free the most important feature of the tool, generating ATS-compliant PDF resumes from YAML files.

Testing RenderCV

I have the need for a total of 4 resume flavours, coming from two tech tracks (iOS and full stack) and two languages (English and French). I created 4 markdown files, one for each flavour, with the contents of my existing resumes, and I placed them in the new public repo I created.

I then installed the RenderCV skill and worked with GitHub Copilot to translate the markdown files I created to RenderCV-compliant YAML files and to properly set up the repository structure. Later, I added a Makefile to simplify the generation of the 4 resume flavours.

With this setup, every time I made any modification to my YAML content files, all I had to do was run the following command.

make

And my 4 resumes were automatically generated with the same design, all ATS-compliant.

Pretty nice, huh?

Why use RenderCV?

Apart from the ATS compliance, RenderCV natively supports multiple languages, and it also allows for the separation of content from design, enabling the sharing of design between resumes, which is a perfect fit for my use case, as the difference between my 4 flavours is just content.

Viva la Separation of Concerns!

It is also capable of generating other file formats, covering PNG, HTML, MD, and TYP. This might be useful for sharing resumes through different media.

Lastly, it is trivial to version-control resumes, as the focus is on the content of the YAML files, which are text files, and not on the output files.

The web app is available and probably useful for non-technical people, but honestly, setting up your own repo, especially with the help of the agent skill, is quite easy and practically free, so I genuinely recommend it.

Conclusion

I am pleased with the results of my experiment, and I will continue to tinker with this tool to see how I can further optimise the generation of my resume. Maybe implementing auto-translation, so that whenever I change the English flavours, my French ones get auto-updated. Maybe implementing concurrent processing, so that all 4 flavours get generated at the same time when running make. We will see.

In the meantime, I will start applying to jobs with these new ATS-compliant resumes and see where they get me.