LaTeX-Tutorial.com

How to write a minimalistic cv in latex: step-by-step guide, learn how to write and customize a minimalistic curriculum vitae in latex. understand the logic behind every macro, and also how you can make modifications to customize it..

how to build resume using latex

If your goal is not to become a TeXnician, but instead to have an easy way to write a CV in LaTeX, I am sure this tutorial will also be useful to you. You will find a fully working LaTeX template to write a CV and a detailed explanation that can serve as a reference when you want to change any aspect of the template. If you don’t care about the Technical details, you can jump straight to the last section , in which you will find a high-level and user-friendly use of the macros, to quickly produce a professional CV.

Without further introduction, let’s start writing our professional and minimalistic CV in LaTeX.

Required packages for typsetting a CV in LaTeX

1. document class.

Opens in a new tab.

As an optional argument, we will choose the font size of the document to be 12pt. Thus the first line of our document is:

2. Language and encoding

Next, we have to load the packages we will use. To begin with, let us load some basic packages:

3. Set the document font

In our example, the main font of the document is not LaTeX’s default font Computer Modern ; instead, we load the package:

which sets as default font the TeX Gyre Pagella.

CV LaTeX Font

4. Specify the CV margins

As you can see, the configuration command \geometry is very straightforward and lets us easily modify the size of the left, right, top, and bottom margins, setting them to the TeX dimension we want. Note that in our example we leave the default right and bottom margins, that’s why those lines are commented out (any margin that is not specified as the default length).

5. Remove headers, footers and page numbers

The page layout configuration is finished with the following command:

which empties the page from other elements like headers, footers, page numbers, margin notes, or anything like that.

6. Modify sections style to meet CV style

We change the font of the sectioning commands in the following ways:

  • We make the font smaller: instead of using the \Large default font size it uses \large.
  • We change the font family: instead of the font set for the entire document, for the sections we use the font \TeX Gyre Adventor, which can be loaded with the font code qag.
  • Finally, we print a horizontal rule 5pt below the title, with a thickness of 1pt.

Once we have loaded the packages we will need, we have to define the macros used to write each of the entries in the document.

2. The macros

It is important to define macros for this purpose, instead of writing the text directly in the main document, for at least two reasons.

  • First, the code becomes much shorter and cleaner, since we don’t have to specify the font size, type, etc. each time we want to write a new entry.
  • Second, the code becomes much more reusable, because this way the user doesn’t need to understand what’s working behind, he can simply use the macros to write his CV without knowing any LaTeX at all.

Before writing our first macros, we need to define a new length, which will be used to align text on the same line (for example, in the entries for personal information, or to write the duration of each work entry):

1. Predefined lengths for space boxes

As you can see, we set this new length to be equal to the width of the box formed by 123456789. It is also convenient to define a macro to easily insert the same vertical separation between entries each time:

2. Name macro

Now it is time to write the macro that prints our name at the top of the CV:

This macro does the following:

  • First, it sets the \Huge font size , so that our name outstands in the document.
  • Next, it changes the font family. In this case, we chose the Helvetica font family, with font code phv .
  • Following that it prints the name (which is passed as the first and unique argument to the macro) centered and using the boldface .
  • After all of this, it ends the paragraph with \par and sets back the default size and font .

3. Slogan macro

A similar macro is used to define the motto, or slogan, of the candidate:

The only thing that changes with respect to the \name macro is that the font size is now \large, and the text is printed with a slanted font.

4. Personal details macro

Once we have the heading of our CV, we want to print the personal details of the candidate (contact information, address, and the like). Thus we define a macro to write each of these personal entries:

Let’s break down what this macro does since it is pretty different from the ones defined before:

  • Before the contents of the macro, note that it will be passed to parameters: the first one will specify the name of the (personal information) entry, while the second will specify the contents of that entry. We separate these two so that we can give different format to each of them, and also set some separation.
  • For this entries we set a specific indentation from the right margin. We first delete the default indentation with \noindent , then set our custom indentation with \hangindent , and finally indicate for how many lines we want this indentation with \hangafter (zero means that all the lines will have this same indentation).
  • Now we create a paragraph mode box with \parbox of size \spacebox as was defined previously. Inside this box we want to have the entry name slanted.
  • Finally, we print the entry contents using the default font and end the paragraph with \par .

If you get what this macro does, and understand what each command means, the remaining macros will be a piece of cake, since the structure is very similar.

5. Skills macro

To introduce skills and language levels we have the macros

As you can see, these are essentially the same as the \info macro , but let me make you aware of some differences.

  • First the entry name space for the \verb|\skill| command is \verb|3\spacebox| instead of \verb|\spacebox|, since we want one of the skills to be “Programming languages” which doesn’t fit in a single line of width \verb|\spacebox|. I suggest you too adjust these lengths to fit the needs of your entries.
  • What also changes is the font type of the entry names: for the skill it is smallcaps, and for the languages is boldface. These are, of course, arbitrary choices, and you can set them as you like the most.

6. Education macro

Finally let’s have a look at the two most complex macros, designed for education and work entries. First the macro for education entries is

