I recently released Jobless. Well, I released it a few months ago, and already held a lightning talk about it on WebCamp Zagreb but I didn’t write about it earlier.

Jobless is a DSL, written in Ruby, for generating CVs. I started working on it mainly out frustration with available tooling. I don’t like working with rich text editors, and writing an HTML/CSS document from scratch feels too cumbersome. I was also reading Metaprogramming Ruby at the time and wanted to try out some of the techniques mentioned there.

I won’t go in-depth about how to use Jobless, because it’s rather simple and I believe it’s described well enough on its GitHub page. But here’s an example of working Jobless code so that you get the basic idea.

Jobless.cv do
  name "John Doe"
  email "john.doe@gmail.com"

  employment do
    entry do
      title "Full-stack Rails developer"
      company "Royal Programming Squad"
      start_date "April 2015"
      end_date "June 2015"
    entry do
      title "C# Developer"
      company "Microsoft"
      start_date "January 2015"
      end_date "April 2015"

  open_source do
    github_repo "dabrorius/jobless"
    github_repo "dabrorius/markov-noodles"

So you just set your basic info, add employment, education and other types of experience, compile the code and that’s it. I recently added github_repo keyword that automatically fetches data about your project from a GitHub repository.

Original idea was to generate a HTML document and then convert it to PDF with something like pdfkit or wicked_pdf. This would allow the user to write custom CSS for their CV and still get a PDF version. The problem is that they both depend on wkhtmltopdf which is a C library. I felt like it would complicate the tool too much, and I wanted Jobless to be super easy to install and use.

I ended up dropping the PDF support because you can easily convert HTML to PDF using a browser. However, I recently noticed an issue with this approach. Browsers tend to enter page breaks in your CV in worst possible places. There’s a CSS attribute that should prevent this but it doesn’t really work, browsers just ignore it.

I like the idea of having HTML as a base version because it’s easy to override the default style by the user but the problem with converting to PDF is too annoying. So the plan is to release a new version of Jobless that will be generating a PDF directly. Prawn is, unlike HTML to PDF conversion gems, pure Ruby, which is great.

I’m still not sure when the new version will be released, but it is on my to-do list.