They say your resume needs side projects... why not make your resume the side project?
This repository acts as a VC for my resume contents using a custom TOML resume schema, along with utilities rendering my resume with Typst.
View my latest resume here!
You will need the following prerequisites:
Then, clone this repo and navigate to its root directory. From here, you can compile and run the tool with cargo run.
You can view the CLI options with cargo run -- --help.
I use Typst to render my resume with a static template defined in template.typ. On the side I use tdf to view PDF renders in my terminal with hot reloading.
template.typ is set up to read in resume data from a given file path specified by the data_path key in the sys.inputs dictionary. This key can be set with the --input flag when compiling with Typst.
The CLI can then be used to handle resume "queries" (filters, overrides), simple orchestration of typst compilation, and file system + artifact management:
- Read and deserialize resume data
- Apply queries
- Serialize back to TOML, write to an artifact
- Render
template.typto PDF, passing in a path to the queried resume data - Read the raw PDF bytes from
typst - Write the PDF
The main utility of this CLI is to separate resume data from resume view with declarative configuration for one or many variants. This way, you can keep record of all of your historical resume data within a resume TOML file while only rendering the notable, recent, or relevant parts.
A resume variant can be defined within a reze.toml file specifying:
- The variant's title
- Paths to the underlying data, output location, and Typst template
- Queries on the underlying data
A JSON schema definition for this configuration can be found in config.schema.json.
Commits to main will trigger a GitHub Actions workflow to render my resume as a PDF artifact and deploy it to GitHub Pages.
- Better logging