16 comments

  • smnrchrds1 hour ago
    First of all, thank you for making this. I used it in my recent job search and it was fantastic.<p>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.<p>I also would appreciate it if you could write detailed migration docs between versions and&#x2F;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.<p>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.<p>Again, thank you for making this. I look forward to using it again in the future.
    • sinaatalay46 minutes ago
      Thank you so much for the kind words, and I&#x27;m sorry for the trouble the changes caused you.<p>To give some context: I hadn&#x27;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.<p>You&#x27;re right about semantic versioning. I used a two-number scheme (MAJOR.MINOR) back in 2023 when I didn&#x27;t know much about releasing software. By the time I understood the benefits of MAJOR.MINOR.PATCH, I didn&#x27;t want to change it mid-stream. I&#x27;m planning to switch after v3. It will give me more flexibility to tag updates appropriately.<p>I&#x27;m also adding migration documentation to my list. You&#x27;re right that I should have done this. Going forward, there will be clear migration guides.<p>Regarding the Markdown issue where sections show only titles, that sounds like a bug. If you could open an issue with details, I&#x27;d appreciate it.<p>Thank you for using RenderCV!
    • dfajgljsldkjag56 minutes ago
      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.<p><a href="https:&#x2F;&#x2F;github.com&#x2F;rendercv&#x2F;rendercv&#x2F;commit&#x2F;5cc5fbdf9ec1a742440cc178751ff001430e0185" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;rendercv&#x2F;rendercv&#x2F;commit&#x2F;5cc5fbdf9ec1a742...</a>
      • sinaatalay41 minutes ago
        Just to clarify, that commit was the result of about a month of careful development, and involved significant manual effort beyond AI coding.<p>See the PR: <a href="https:&#x2F;&#x2F;github.com&#x2F;rendercv&#x2F;rendercv&#x2F;pull&#x2F;528" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;rendercv&#x2F;rendercv&#x2F;pull&#x2F;528</a>
  • Cloudly4 hours ago
    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.<p>I don&#x27;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.
    • mkozak4 hours ago
      AI generated (and quite often fake) CVs are a fucking joke. I&#x27;ve spent many hours over the last 2 years going through the pile of them
    • browningstreet3 hours ago
      Lots of people apply to places other than startups, and for positions other than developer.
  • mkozak4 hours ago
    Looks nice! I do, however, see an issue with such tools, as they require people to maintain their CV. I don&#x27;t want to hijack the thread so I won&#x27;t link here unless asked to do so, but I&#x27;ve build something to keep developers&#x27; profiles up to date
  • pietz6 hours ago
    A bit of a missed opportunity not to use the JSON Resume schema for this.<p><a href="https:&#x2F;&#x2F;jsonresume.org&#x2F;schema" rel="nofollow">https:&#x2F;&#x2F;jsonresume.org&#x2F;schema</a>
    • sinaatalay5 hours ago
      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.
      • pietz3 hours ago
        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&#x27;t something I&#x27;ve ever seen or needed anyway.
  • zpusmani2 hours ago
    I really love tools that treat documents as code. I have been trying to move my workflows away from binary formats (like PPT &amp; Word) to text based ones I can more easily version control.<p>Does this support custom CSS for the layout or is it bound to the YAML templates?
    • sinaatalay2 hours ago
      It’s completely flexible. However, it&#x27;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: <a href="https:&#x2F;&#x2F;docs.rendercv.com&#x2F;user_guide&#x2F;how_to&#x2F;override_default_templates&#x2F;" rel="nofollow">https:&#x2F;&#x2F;docs.rendercv.com&#x2F;user_guide&#x2F;how_to&#x2F;override_default...</a>
  • scythmic_waves6 hours ago
    I used this recently for my resume and I recommend it.<p>I have the technical background to write Latex and Typst documents but I honestly didn&#x27;t want the headache. Plus I&#x27;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.
  • subdavis5 hours ago
    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.<p>I have a lot of anxiety about missing opportunities because of shitty OCR.
    • sinaatalay5 hours ago
      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.
  • michidk2 hours ago
    Why invent a new file format when there is <a href="https:&#x2F;&#x2F;jsonresume.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;jsonresume.org&#x2F;</a>? Its also quite easy to customize and add more things as it does not prohibit extra values
    • sinaatalay2 hours ago
      The JSON Resume schema did not support what we needed, so we deliberately created our own.<p>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.).<p>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.
  • varun_ch6 hours ago
    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:<p><a href="https:&#x2F;&#x2F;typst.app&#x2F;universe&#x2F;package&#x2F;basic-resume&#x2F;" rel="nofollow">https:&#x2F;&#x2F;typst.app&#x2F;universe&#x2F;package&#x2F;basic-resume&#x2F;</a><p>Does anyone have examples of how they’re using the YAML?
    • sinaatalay5 hours ago
      RenderCV actually relies on its own Typst package: <a href="https:&#x2F;&#x2F;typst.app&#x2F;universe&#x2F;package&#x2F;rendercv" rel="nofollow">https:&#x2F;&#x2F;typst.app&#x2F;universe&#x2F;package&#x2F;rendercv</a><p>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:<p>- 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.<p>- 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.
  • joshdavham5 hours ago
    Favorited for next time I make a resume - thanks for making this! Hopefully I’ll never have to touch LaTeX ever again.
  • NewsaHackO5 hours ago
    Wish I had seen this before making my resume in latex. One question, though to add publications, is it possible to use bibtex, or do you have to manually convert each publication to YAML?
    • sinaatalay4 hours ago
      Yes, unfortunately, you will need to convert them to YAML. I think an LLM can easily do that for you, though. This has been requested before, but we haven’t implemented it in order to keep our schema robust and simple. Maybe we should add it.
  • dfajgljsldkjag4 hours ago
    This is clearly a real project that was built over several years with human effort (not vibe coded). Which makes it all the more depressing that the author decided to take a massive dump over the entire README.md with AI slop.<p>Sadly, it appears the project was heavily sloppified a mere 2 weeks ago: <a href="https:&#x2F;&#x2F;github.com&#x2F;rendercv&#x2F;rendercv&#x2F;commit&#x2F;5cc5fbdf9ec1a742440cc178751ff001430e0185" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;rendercv&#x2F;rendercv&#x2F;commit&#x2F;5cc5fbdf9ec1a742...</a>
    • sinaatalay35 minutes ago
      You&#x27;re absolutely right!
  • opengrass4 hours ago
    Yaml itself can be a resume.
  • catapart6 hours ago
    Oh awesome! This is a great solution to resumes. The only thing I&#x27;d like more is a web app to run it in.
    • sinaatalay5 hours ago
      We do have that, but it’s a bit outdated. We’ll update it at some point: <a href="https:&#x2F;&#x2F;app.rendercv.com" rel="nofollow">https:&#x2F;&#x2F;app.rendercv.com</a>
  • uniqueuid4 hours ago
    I get the motivation, but it honestly feels a bit weird to use tens of thousands of lines of python code to do something that you can just directly do in typst.<p>I mean, a CV is not really rocket science and there are quite a few great typst templates out there.
    • browningstreet3 hours ago
      As someone who&#x27;s done a lot of hiring over the years and read&#x2F;scanned thousands of resumes, I can attest: CVs are indeed rocket science.
      • uniqueuid3 hours ago
        Point taken, but I&#x27;d prefer 200 lines of rocket science that I understand and control over 60k lines of (cleanly written and documented) rocket science.<p>(Although admittedly both plain typst and this project are still way less complex than LaTeX.)
  • thangalin3 hours ago
    In tough job markets, submitting 100 résumés before getting hired is not uncommon. Of possible interest is my Creating Catchy Cover Letters blog post, which uses my Markdown editor, KeenWrite (<a href="https:&#x2F;&#x2F;keenwrite.com" rel="nofollow">https:&#x2F;&#x2F;keenwrite.com</a>), to create PDF files styled to match a company&#x27;s branding:<p><a href="https:&#x2F;&#x2F;keenwrite.com&#x2F;blog&#x2F;2025&#x2F;10&#x2F;15&#x2F;creating-catchy-cover-letters&#x2F;" rel="nofollow">https:&#x2F;&#x2F;keenwrite.com&#x2F;blog&#x2F;2025&#x2F;10&#x2F;15&#x2F;creating-catchy-cover-...</a><p>A handful of prospective managers told me that my cover letter stood out among hundreds of applicants.<p>Here&#x27;s the full shell script I used to build cover letters (you&#x27;ll need to point &quot;theme dir&quot; 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 <a href="https:&#x2F;&#x2F;whitemagicsoftware.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;whitemagicsoftware.com&#x2F;</a>.<p><pre><code> #!&#x2F;usr&#x2F;bin&#x2F;env bash # This script builds a cover letter based on a company&#x27;s branding. The # parameters include: # # $1 -- The company name as a directory, containing colours and logo. # $2 -- The company name (normal case). # $3 -- The company role (job title). # $4 -- The relative path to the cover letter to typeset. # # Example: # # .&#x2F;build.sh corp Corporation &#x27;Job Title&#x27; template&#x2F;cover-letter.md readonly SCRIPT_SRC=&quot;$(dirname &quot;${BASH_SOURCE[${#BASH_SOURCE[@]} - 1]}&quot;)&quot; readonly SCRIPT_DIR=&quot;$(cd &quot;${SCRIPT_SRC}&quot; &gt;&#x2F;dev&#x2F;null 2&gt;&amp;1 &amp;&amp; pwd)&quot; readonly COMPANY_DIR=&quot;${1:-template}&quot; readonly COMPANY_NAME=&quot;${2:-Template}&quot; readonly COMPANY_ROLE=&quot;${3:-Job Title}&quot; readonly PATH_COVER_LETTER=&quot;${4:-climate&#x2F;cover-letter.md}&quot; readonly EMPLOYEE_NAME=&quot;${5:-Your Name}&quot; readonly EMPLOYEE_ROLE=&quot;${6:-Your Role}&quot; read -r COLOUR_FG COLOUR_BG COLOUR_AC &lt; &quot;$COMPANY_DIR&#x2F;colours.txt&quot; readonly COLOUR_FG COLOUR_BG COLOUR_AC magick \ signature-black.png \ -alpha extract \ -background &quot;#${COLOUR_AC}&quot; \ -alpha shape \ -define png:color-type=6 \ signature.png rm -f ${HOME}&#x2F;.local&#x2F;share&#x2F;keenwrite&#x2F;logo_svg_*.pdf keenwrite.bin \ -i &quot;${PATH_COVER_LETTER}&quot; \ -o cover-letter.pdf \ --set=employer.company.name=&quot;${COMPANY_NAME}&quot; \ --set=employer.position.role=&quot;${COMPANY_ROLE}&quot; \ --set=employee.name=&quot;${EMPLOYEE_NAME}&quot; \ --set=employee.role=&quot;${EMPLOYEE_ROLE}&quot; \ --set=employee.contact.phone=&quot;555-1212&quot; \ --set=employee.contact.email=&quot;email@hostname&quot; \ --set=employee.portfolio.url=&quot;gitlab.com&#x2F;YourName&quot; \ --set=employee.address.line.1=&quot;address 1&quot; \ --set=employee.address.line.2=&quot;city, province&quot; \ --set=employee.address.line.3=&quot;postal code&quot; \ --metadata=&quot;foreground=${COLOUR_FG}&quot; \ --metadata=&quot;background=${COLOUR_BG}&quot; \ --metadata=&quot;accent=${COLOUR_AC}&quot; \ --image-dir=&quot;${SCRIPT_DIR}&#x2F;${COMPANY_DIR}&quot; \ --theme-dir=&quot;${HOME}&#x2F;dev&#x2F;java&#x2F;keenwrite&#x2F;themes&#x2F;aspiros&quot; exiftool \ -overwrite_original_in_place \ -Title=&quot;${EMPLOYEE_NAME}&quot; \ -Author=&quot;${EMPLOYEE_NAME}&quot; \ cover-letter.pdf </code></pre> This saved me about 19 hours of work; hopefully it will save you time, as well. See also: <a href="https:&#x2F;&#x2F;xkcd.com&#x2F;1205&#x2F;" rel="nofollow">https:&#x2F;&#x2F;xkcd.com&#x2F;1205&#x2F;</a>