After a solid couple of months traveling around Canada it was time to get back on the tools. I wanted to design and build something useful for myself and for others. I’ve recently been beefing up my personal site a little bit, and I wanted to further automate the process of updating my résumé section.
Try out the project for yourself at resumebuilder.rowanhogan.com.
I ended up taking a different direction than I was originally planning just for this site. Initially I was just focused on scraping data and rendering HTML & PDF with Middleman.
The goal of this project is to allow anyone with a Linkedin profile to export a simple, beautiful PDF résumé.
Linkedin itself provides this functionality, but it’s a little lacking in the design department, and this app allows you to include additional information. This app allows you to add/remove or update items from the pre-filled data, and provides a small level of design control.
Initially (in a couple of hours) I had one Sinatra app that was successfully scraping Linkedin data and rendering PDFs – Job done!
Hosting the app in production with these dependencies meant a few changes. Heroku was my first choice, but as Heroku IPs were blocked by Linkedin I had to explore alternative hosting options. This meant splitting up the components into smaller pieces:
- A static app controlling user input / state
- A server on Openshift running the scraper.
- A server on Heroku rendering HTML to PDF.
At this stage I just took a username, grabbed the profile data and generated a plain PDF. Next I built a small AngularJS app to allow the user to modify the data and control the design. Unsurprisingly, this is where I spent a great majority of the design & development time.
The code is available on Github. Contributions welcome!