Welcome to the Resume Generator! This tool is designed to simplify and streamline the process of creating consistent, professional resumes. By separating content from styling, you can focus on crafting compelling resumes while the tool handles the formatting.
Crafting tailored resumes for each job application can be a time-consuming and tedious process. I wanted to easily change out the content of my LaTeX resume without the hassle of manually updating the file each time. Thus Resume Generator was born. As always, there is a relevant XKCD comic:
The Resume Generator leverages Go and LaTeX to provide a powerful and customizable solution for resume creation. The principle behind this tool is to create a separation of concerns:
YAML
file.[!CAUTION] Developed and tested on Fedora Linux. The tool may not work as expected on other operating systems.
YAML
file, making it easy to update and maintain.YAML
file.pdflatex
under the hood.git clone https://github.com/munirmah/Resume-Generator.git
cd Resume-Generator
go get .
go build .
You can run the tool using the following command:
./Resume-Generator
You can specify a base.yml
file to use as the base resume content by passing the -b
flag.
This allows you to easily generate new resumes without having to include unchanging information such as your contact details.
The base.yml
file should adhere to the schema specified in the resume.json
file.
You can generate a cover letter alongside your resume by passing the -c
flag.
You can regenerate the configuration file by passing the -config
flag and overwriting the existing configuration.
You can specify the name of the cover letter file by passing the -cvr
flag.
[!NOTE] The default value of
"default"
will generate a file with Name, resume file name and "cvr". For example, if the resume file name isresume.yml
and the name isJohn Doe
, the cover letter file will be namedJohn_Doe_resume_cvr.pdf
.
You can specify the directory where the PDF output files will be saved by passing the -dir
flag.
You can specify the file containing the resume content by passing the -f
flag.
You can specify the file md
containing the Kanban board for the Obsidian integration by passing the -k
flag.
You can specify the logging level by passing the -l
flag. The available options are:
info
warn
error
debug
You can specify the order in which the sections of your resume are rendered by passing the -o
flag.
[!NOTE] The letter to section mapping is as follows:
e
: Educationx
: Experiences
: Skillsp
: Projectsc
: Certificationst
: Customm
: SummaryAny sections not included will not be rendered in the final resume.
For example:
./Resume-Generator -o xsm
This will render the Experience, Skills, and Summary sections in that order.
There are some special values for the order field:
none
: The tool will prompt you to select the sections you want to include in your resume.all
: This will render all available sections in base.yml
and resume.yml
files. Primarily used for testing, as the order of sections is not guaranteed.You can specify the name of the PDF output file by passing the -pdf
flag.
[!NOTE] The default value of
"default"
will generate a file with Name, resume file name. For example, if the resume file name isresume.yml
and the name isJohn Doe
, the cover letter file will be namedJohn_Doe_resume.pdf
.
You can enable real-time preview of the resume by passing the -r
flag.
You can enable the tool to open the generated PDF file by passing the -s
flag.
You can enable the Obsidian integration by passing the -t
flag.
You can specify the directory where the LaTeX templates are stored by passing the -temp
flag.
You can specify the directory where the LaTeX files are stored by passing the -tex
flag.
The tool will, by default, look for a .config
file in the current directory. If not found, it will ask you to locate one or create a new configuration file.
Choosing to create a new configuration will guide you through the setup process and will save it in the current directory.
This helps you to avoid passing the same flags every time you run the tool.
[!NOTE] You can still override any of the configuration options by passing them as flags when running the tool.
The configuration file follows the schema specified in the config.json
file.
The templates are stored in the templates
directory. You can create your own templates or modify the existing ones to match your personal style. They are written in LaTeX and follow the standard html/template
syntax.
Contributions are welcome! Please feel free to open issues or submit pull requests.
This project is licensed under the MIT License.