This may seem a lot to get your head around to, but let me break it down for you into small steps:

  • This macro has four arguments: the first specifies the name of the studies, the second the duration, the third the institution, and the fourth a more or less brief description.
  • We write the name of the studies with no indentation in bold text.
  • Then we use the \hfill command to write at the right the duration of the studies. This duration is written inside a \parbox of width 6em , is centered inside the paragraph box with \centering , and written in bold. Finally, the box is wrapped with a frame, using the \framebox command.
  • Then we start a new paragraph with \par , and with no indentation we write the institution using italics. Again, we end the paragraph and start a new one.
  • Finally, we leave 0.5em of vertical space, and with the same custom indentation as the one used for the personal, technical and language entries, we write in small text the description of the studies. Finally, we go back to the normal text size and end the paragraph.

7. Work macro

The work entry for our curriculum is essentially the same as the education entry:

But we wrote a separate macro in case you wanted to customize its appearance.

The main document

Now all of the hard work is done. It is time to see a small implementation of the previous macros, that is to say, a small example of how to use these macros, so that we can produce the example below.

Of course, every snippet that will appear in this section is no longer part of the preamble of our document; instead, it is all written inside the document environment .

First let’s write our name, motivation, and personal information:

  • Note the need for the adequate vertical spacing each time: to get the motto closer to the name, we deleted 10pt of vertical space, which in our opinion made the title look better.
  • We also added a \sepspace between the title and the personal info, and wrote the email with the typewriter font type, to make it look more professional.

Following this we have the work experience:

As you can see, between each entry we use a \sepspace . Similarly, we have the education section:

In this case, the education entries need no description. For this reason, we don’t use the \sepspace between entries, since they seem to look fine this way. However, this is just a matter of taste, so it is your final decision how it should look like.

And to finish the curriculum we have the sections with skills and languages:

In this tutorial we have seen a comprehensive explanation of the source code needed to compile the example of CV shown above.

  • Along the way, we have explained several LaTeX commands to modify spacing , indenting , font size , font types , etc. that I hope will be useful to you in your LaTeX life beyond this project.
  • We have seen some external packages, such as geometry or sectsty , used to customize the appearance of our document, that may also be useful in other kinds of documents.

Therefore I hope this tutorial has not only helped you typeset a professional CV, but that you have also gained some more insight into how LaTeX works with a practical example.

Recent Posts

Typesetting Multiple Choice Questions in LaTeX

n this tutorial, we will see how to write a multiple-choice exam in LaTeX, using the exam document class. This document class provides multiple tools to easily typeset exams in LaTeX, and we have...

How to denote the dot product in LaTeX?

In this post, we will learn how to denote the dot product in LaTeX and which commands can be used!

:necktie: A collection of cv and resume templates written in LaTeX. Leave an issue if your language is not supported!

Latex cv and resume collection.

license badge

:necktie: A collection of simple and easy to use, yet powerful LaTeX templates for CVs and resumes. All of them are self designed and self implemented and not copied from template collections.

Now with support for Chinese, Japanese and Korean character encoding. Setup is only two lines of code! Read more here .

Great first impression

Point out with a progressive layout. Give decision makers and HR only the most important information about you on one single page.

Beginner friendly

Pick a template, replace the content, compile, done. If that’s not enough you can easily customize colors, fonts and layout. The templates are documented directly in the code.

Minimal environment

You need a minimal tex-live distribution to compile the templates. No XeTeX or LuaTeX required. No other SDKs or environments required.

How to build?

Using docker.

We now have a Dockerfile you can use to build your latex environment. For this you need to have Docker installed on your system.

Get Docker: https://docs.docker.com/get-docker/

We provide scripts for building the image and running the containers, so you should fine by simply running the build.sh script:

You should now be able to build CVs simply by providing the folder name:

Constraints: You need to be in the top-level folder of this project and the image has been created (see prior step).

You can also run a daemon and pass through build commands, suitable if you build many times in sequence:

This has originally been implemented by https://github.com/blang/latex-docker/tree/master

Manual build

The following guide just briefly describes the requirements and build procedure as there are many ways to install a LaTeX distribution on various OS. Please create an issue, if this part is not helpful.

Build Requirements

You will need some minimal Texlive distrubution (The full texlive distribution is nearly 2GB large but you will need only a part of it). A good starting point is here: https://www.latex-project.org/get/#tex-distributions

If you want to install texlive from tug.org instead, you can use this guide: https://tug.org/texlive/

Users of various Linux distrubutions can also install texlive from their repositories.

This repo also contains a texlive.profile file in the project root, that can be used to install the minimum required texlive packages when manually installing texlive.

Build Procedure

  • Clone or download this project.
  • Change to a template folder, which contains a main.tex file do
  • Edit the main.tex according to your CV credentials, optionally change settings and colors etc.
  • Run pdflatex (build/compile)
  • The main.pdf should show the output.

Contribution

Contributors are very welcome . You want to contribute? Awesome! Please check the contribution guidelines first to make it a success.

:heart: Thanks a lot to all sponsors of this project, your contribution will help to keep this project going:

The MIT License (MIT)

Copyright (c) 2014-2021 Jan Küster

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

  • Enterprise Java
  • Web-based Java
  • Data & Java
  • Project Management
  • Visual Basic
  • Ruby / Rails
  • Java Mobile
  • Architecture & Design
  • Open Source
  • Web Services

