Resumes and cover letters in Obsidian
As a part of my general job hunting with obsidian workflow, after I have captured listings to apply for in my vault, I then need to write/maintain both my resume and make new cover letters -- done exclusively in plaintext .[1]
This is a quick guide on using Obsidian.md with Pandoc/Obsidian Enhancing Export and adapting the workflow by Sonya Sawtelle (so all the credits to her).
Basically the workflow goes like this.
- *Pandoc to convert
.md
files to.html
, applying styling via a.css
file. > - Then calling on wkhtmltopdf through pandoc to convert the
.md
file of your choice to a.html
, outputting into a.pdf
or a.docx
-file with your choice of stying
You will need the following packages (see strings after brew install
) and the Obsidian Enhancing Export plugin in your vault.
brew install pandoc wkhtmltopdf
I'd recommend cloning Sonyas original repo moving forward, but I will also provide mine with the changes in to the original.
Set up Enhancing Export
Once installed, make sure Obsidian Enhancing Export is correctly set up to recognize these tools in your system's $PATH
under the sub-menu Settings/Enhancing Export/Advanced/Environment Variables
. If you screwed up your paths, echo which pandoc
or which wkhtmltopdf
and copy the paths in there.
You will have to create a new command template under Settings/Enhancing Export/Edit Command Template
. For mine, I've just made a preset for CV/CL (Resume/Cover Letter).
- Because a nice thing with the workflow, is that it can be used for both a resume and as a Cover Letter exporter, and custom elements can be added before exporting the document #extra elements including image headers/profile information headers and stuff like that.
Insert the following settings in the main/extra argument fields separated by a space, or a newline as shown below
Main Arguments:
-f markdown
--resource-path="${currentDir}"
--resource-path="${attachmentFolderPath}"
--extract-media="${attachmentFolderPath}"
-c "${vaultDir}/System/Settings/Pandoc/Resume/cv_cl_stylesheet.css" -s -o "${outputPath}" -t pdf
Important things to note: You can have multiple resource paths and extract-media path, see the documentation for the variables you can use.
- Extra arguments:
--pdf-engine=wkhtmltopdf
In obsidian properties/yaml, the following variables change the output
title
changes the author name, important as the css right now needs it
margin-top/right/bottom/left
changes the margins, make sure these are text fields and not dictionaries
margin-left: 0.5cm
margin-right: 0.5cm
margin-top: 1cm
margin-bottom: 1cm
title: {Insert your name here}
To extract images, like profile pictures and custom icons as actual images, these need to be in a very specific format. It must be Angle Bracketed Markdown URLs and must be visible (do it by prepending !
) < >
is needed because the link to this specific image or resource has special characters like ()
, spaces
, /
or other characters that makes it unable to render.
Easiest way to do this is getting the links plugin by mii-key and converting them into markdown links. Just make sure that you, under Settings/Files & Links/New link Format
set it to Relative path to file so Pandoc can actually get the images and attachments you're trying to export.
I like to do this manually myself. Just make sure it is in the following format:
{width=100}
.
- Note that
{width (or) height=100}
is optional and is measured in pixels
My tweaks to Sonyas Original Workflow for the Resume
These are the changes and tweaks I've made inside of my own version of the stylesheet.
- Added two new .css containers, profile for profile headers and profile-info, to insert these into your own, just create pandoc containers with an opening and closing
::::
for the header and:::
for theprofile-info
- //TODO There are also containers for
profile-picture
,profile picture.img
respectively which are flex-boxed to take up an appropriate amount of space - //TODO. I also need to implement a to/from/field
- ✅ #do/obsidian #delete-this-tag something #delete-this-tag ➕ 2025-02-04 ✅ 2025-02-04
- //TODO There are also containers for
:::: {#profile-header .profile-header}
::: {#profile-info .profile-info}
###### [LinkedIn.com/in/`REDACTED`](https://www.linkedin.com/in/`REDACTED`/) | [contact@`REDACTED`.com](mailto:contact@`REDACTED`.com) | +46 072 150 6698 |
**I am:** a masters-level urban planning graduate and certified Water & Wastewater engineer from Sweden. Core competencies include Geospatial analysis with GIS-programs, BIM software, python and Autodesk CAD software including Civil 3D.
:::
:::::
The benefits with this system is that I can rapidly edit and change things before exporting, and everything is in a light-weight version-controlled system using things like git. ↩︎