This repository contains an alternative solution to GUI-based CV creation tools.
The user specifies the contents of the CV using a YAML file. This file gets read by a Python script to manipulate a LaTeX template and afterwards the template gets compiled.
Alternatively, if you cannot be bothered with Python and are somewhat familiar with LaTeX, the template ./src/CV_template.tex
should be reasonably understable and can be used on its own.
personal info:
name: Shawn Stick
photo path: pic.png
address: |
Main Street 5
Place-to-be
email: [email protected]
phone: 12345678
linkedin: /in/sticksh
github: ShawnTheStick
about me: |
People consider me flat but are still drawn to me
qualities:
- Core Competencies:
- Precision: .8
- Communication: .9
- Skills:
- Juggling: .8
- Air Guitar: .55
- Languages:
- English: .8
- Chinese: .25
vita:
- Experience:
- Jobless:
at: Home
from: 2002
to: today
- Dog walker:
at: Local Park
from: 2000
to: 2002
doing:
- Acquiring customers through word-of-mouth
- Chasing loose dogs
- Education:
- PhD:
at: School of Hard Knocks
from: 1997
to: 1999
doing:
- Eating pizza
- Master's:
at: Kindergarden
from: 1995
to: 1996
├── input # input folder containing the base example
│ ├── example.yaml # YAML file for building an example CV
│ └── pic.png # image needed for the example.yaml
├── src # folder containing source codes, LaTeX templates, etc
│ ├── icons # folder of icons embedded into the template
│ ├── example.png # image of the example output for README
│ ├── latex_cv.py # Python module which transforms and compiles the template
│ └── CV_template.tex # LaTeX template getting transformed
├── output # default output folder
├── main.py # entry point to the python program flow
├── CV_config.yaml # configuration file for input and output folder
├── README.md # read-me file
└── requirements.txt # requirements for running and developing the code
Make sure the following is installed on your machine:
If the above programs are installed, follow these steps:
git clone https://github.com/KainAber/latex-cv.git
cd latex-cv
pip install -r requirements.txt
./main.py
This last step generates a .tex
file and then calls subprocess.run
to execute a latexmk
command compiling that .tex
file.
Both the .tex
and the .pdf
file are created inside ./output
based on the .yaml
file inside ./input
which was updated last (example.yaml
in this case).
To create your own CV, simply create a .yaml
file inside ./input
which mimics the contents of ./input/example.yaml
and re-run main.py
.
In order to not have to work inside the repository folder, the file ./CV_config.yaml
affords the capability to change the the input folder (which is used to select the CV contents .yaml
file) and the output folder (used for exporting .tex
and .pdf
files).
If you additionally create an alias in your shell configuration for the execution of main.py
, you can essentially use this repository from anywhere inside your system.
This section is going step through each part of the example.yaml
file which the program uses to fill the CV template.
personal info
name
address
address.png
icon on the left-hand side; can be omitted / left blank to exclude the iconemail
address
; will additionally be linked outphone
address
linkedin
email
; use the LinkedIn url slug for the link to work, e.g. /in/williamhgates
github
linkedin
aboutme
name
field on the right-hand side of the CVqualities
- Core Competencies
- Communication
vita
qualitiy
, the sections themselves are not retrieved by name and can be set dynamically- Experience
- Jobless
Education
, the name of a degree can be usedat
from
to
from
doing
colors
personal info
, none of the fields of this dictionary are retrieved by name#
can be omittedleft side fill
left side accent
left side text
right side fill
right side accent
right side text
right side text
from
, to
, at
line of vita items)geometry
personal info
and colors
, none of the fields of this dictionary are retrieved by nameleft side ratio
.33
margins
1.5em
left side text padding
2em
right side text padding
2em
photo border
2pt
language
english
example.yaml
color scheme is from colorhunt.co