Awesome-CV-Timeline is a latex resume template built on top of awesome-cv.
π Features:
- Modern look with a two-column layout
- [Left]: Personal info, skills, keywords
- [Right]: Experiences, education, projects
- [Separator]: simple timeline with emphasis on chronology inside sections
- Main content: sections with job title, company, date and location
- Detailed experience with bullet points
- Clickable socials
- Github
- Address
- ORCID
- Supports images
- Supports multi-pages
Here's an example of the output:
git clone https://github.com/slyces/awesome-cv-timeline resume && cd resume
cp -r examples/multi-pages private # Copy the example
cd private # Go in the folder
make build # Build the example (using latexmk)
open build/resume.pdf # Look at the output
Tip
If you want to see the output of your changes live, you can also run
make preview
Here you go! Now, you have your own copy of the example and you can start replacing information with yours. Your code is not checked into git, so there's no risk of leaking your personal information.
If you find yourself wanting to change how things look, or you're interested in versioning your resume, keep reading! Otherwise, happy tinkering, and good luck with the job search ;)
Happy to have you here, please keep reading! I'll go into the details of advanced usage and how to make sure you can contribute the awesome improvements you will no doubt implement while playing with this template!
The code heavily comments whatever can be to ensure that you can easily extend this template and question any given implementation detail if there is a better way. There is also plenty of diagrams in the code.
The main problem with resumes is that you usually don't want the source to be available to the public on github. So most people will just copy a template at some point (in overleaf or a private git) and forget about the original repository.
In this repository, I tried to provide a structure that allows you to work on your private data while keeping the upstream source (this repository) to either pull in new features or push your contributions.
If you don't need any future improvement with the template or don't want to
provide some yourself, you can just copy the main level code to a new private
repository or overleaf and delete the files you don't need (examples/
,
README.md
, ...).
Your structure should look something like this:
.
βββ LICENCE
βββ Makefile
βββ README.md
βββ fonts/
β βββ ...
βββ build/
β βββ resume.pdf # <- your output
β βββ ...
βββ resume.cls # <- styling
βββ resume.tex # <- main file
βββ sections # <- any subfiles to organise
βββ experience.tex
βββ ...
βββ skills.tex
In order to keep compatibility with future upstream changes, you need to structure your resume in a folder, like so:
.
βββ LICENCE
βββ Makefile
βββ private # <- default name in .gitignore
β βββ build
β β βββ ...
β β βββ resume.pdf
β βββ Makefile -> ../Makefile # <- this is a symlink
β βββ resume.tex # <- main file
β βββ sections # <- any subfiles to organise
β βββ experience.tex
β βββ ...
β βββ skills.tex
βββ README.md
βββ resume.cls # <- this shouldn't change
How's that different from before? Well, now, we've isolated your resume in a folder.
This means multiple things:
You can remove this folder from git
You can add this folder to .git/info/exclude
to make sure it's not checked out
into your clone/fork of this repository (the template). It means you won't
publish your private information by mistake, and as long as you don't edit the
resume.cls
and the Makefile you can pull any future improvements to it.
- By default,
private
is in the.gitignore
as an example
You can add this folder to git (but not the same one)
You can create a repository for your main files (the private
folder above) with git init
, and associate it with any upstream (public or private, github, self-hosted, ...).
- This allows you to keep your version history however you see fit
- The resume's content is now stored separately from how it looks (not too big of a deal if you mark down the upstream version you rely on)
- You can also do things like cloning twice the same repository on different branches, if you need to maintain different flavours at all times (e.g. different languages)
.
βββ LICENCE
βββ Makefile # <- this shouldn't change
βββ french
β βββ Makefile -> ../Makefile
β βββ resume.tex
β βββ sections
β βββ ...
βββ english
β βββ Makefile -> ../Makefile
β βββ resume.tex
β βββ sections
β βββ ...
βββ README.md
βββ resume.cls # <- this shouldn't change
Try to keep the Makefile
as a symlink so you have the same experience across different folders, and edit the main level one!
Depending on the content of your resume, the existing layout might not look good. You might want more or less spacing here and there.
There are two tools provided to you to work on the layout.
In your resume.tex
you should have the following line:
% Enable to see border on tables and other layout indicators
\setbool{debugmode}{true}
Once enabled, you should see boxes around stuff, like so:
This should help you figure out how different parameters impact the different components, although I advise you to always look at the production version of your document to know if it looks good.
The template resume.cls
has the following diagram to describe the different
lengths available for you to edit (does not include regular latex lengths).
% βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
% β β
% β β - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - β β
% β β \headerbeforeskip β
% β β<---------> \headerphotowidth β β
% β βββββββββββ β
% β ββ ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
% β β ββ Name Surname β β
% β ββ picture βββ \headerinterskip ββ β
% β β ββ job title - specialisation β β
% β ββ ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
% β βββββββββββ β
% β β β \headerafterskip β β
% β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
% β ββ Summary ββ β
% β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
% β β β \summaryafterskip β β
% β <-------------> \leftcolumnwidth β
% β β <---> \leftcolumnrightmargin β β
% β ββββββββββββββββββββ¦βββββββββββββββββββββββββββββββββββββββββββββ β
% β ββContact β β β βExperience ββ β
% β β β β β ββ \sectioninterskip β β
% β ββΟ ~~~~~~~~β β β βCompany Locationββ β
% β βΟ ~~~~~~β β β βJob Title start - stopβ β
% β ββΟ ~~~~~~~~β β β ββ’ ~~~~~~~~~~~~~ <------------>ββ β
% β βΟ ~~~~ Ο ~~~~β β β β β’ ~~~~~~~~~ \datelocationwidthβ β
% β ββ β β ββ \sectionafterskip ββ β
% β βSkills β β β βExperience β β
% β ββ β β β β ββ β
% β β <-> <-> \timelinemargin β β
Eventually this could be combined with the previous debug flag to show them live on top of actual document you're working with.