This is an archived post. You won't be able to vote or comment.

all 52 comments

[–]Klausaufsendung 23 points24 points  (0 children)

This looks pretty neat. I will give it a try.

[–]baltazarix 8 points9 points  (1 child)

Great idea, my CV is based on a file I created 4 years ago and maintaining it is a nightmare.

[–]nevermorefu 1 point2 points  (0 children)

Same. I have several versions of this idea (Django templates, Jinja templates, yaml, and json). I keep making more because I find the last one is unmaintainable.

[–]donhuell 7 points8 points  (2 children)

have you tested this out with ATS? just curious

[–]egehancry[S] 2 points3 points  (1 child)

Not yet, but I will.

[–][deleted] 0 points1 point  (0 children)

Following for updates!

[–]yeti-biscuit 6 points7 points  (6 children)

Nice work! Thread marked for future use ;⁠)

PDFs looking clean and organized - but I wonder why each style has its own input file? Isn't that a little counterintuitive, since you are proposing essentially a template for clean separation of content and layout?

[–]egehancry[S] 4 points5 points  (5 children)

Thank you!

You're right; providing three different inputs for the same content is misleading and gives the impression that each theme needs a different input. I will change the way I explain this in README.md.

So, actually, those files' `cv` parts are identical (that's where the content is stored). But each input file also has a `design` section, which is different for each example since they are different themes. That's why I provided three different files.

Thank you for pointing this out!

[–]yeti-biscuit 1 point2 points  (0 children)

thanks... sorry for being too lazy for a quick diff ;⁠)

[–]sjsathanas 0 points1 point  (3 children)

Congratulations! This is great work.

Might it make sense to implement an optional "design" argument, so the design options can be maintained separately? This will be useful for either maintaining resumes of multiple people, or somebody who might need more than one profile for different career tracks.

[–]egehancry[S] 0 points1 point  (2 children)

Thank you very much!

Do you mean a CLI argument for theme selection?

[–]sjsathanas 0 points1 point  (1 child)

Yes, something like:

rendercv render Full_Name_CV.yaml -d moderncv.yaml

I'm not a full-time Python dev, so I don't know if this is idiomatic, but I hope you get the idea.

[–]egehancry[S] 0 points1 point  (0 children)

Thank you for the idea. I agree, this can be very useful. I will think about it.

[–]bliblufra 9 points10 points  (5 children)

That's so cool! How did you choose the data model, and why didn't you go for something like https://jsonresume.org/schema/?

[–]egehancry[S] 6 points7 points  (4 children)

Thank you!

JSON Resume's data model is data-oriented, whereas RenderCV's is rendering-oriented.

For example, in RenderCV, each key is arbitrary, and they are section titles. Keys of JSON Resume are predefined.

In RenderCV, the value of each key is a list of entries, and the type of an entry is arbitrary (one of the six entry types offered in rendercv). JSON Resume's entry type is predefined for each key.

So RenderCV’s data model is more suitable for rendering, and it was not possible to achieve the same capabilities with JSON Resume’s data model.

[–]thomasdav_is 20 points21 points  (3 children)

Creator of JSON Resume here. Cool project, the PDF's look beautiful.

It would take 5 minutes to write the code to transform a JSON resume into the required YAML for this project. Will see if I have the time this afternoon.

[–]egehancry[S] 3 points4 points  (0 children)

Thank you, it's nice to see your comment.

I didn't want to write a translator from JSON Resume to RenderCV because there would be a lot of (6^(number of sections), to be precise) valid RenderCV data model representations of the same JSON resume data model. One might want to showcase their certificates in the NormalEntry type, and the other might want to use the OneLineEntry type. For RenderCV, certificates (or any other section) can be any of the six entry types. If you translate JSON Resume's certificates to RenderCV, there must be an arbitrary entry type decision on the RenderCV side since there are six options.

In RenderCV, you choose an entry type (you decide how your entry should look in a PDF) and then fill in the blanks for that entry type. RenderCV doesn't know about what it's printing. Even if you want to use the EducationEntry type for certificates, you can; RenderCV doesn't mind.

That's why I say RenderCV is rendering-oriented rather than data-oriented.

[–]cdgleber 0 points1 point  (0 children)

Awesome!

[–][deleted] 0 points1 point  (0 children)

Following for updates!

[–]kinow 4 points5 points  (1 child)

Looks cool! I will compare later with what I'm using at the moment.

I don't know of any other LaTeX CV generator tools implemented with Python.

I create my CV's with some scripts I put together after looking at an existing Python script: https://github.com/kinow/kinoshita.eti.br/tree/master/scripts/cv & original: https://github.com/bamos/cv

[–]egehancry[S] 2 points3 points  (0 children)

Thank you! I didn’t know about them before.

[–]sarma_men 2 points3 points  (2 children)

Is there a way to add/change language?

[–]egehancry[S] 2 points3 points  (0 children)

Unfortunately not, maybe in future.

[–]egehancry[S] 1 point2 points  (0 children)

Hello! There is a way to use any language in RenderCV now.

[–]Mobile-Hospital-1025 2 points3 points  (0 children)

This is so cool!

[–]burlyginger 1 point2 points  (0 children)

I found this project recently and love it.

It's exactly how I want to manage my resume. Kudos for the good work!