Developer.com

Developer.com content and product recommendations are editorially independent. We may make money when you click on links to our partners. Learn More .

Your resume is quite possibly the most important tool you will use to gain employment as a developer. Without an eye-catching resume , it can be hard to stand out from the rest of the programmers and software engineers applying for the same position you are. Fundamentally, your resume should consist of information about your qualifications and technical skills, as they relate to a developer job.

Read: Top Tech Companies Hiring Right Now.

A programmer’s resume has one simple goal: to land them an interview. For the purposes of this article, though, we will focus on the actual creation of the resume document, which is often overlooked. We will be using a document preparation technology called LaTeX .

Latex Programming Example

LaTeX is typically used for high-quality typesetting. It can be used for a variety of different documents, from long scientific reports to the common resume. LaTeX is all about document design – it separates the design and the text that occupies the document. LaTeX is an extension of the TeX typesetting system, which is a programming language. Don’t worry, we’re not expecting you to know how to code in TeX – that’s what templates are for!

You can develop a document using LaTex through Overleaf , an online LaTeX editor that is free and easy to use right through your Internet browser. One of the most frustrating aspects of creating a resume is making sure the format and spacing are consistent and even. LaTex takes care of that for you, ensuring your document is uniform and visibly pleasing. You can select from hundreds of beautiful resume templates within Overleaf’s gallery . There are also numerous categories for document templates on Overleaf, including cover letters and thesis papers.

Overleaf LaTeX Editor

Overleaf LaTeX Editor Example

Once you have a resume template selected, click “ Open as template ”. If you have not already, you will need to create an account in order to save your work. When your template opens, you will notice that the interface is split in two – the source code on the left and the view of your document on the right.

Read: Top Java Job Interview Questions.

The text in the source code directly affects what appears on your document, so all of your editing will be done there. This makes it so you do not need to know how to code in order to create your document; you just need to know what to change and where it is located in the source code. Most templates even have notes laid out within the source code to help guide you.

That is all there is to it. Simply replace the information in the template’s source code with the information you want to include on your resume. The more you do this, the more you will get familiar with the code and learn how to manipulate it. You may also pick up a few tricks along the way, such as how to include hyperlinks or change the color of your text.

LaTeX Document Creation Tips

Here are a few tips to get you started using LaTeX for your document creation:

  • If you change the source code and do not see the document view being changed, click “ recompile ” in the upper toolbar of the Document View . You can also click the arrow next to the recompile button to do this automatically.
  • To include an “ & ” symbol in your resume, you will need to put a forward slash (/) in front of it (this may or may not work depending on what packages are installed in the template).
  • Do not be afraid to copy and paste sections of the document that you want to duplicate; just be sure to notice where the section begins and ends when selecting which text to copy.
  • If you make a mistake, don’t worry – you can Undo with CTRL+Z on Windows ( Command+Z on Mac).

When you are comfortable with the look of your resume, click “ Save as PDF ” in the upper toolbar of the Document View . Now you have a resume that is beautiful, consistent, and pleasing to read!

Looking for a developer or programmer job? Check out Technology Advice’s Hiring page to see open jobs in the technology field. Be sure to tell them Developer.com sent you!

Get the Free Newsletter!

Subscribe to Developer Insider for top news, trends & analysis

Latest Posts

What is the role of a project manager in software development, how to use optional in java, overview of the jad methodology, microsoft project tips and tricks, how to become a project manager in 2023, related stories, 3 best bug tracking tools for java in 2023, 14 tips for working with visual studio, visual studio code review 2023 | a comprehensive look.

Developer.com

Some keywords I will be using in this guide are:

  • Macro = a shortcut that that runs some predefined lines of code.
  • Environment = perform an action or set of actions on a block of content (delimited by begin and end statements).
  • Commands/Control Sequences = macros defined by your kernel.
  • Package = a set of macros/commands defined by an author that you can import into your project to use (analogous to libraries for programming languages)
  • Separates content from formatting/styling

Many users find it frustrating to edit resume contents in Microsoft Word or Google Docs because they have to worry about the formatting whenever they try to add or remove entries from any sections on the resume. Instead of worrying about styling each entry on the resume individually, you can automate the styling part for the entries in one section and focus on your content. In LaTeX, the content is separated from the styling/formatting. This separation allows you to write without worrying about the page’s aesthetics.

Since LaTeX is a programming language, you can easily customize your resume for different positions by commenting and uncommenting. This technique is a massive advantage if you’re trying to apply for two or more types of jobs (like Software Engineering and Product Management). You want your resume to highlight different experiences for each. Alternatively, if you are typesetting your CV and resume in the same project, you can write one thing in your content file and then configure two LaTeX templates to make your CV and Resume.

  • Version Control

Since LaTeX is plaintext, you can use any version control system (like Git) to keep track of the different versions you have created and quickly revert to an older version. Additionally, it’s easy to share your resume with others using Overleaf or GitHub.

You can download packages to do nearly any type of complex formatting in LaTeX. If you need glyphs or special characters for any reason, LaTeX is perfect for this. Additionally, there are many preexisting document templates that you can fork, modify, and adapt to for your needs.