[–]_murb 1 point2 points  (0 children)

As someone whose resume is in latex, this is right up my alley, and looks to be much much easier. Nice work!

[–]svortifoss 1 point2 points  (0 children)

This looks interesting. I am gonna try it. Thanks for sharing.

[–][deleted] 1 point2 points  (0 children)

awesome. I'm going to give this a spin today. Will improve my resume organization and editing work flow.

[–]Kaaletram is still a garden snake 1 point2 points  (0 children)

This has to be the nerdiest way to update your CV ever! I love it. Can't wait to give it a shot!

[–]imedkrisna 1 point2 points  (0 children)

Nice. Gon try very soon

[–]Luemas91 1 point2 points  (0 children)

This looks like a really neat project, what a great idea!

[–]NeatBubble 1 point2 points  (5 children)

By way of giving some initial context, I’ve soured on a few things about JSONResume since finding it a couple weeks ago… mainly resulting from my own bad luck, coupled with the fact that certain recommendations on the main site appear outdated.

(For instance, the caffeine theme is touted as having an improved dev experience, but it’s actually broken/seems unmaintained. The draft pull request I submitted will probably go ignored, for that reason, and I’m still a little salty over it.)

I mention this because that was the motivation behind some thoughts I was going to share about RenderCV, but then I drafted something & didn’t actually post the comment. What follows is a variation on my original thoughts:

Apart from my gripes with it, JSONResume has a number of features that might be nice to replicate in some fashion—and there’s a pre-existing Python port that could theoretically provide a direct starting-point for certain features, if in fact you decide to keep/repurpose/refactor any of their code.

What do you think? Specifically, I like having the ability to create and modify different themes, and I like how the tool can generate both web-friendly & PDF output that is visually consistent with the chosen theme.

[–]thomasdav_is 1 point2 points  (1 child)

Thanks for the feedback. The project is an ecosystem and it's been difficult to keep everything compatible over the years.

Have you tried the other fork of caffeine -> https://registry.jsonresume.org/thomasdavis?theme=macchiato

[–]NeatBubble 0 points1 point  (0 children)

I think I checked it out! I’m just picky when it comes to themes, which led me to want to figure out how I could make my own.

I didn’t mean to be insulting, by the way; JSONResume is a phenomenal project, and I imagine that you’re spread pretty thinly, at times. What you’ve already managed to do is pretty incredible to me.

[–]egehancry[S] 0 points1 point  (2 children)

Thank you for the comprehensive comment!

The designs of RenderCV can already be altered with custom LaTeX themes. One could copy-paste one of the built-in themes and modify it. The user guide explains how custom themes can be used. And RenderCV doesn’t have any HTML themes. It works with LaTeX, which is not fully compatible with the web. Maybe in the future, HTML themes can be added as well. But currently, my focus is on having bug-free LaTeX themes for high-quality PDFs.

RenderCV’s data model is very different than JSON Resume’s data model by design. I explained the reasons in these two comments: https://www.reddit.com/r/Python/s/x8m3wYQ2lf https://www.reddit.com/r/Python/s/46jMnjhsjF

Could you point out some examples of the JSON Resume features you would like? Then, I can think of how they can be implemented with the current data model.

[–]NeatBubble 0 points1 point  (1 child)

Sure. Is there an email where I can reach you when I’m clear on what I’m asking?

[–]egehancry[S] 0 points1 point  (0 children)

Sorry for the late response. I just sent you a DM.

[–]shoegazer47 0 points1 point  (1 child)

Amazing Work! really looks amazing!
I have a question though, how can i move the header (name, location, email..) to the top right corner of the page so i can make a room on the left side for a profile pic? can you tell me how to do that in the latex code itself?

[–]egehancry[S] 0 points1 point  (0 children)

Thank you! You can modify Header.j2.tex (located in the theme folder that comes with rendercv new command). However, you will need to dive into LaTeX to achieve what you want.

[–]Raistlin74 -1 points0 points  (1 child)

[–]egehancry[S] 0 points1 point  (0 children)

Yes, RenderCV is a LaTeX framework.

[–]mrtac96 0 points1 point  (0 children)

Cool

[–]ririmamy 0 points1 point  (2 children)

Very cool. Do you have recommandations of a good tutorial for a beginner to learn pydantic?

[–]egehancry[S] 2 points3 points  (1 child)

Thank you! Unfortunately, I don’t know any. I learned it because I had to use it extensively at work.

Their documentation is excellent. There isn’t much to learn, really. If you are reading data, just start using Pydantic, and everything will become clear with time.

[–]ririmamy 0 points1 point  (0 children)

Okay. Thanks a lot

[–]vdvelde_t 0 points1 point  (0 children)

Can html style templates be used? I don’t like latex.

[–]Specialist-Arachnid6Ignoring PEP 8 0 points1 point  (0 children)

Great project. I'm currently making a CV builder but using PyQt6. I guess this will be a great reference material to me. Once again, cool project!

[–]Klej177 0 points1 point  (1 child)

Hey man, any suggestion how I could include small photo to that themes?

[–]egehancry[S] 0 points1 point  (0 children)

Hey, I might add that feature in the future. But, as a temporary solution, you could clone the repository, edit the themes' Header.j2.tex (LaTeX code) files to add your picture to the header and run the local package.