LaTeX is Free and Open Source Software (FOSS), which means the source code is publicly available. Additionally, this software has existed since the 80s, so it’s unlikely that a document you make now using LaTeX will be incompatible with the language in the future. It’s also easily converted to nearly any format like PDF, HTML, Markdown, or any other format (see Pandoc: https://pandoc.org/ )

There are some drawbacks to making your resume in LaTeX, like the learning curve, but you can quickly remedy this issue by learning using this tutorial.

While making your own resume, you might also hear things about TeX, KaTeX, or MathJaX, so here’s this diagram to help simplify your understanding. They both use LaTeX syntax but are limited in scope

LaTeX is a collection of helpful TeX macros that run some TeX commands to format your document. TeX allows you to write custom commands, functions, and macros to help speed up your publishing process. In addition, LaTeX will enable you to add extra packages for specific typesetting purposes like custom fonts, tables, math symbols, and nice link formatting.

You can also download some fun packages: one for making sheet music, sudoku creators/solvers, coffee-stain makers, and so much more.

flow diagram

I highly recommend following along with this tutorial in Overleaf [ https://www.overleaf.com/project ] since it allows you to share LaTeX files with other people, and they can make comments on your document to offer feedback. Overleaf works on Chrome/Chromium Browsers/Firefox and mobile devices (like tablets) with most functionality.

I wrote this tutorial using Overleaf. However, you are welcome to follow along using any text editor and tex distribution of your choice if you are more comfortable and familiar with that. See https://www.latex-project.org/get/ for download links for your operating system.

If you choose to use Overleaf, here are the steps you must follow.

Navigate to the ‘Projects’ page

Projects page

Click on the ‘Blank Project’ option under ‘New Project’

Blank Project Button

Hit Recompile to render the project in the pane to the right. Done! Your project should look something like this.

Recompile Button

Step 1: Add your Content

First, let’s start by creating a basic document in LaTeX. If you are using Overleaf and followed the setup instructions from above, you should get this:

The code below is just what Overleaf gives you when you create a new document, so don’t worry if you don’t understand what it means just yet.

If you are not using Overleaf, here are the steps you must follow: Use the article class for your document. Use the package titlesec to generate a title for your article. Fill in the appropriate values for the \title \author and \date macros. Make sure to add the \end{document} tag to close the document environment.

You don’t need to worry about what you have in the title field since you will be overwriting the class definition in later steps.

Hit the Recompile button to render your changes. You must do this to update the preview any time you have made changes to the document.

Here’s what that looks like

Here’s what that looks like

The next things you would want to include on your resume might be education or the cool projects you have built! Let’s add that after our date field. Use the \section{} command to make a new section and \subsection{} and \subsubsection{} for creating sub headings underneath that. Fill these sections in with the information you want under each section. Here’s an example of what you should end up with for one section from my demo resume:

Once you’re satisfied with everything here, you can move on to the next step, which is styling. Here’s what the code looks like once you’re done with the first part.

Your code should render like this:

Untitled

Step 2: Defining Sections and Styling

We’re going to start by modifying how sections appear. Add the following line below your document class declaration:

You want to override the behavior of the \section tag. Use the \titleformat{} command and pass the \section command as a parameter. The \titleformat{} command takes four parameters, of which the third one is mandatory.

Make the text bold and larger using the \huge size and the \bfseries macro. Then, set the spacing to be 0em in the third parameter. Finally, add a line beneath the heading by appending the [\titlerule] selector after the brackets for the last parameter.

The final code snippets look like this:

A diagram explaining what each of the parameters in the \titleformat{} do.

Now apply the same styling to the subsection and subsubsection titles. It would make logical sense to make each sub heading a size smaller. Change the size of the subsection to be large using the \Large macro and bold it using \bfseries . Bold the subsubsection with \bfseries . Here’s what the final code snippets look like.

Optionally, add the [runin] modifier to the subsubsection category. I decided to use this since I wanted the body of the subsubsection to be inline with the heading. In the demo resume, you can use that this styling was used in the skills subsection.

2.1 Page Layout Setup

Now let’s set the page layout. Since I live in the US, I decided to set the page size to be letter and the margins to be 1” since that’s standard here. You can change the margins or page size (like A4) based on what the standards are in your country. To do this you have to use a package called geometry , so import it with the \usepackage{} command. Then, set the options for page size and margins. Here’s what the final code snippet looks like:

Now it’s so much nicer! Our content has some room to breathe.

2.2 Title Setup

Next, you need to set up the title properly since it’s currently just the document title and the date. You have to use the titling package to use \theauthor in places other than the beginning of the document.

Import the titling package and use the \renewcommand command to override the default behavior of \maketitle . Center align the title using the center environment. In the first line, add your name using the \theauthor macro. Make your name bigger and bold using the \huge and \bfseries commands. Optionally, add some white space following your name.

Here’s what the final code snippet looks like:

Another thing that could be nice to include would be your email and GitHub link below your name. Import the hyperref package into your document (make sure that this is the last import). Add hyperlinks below your name using the \href{}{} command.

The hyperlinks currently look pretty boring; I can’t even tell that you can click on them right now! Let’s fix that by changing some of the styling. Use the \hypersetyp{} command to change the linkcolor to be blue , urlcolor to be cyan , set colorlinks to be true and make the pdfpagemode to be fullscreen .

Here’s what the final code snippet should look like:

To summarize, here’s what you just added:

And here’s our progress so far:

This on it’s own isn’t a bad resume... but you can make it better!

This on it’s own isn’t a bad resume… but you can make it better!

Step 3: Modularization with Environments

Now this is where it starts getting fancy! Environments in LaTeX allow you to define a certain set of macros on the elements inside all at once. Think of it like a div in HTML. If you set the color=green; in a div, it applies to all of the HTML elements inside. You can initialize a text block in an environment using the \begin{} command.

3.1 Introduction to Environments

\begin{center} is an example of a environment that we talked about earlier. You will now define your own environment that allows you to generate nicely formatted resume entries. To demonstrate how Environments work, here’s a quick example that you can follow along with (but is not on the resume itself).

  • To define our new environment, use the \newenvironment{} command. This example creates a centered text box. So I created two more environments inside this boxed environment that center the text: \begin{center} and put the text in a box: \begin{tabular} .

Then you can call our environment in the document to see how it renders! Use the \begin{boxed} command to begin the boxed syntax.

Here’s a visual overview of what you just did:

Untitled

You first created the centered environment [red box], then the tabular environment [yellow box], and finally, our text is in the center [blue box].

You can also define an environment with parameters and designate one to be optional. In the context of this tutorial, this could be useful when you want to make the location of one of your resume entries optional to include. So the final syntax would look like this:

\newenvironment{<name>}{<begin code>}{<end code>}

This defines an environment with no parameters.

\newenvironment{<name>}[<number>][<default>]

This defines an environment with <number> of parameters of which <default> is the value to set for all uninitialized parameters.

If you want to make more parameters optional, you have to use an additional package like enumitem . Also, see this stack overflow article for further reading.

Then, when you go to use the boxed environment, the parameter for the title will show up in the center above the box.

3.2 Creating the Resume Subsection Environment

Now that you know how to create an environment, let’s define a custom environment for a resume entry.

First, let’s make a list of the attributes in a resume entry. For example, you have the title, position name, dates, and location. So you know that you have to create an environment with four parameters. For this example, let’s make the location parameter optional.

Finally, you need to decide on a name for this environment. I went with rSubsection for resume subsection, but you could call it anything as long as the name is not already used for a standard environment or command. Initialize it using the \newenvironment command as detailed above.

The first two things you need to display is the name and duration of the position like this:

Google May-August 2020

To display each passed parameter, use the #1 symbol where the 1 is the number of the parameter (1 = first parameter, 2 = second parameter, 3 = third parameter so on). Add some flexible horizontal space between the name and the dates using the \hfill macro.

I’m also choosing to bold the company name using \bf to help differentiate it from the position that will go below. Add a newline with \\ , and then you can move on to the second line, which looks like this:

Software Engineering Intern ** ** Mountain view, CA

Since the location parameter is optional, you need to handle the case that it is not passed using the \ifthenelse command. If the compiler is not provided with variable #4 , print variable #3 . Otherwise, print both #3 and #4 . Optionally, use \em to italicize the position name and location.

If you want the entries on your resume to be in bullet points, you have to create a list environment. For the bullet points, I used the $\cdot$ command. I added some optional styling to the left margin, separation between list items, and some vertical space so that each resume entry has some breathing room. You are welcome to take this code and adapt it to your purpose and space needs:

Here’s the final code snippet (I added some comments for readability):

Now, add the following packages to the top of your file to allow what you just wrote to work:

  • \usepackage{ifthen} — Required for \ifthenelse statements
  • \usepackage[parfill]{parskip} — Removes indent on new paragraphs
  • \pagestyle{empty} — Suppresses page numbers

Now that you have finally finished defining your environment, you can start using it! Here is an example job experience that demonstrates how easy it is to input your information. LaTeX takes care of all the heavy formatting work for you.

Screen Shot 2022-02-04 at 1.29.50 AM.png

Step 4: Macros

Now, let’s make some macros to simplify parts of our resume that you are typing a lot. For example, Sofie goes to UIUC, and she doesn’t want to have to type out University of Illinois at Urbana-Champaign or Champaign, IL every time. Also, Sofie collaborates very often with Harsh on school projects. So, let’s add a macro to link to his GitHub every time she mentions him. You can make this easier by creating some macros.

Initialize a new macro using \newcommand{}{} and set the first argument to be the name of your macro. Set the second argument to be the expanded text that you want the macro to generate. Your final macros should look like this:

Now to use this in our code, you can type out the macro \uiuc wherever you want the compiler to spit out University of Illinois at Urbana-Champaign

Here’s an example of the Macros being used in the Education subsection.

It looks pretty much the same in the preview, but it’s just so much quicker for you to type now!

It looks pretty much the same in the preview, but it’s just so much quicker for you to type now!

Finished product

Congratulations, you just made an amazing resume using LaTeX! This tutorial has introduced you to some of the fundamentals of LaTeX for document-making and helped you build your resume. Best of luck on your job search!

References / Additional Reading

Here are some sites that I used as inspiration/background information while making this guide. Feel free to use it as you develop your resume further.

  • https://web.archive.org/web/20180727051638/http://www.thelinuxdaily.com/2008/10/latex-resume-examples/
  • https://lukesmith.xyz/articles/wanna-learn-latex#tutorials — used this as a reference for the first part of the guide
  • https://web.archive.org/web/20151031150425/
  • http://www.toofishes.net/blog/latex-resume-follow-up/
  • https://web.archive.org/web/20151023065248/
  • http://www.toofishes.net/blog/why-i-do-my-resume-latex/
  • �https://tex.stackexchange.com/questions/11955/what-are-the-benefits-of-writing-resumes-in-tex-latex
  • Great symbol look-up site: Detexify: http://detexify.kirelabs.org/
  • The Comprehensive LATEX Symbol List: http://amath.colorado.edu/documentation/LaTeX/Symbols.pdf
  • The Not So Short Introduction to LATEX 2ε: ftp://tug.ctan.org/pub/tex-archive/info/symbols/comprehensive/symbols-letter.pdf
  • TUG: The TEX Users Group: http://mirrors.med.harvard.edu/ctan/info/lshort/english/lshort.pdf
  • CTAN: The Comprehensive TEX Archive Network: http://www.ctan.org/
  • LATEX for the Mac: MacTEX: http://www.tug.org/mactex/
  • LATEX for the PC: TEXnicCenter and http://www.texniccenter.org/
  • MiKTEXLATEX online: http://miktex.org/ & WriteLaTeX1

DEV Community

DEV Community

protium

Posted on Dec 28, 2021

Your new pretty and minimalist resume with LaTex

Hi everyone, today we are going to take a look at how we can create a pretty resume using LaTex .

Minimalist and concise

When writing a résumé we always want to achieve a minimalist and concise document to easily catch the eyes of any recruiter/company. To do so, we want to organize its content into 2 columns, having a good spacing for all the content to fit without losing readability. And here is where LaTex comes to the rescue.

I split my resume into: Skills (33%) and Work Experience (66%) columns.

preview

# Name Section

This is a command that takes 2 parameters: first name and last name. The last name has a thicker font and uses the accent color.

Here you want to list all your skills and additional information. As you can see in the preview, this column has several sections : Info, Education, Course Work, Skills, and Languages.

Here we place general information: location, date of birth, contact information, links . I think having plain urls looks pretty ugly so I decided to follow the following format: {domain}//{user_name} . This way it's easier to have an idea of what the link is about. E.g.

\ Education

For this section I opted for the following format, where each entry is a subsection

\ Course work

A list of all the courses you have finished or certifications you have obtained so far. Here you want to add a link to your certificate if possible (Coursera, Udemy, EdX, etc). If there is no certificate you could add a link to the course syllabus.

For this section, I wanted to list all the tools/languages I know and have experience with, for which I added different \subsections :

  • Programming: all the languages I have experience with
  • Infrastructure: all the infra tools I have experience with
  • Storage: all the storage solutions I have experience with
  • Familiar With: all the technologies I have used for personal projects or PoC at different companies.

\ Languages

The last section is dedicated to the languages you speak, with information about your level. In my case I have used the Common European Framework of Reference . E.g.

# Work Experience

This is, of course, the main section of our resume. Over the years I learned that a good work experience description should provide the following information:

  • Company Name and Website
  • Your Position
  • Month and year
  • Very small description of the company/product
  • What where your main tasks/accomplishments in the company. (Here is the real deal so let's get into more details in the next section).
  • Tech Stack : the company's tech stack. Be careful about not revealing sensitive information.

# Describing your position at company X

I have seen a lot of resumes during my career and I think most of the people fail at describing what they've done while working at company X. So to make it easier, let's list what a good description should have:

  • Achievements : what you have achieved while working in company X? Did you create something amazing? As example, you could write: "I refactored the search algorithm which led to an improvement of 70% in performance". It must be something you feel proud about.
  • What tasks did you enjoy at this position? "I created a PoC to add rust to our event processor"; "I created new tools for automatize deployments"
  • Some trivial tasks : "Prepared migration from Vue to React". Maybe you didn't enjoy these tasks but they were part of your tasks at company X.

Ideally, you want to choose fonts that are easy to read and do not look too fancy . For this project I have used 2 google fonts in order to:

  • have a geek font for the Skills, locations, positions.
  • have a "normal" font for the jobs descriptions.

You can easily change these fonts in the resume.cls file.

Colors are defined as follow

Note that links is our accent color.

That's it! This post ended up being longer than I expected. I hope you found something useful here and I'm looking forward to see your customizations!

protiumx / dev.resume

Your new pretty and minimalist resume.

Your new pretty and minimalist resume. Based on: https://github.com/deedydas/Deedy-Resume

preview

  • Main font: MavenPro
  • Skills font: SourceCodePro

You can change the fonts as you want. I recommend taking a look at google fonts

You can change any color in the class definition .

  • primary: #2b2b2b
  • headings: #6A6A6A
  • subheadings: #333333
  • links: #33AFFF
  • \namesection : The resume header for your name. It expect to arguments: first name and last name
  • \runsubsection : For company name
  • \location : Location of the company

You need a xelatex compiler. I used overleaf to edit and compile my resume.

Sponsorship

If you find this project useful you can support my work with:

Buy Me A Coffee

Top comments (0)

pic

Templates let you quickly answer FAQs or store snippets for re-use.

Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment's permalink .

Hide child comments as well

For further actions, you may consider blocking this person and/or reporting abuse

sloan profile image

Sloan's Inbox: How to ask for a raise?

Sloan the DEV Moderator - Feb 15

anttiviljami profile image

After 3 years: Bets I made as Head of Engineering rewriting the epilot SaaS – worth it?

Viljami Kuosmanen - Feb 15

bigsondev profile image

💼 50 Tips to Land a Remote Tech Job Based on My 45-Day Journey to 2 Offers

BigsonDev - Mar 4

arjuncodess profile image

Developers, Why Coding? 🤔

Arjun Vijay Prakash - Feb 24

DEV Community

We're a place where coders share, stay up-to-date and grow their careers.

Create Professional Resumes Using LaTeX in 2022

create resume using latex 2022-j1mb6

LaTeX templates have been popular for a long time in the technical and research space to create documents.

What is LaTex?

LaTeX is a technique of creating documents using plain text and markup tags. Building a document in LaTeX makes the content stand out and gives more attention to the words written rather than the format of that document. LaTeX for a long time has been used as the main format to write research papers and publications because of its versatility and ease of use while writing formulas etc.

What are the advantages of using LaTeX for resume writing?

The advantage of using LaTeX for building your resume is mainly the focus on the content. What usually ends up happening is that students and professionals alike tend to focus on infographics, images, colors and another unnecessary formatting of the resume whereas what's really important is writing the best content for your resume and making it stand out. 

What are the disadvantages of using LaTeX for resume writing?

One of the biggest drawbacks of LaTeX is it is difficult for someone new or hasn't used it in a while. It takes time to get used to the syntax and hence build a resume. If you were to build your resume on LaTeX and compile it usually to takes anywhere between 30 minutes to 1-hour. This discourages a lot of folks from writing their resumes in LaTeX.

What to focus on while writing a compelling resume?

Writing a compelling resume is less about the format and more about the content. This is where LaTeX stands out and helps put the focus on the content. 

Some tips to make your resume stand out are:

  • Tailor your resume: Go through the job description and pick out the keywords mentioned that apply to you and add it to your resume. Use a simple tool like ResumePuppy to pick out these keywords.
  • Experience Points: Use STAR format to come up with great experience points and always remember to start with an action word.
  • Resume Size: General rule of thumb is to limit the resume to one page if your experience is under 10 years.
  • Quantify: Quantifying your contribution to your previous company or projects always attracts the attention of recruiters and hiring managers.

LaTeX resumes are clean, simple, and work with the Applicant Tracking systems. If you want to save time and build a LaTeX resume faster, use ResumePuppy.  

how to build resume using latex

How Long Should Your Resume Be

how to build resume using latex

How To Write A Resume For A Job With No Experience

how to build resume using latex

How Do I Write An Application Letter For A Job Vacancy

An awesome LaTeX resume template to jumpstart your job search!

There are many great LaTeX resume templates available on GitHub and Overleaf; however, I didn't find one that really suited my needs so I created this enhanced one. I want to create a resume template so amazing that it'll be the last one you ever need.

Here's what's in here:

  • Super clean layout, looks sleek while being highly intuitive for glancing
  • Beginner friendly, almost every command explained with comments
  • Customization, pre-written commands and helpful comments for customization

Rezume

Have you checked our knowledge base ?

Message sent! Our team will review it and reply by email.

IMAGES

  1. 15+ LaTeX Resume Templates and CV Templates for 2023

    how to build resume using latex

  2. 15+ LaTeX Resume Templates and CV Templates for 2023

    how to build resume using latex

  3. Resume Templates Latex

    how to build resume using latex

  4. 15+ LaTeX Resume Templates and CV Templates for 2023

    how to build resume using latex

  5. How to Write a Minimalistic CV in LaTeX: Step-by-step Guide

    how to build resume using latex

  6. how to build resume in latex

    how to build resume using latex

VIDEO

  1. Build RESUME in 1 minute

  2. Resume in LaTex

  3. Make CV Resume using Overleaf

  4. Document Preparation using LaTeX

  5. Typesetting Texts Using Latex

  6. Introduction to LaTeX Part 1 of 3 (the basics)

COMMENTS

  1. Creating a Professional Resume with LaTeX: A Step-by-Step Guide

    So, next time you need to create a resume, consider using LaTeX instead of Microsoft Word. P.S. If you don't have the time or skillset to make a LaTex resume, I can create one for you for a ...

  2. Create your Professional/Educational resume using LaTeX

    A resume is the most suitable means of announcing your claim that you are the perfect choice for the position to your prospects employer. In this tutorial, I would like to demonstrate the use of the LaTeX environment to create a well organized and professional resume for your future endeavors.

  3. Templates

    A well-written resume and real sample template of Digital Marketing resume. Restructured ATS Friendly template that include up to 3 bullet points, shorter paragraphs and really simple to scan and skim. Produce beautiful documents starting from our gallery of LaTeX templates for journals, conferences, theses, reports, CVs and much more.

  4. How to Write a Minimalistic CV in LaTeX: Step-by-step Guide

    1. Document class. The first thing to do when writing a LaTeX document is to choose the document class. For our CV we will choose the article document class since it is the most versatile class to work with short documents. As an optional argument, we will choose the font size of the document to be 12pt.

  5. Your new CV

    Abstract. Creating a professional CV or resume is quick and easy with Overleaf and writeLaTeX. With this free template you can start editing online instantly, and download a PDF version to send to employers and recruiters when you've finished. Here we use a great template produced by howtotex.com, and if you're looking for a different style why ...

  6. How to create an impressive Resume using Overleaf| Live Session

    In this live session, I will demonstrate to you step-by-step how to create a stunning resume using the popular online LaTeX editor, Overleaf. Whether you're ...

  7. Resume Template

    A resume template which is forked from and modifies Awesome CV, a LaTeX resume template. It is easy to customize your own template, especially since it is re... An online LaTeX editor that's easy to use. No installation, real-time collaboration, version control, hundreds of LaTeX templates, and more.

  8. Overleaf resume tutorial

    How to write a professional CV or resume using LaTeX in Overleaf. I will show you how to set up the template and edit the content. You will be able to write ...

  9. Creating a Curriculum Vitae with LaTeX

    2. Install the ModernCV Package. Before installing ModernCV, let's ensure we have LaTeX on our computer. If not, the following will show how to install MikTeX, the core of LaTeX. If we're using Windows, we can run the following commands in administrator mode to install the package MikTeX: winget install MiKTeX.MiKTeX.

  10. LaTex CV and Resume Collection

    :necktie: A collection of simple and easy to use, yet powerful LaTeX templates for CVs and resumes. All of them are self designed and self implemented and not copied from template collections. Now with support for Chinese, Japanese and Korean character encoding. Setup is only two lines of code! Read more here.

  11. How to Create a Sleek Looking Resume Using LaTeX

    Overleaf LaTeX Editor Example. Once you have a resume template selected, click " Open as template ". If you have not already, you will need to create an account in order to save your work. When your template opens, you will notice that the interface is split in two - the source code on the left and the view of your document on the right.

  12. LaTeX template for resume/curriculum vitae

    4. For a professional looking CV there is Plasmati CV, good for banking, consultancy careers. ModernCV is colored works for serious and less serious careers (communication management etc... and Friggeri CV is the template for designers etc... ModernCV is used at CVsintellect and the 3 are used in seeveeze.

  13. Make a Resume in LaTeX!

    First, let's start by creating a basic document in LaTeX. If you are using Overleaf and followed the setup instructions from above, you should get this: \documentclass{article}\usepackage[utf8]{inputenc}\usepackage{titlesec}\title{resume instruction manual code}\author{Sofie T. Ware}\date{January 2022}\end {document}

  14. 16 Free LaTeX Resume Templates [+LaTeX CV Templates]

    LaTeX is one of the most powerful word-processing tools available for creating a professional document like a resume template or CV template, but it's also one of the most complex.. It takes significantly longer to create a resume or CV in LaTeX compared to Microsoft Word or Google Docs. If you don't know how to use the editor, your best option for creating a LaTeX resume is to download ...

  15. How to write a LaTeX class file and design your own CV (Part 1)

    Telling LaTeX about your class. All class files should start with two lines similar to the following, which you should add in at the top of my_cv.cls now: \NeedsTeXFormat{ LaTeX2e } \ProvidesClass{ my _ cv } [2011/03/26 My custom CV class] The \NeedsTeXFormat commands tells the compiler which version of LaTeX the package is for. The current ...

  16. Your new pretty and minimalist resume with LaTex

    Minimalist and concise. When writing a résumé we always want to achieve a minimalist and concise document to easily catch the eyes of any recruiter/company. To do so, we want to organize its content into 2 columns, having a good spacing for all the content to fit without losing readability. And here is where LaTex comes to the rescue.

  17. How to create an impressive Resume using Overleaf

    In this live session, I will demonstrate to you step-by-step how to create a stunning resume using the popular online LaTeX editor, Overleaf. Whether you're ...

  18. Resume Template

    A Very Simple LaTeX Resume Template An online LaTeX editor that's easy to use. No installation, real-time collaboration, version control, hundreds of LaTeX templates, and more.

  19. How to Create a Resume or CV using Overleaf

    Assalam o Alaikum! In this video tutorial, we are discussing CV/ Resume Creation using Latex. How to Create a Resume or CV using Latex. BSCC ServicesThe link...

  20. How to create resumes using latex in 2022?

    This is where LaTeX stands out and helps put the focus on the content. Some tips to make your resume stand out are: Tailor your resume: Go through the job description and pick out the keywords mentioned that apply to you and add it to your resume. Use a simple tool like ResumePuppy to pick out these keywords. Experience Points: Use STAR format ...

  21. Rezume

    An awesome LaTeX resume template to jumpstart your job search! There are many great LaTeX resume templates available on GitHub and Overleaf; however, I didn't find one that really suited my needs so I created this enhanced one. I want to create a resume template so amazing that it'll be the last one you ever need. Here's what's in here: Super ...