554

If you have a TeX'ed resume, did you use a template or make your own? Are there any useful packages? What looks the most professional? How about special considerations for different areas of work (e.g. in academia)?

3

33 Answers 33

221

For my current CV, I ended up using moderncv. It doesn’t have many features but it is very easy to use and yields a very elegant output.

However, I also want to mention its drawbacks: customising it isn’t easy, especially since it doesn’t really use a clean, semantic markup. For example, to specify multi-column properties, you actually need to specify the items in an odd order (namely line by line instead of column wise).

13
  • 16
    Another vote for moderncv. To my eye (after having read hundreds of CVs over the past year's hiring), it presents the information in a way that makes it easy for the reader to find what they are looking for. This is critical to getting past the first pass.
    – KeithB
    Jul 26, 2010 at 20:28
  • 52
    I’m attempted to downvote my own answer. I’ve recently had to change my CV slightly and it was imperative that everything fit on one page, which, from the available space, wasn’t a problem in principle. However, moderncv simply doesn’t accomodate such wishes. I ended up rewriting large parts of it, in an extremely quick&dirty way since I didn’t have a lot of time. In hindsight, creating my own class from scratch would have cost me less time. As soon as I’ve got time I’ll rewrite my CV without any template. Jan 27, 2011 at 19:06
  • 10
    moderncv actually has a new feature (or a related package) since yesterday: moderntimeline.
    – raphink
    Sep 30, 2011 at 13:36
  • 2
    @Konrad Any chance you could elaborate on the issue? Normally, you can simply change the margin of the pages through geometry, or decrease the inter-element spacing through the optional parameter of every command.
    – Xavier
    Feb 23, 2012 at 0:54
  • 1
    @Xavier Changing the margins wasn’t an option, and changing the inter-element spacing proved to be a major pain in the *ss. In particular though I tried putting some of the elements in two columns next to each other and that didn’t go down well with the package. Feb 23, 2012 at 7:57
140

I made my own. In the end, it was much easier that way; you get what you want. Especially if you have situations in which you need to quickly prepare e.g. a 4-page CV, you know how to tweak your own layout to meet the requirements.

Some key tools:

  • article class

  • geometry package for margins

  • hyperref to have a nice PDF (e.g., DOI hyperlinks in the list of publications, proper PDF metadata)

  • enumitem for tweaking list layout; titlesec for section headings

  • cite, url, microtype, babel, ...

  • Keep layout and content separated; easy to do something like \input{layout2}\input{content} to produce yet another version with a different layout.

  • multibib to get multiple lists of references in the CV (one for journal papers, another for conference papers, etc.):

    \newcites{jrnl}{Journal Papers}
    \newcites{conf}{Conference Papers}
    ...
    \nocitejrnl{...}
    \nociteconf{...}
    ...
    \section{Scientific Publications}
    {
        \renewcommand{\section}[2]{\subsection{#2}}
        \setbiblabelwidth{99}
        \bibliographystylejrnl{yyy}
        \bibliographyjrnl{xxx}
        \setbiblabelwidth{99}
        \bibliographystyleconf{yyy}
        \bibliographyconf{xxx}
       ...
    }
    

    The "nocite" lists, etc., are automatically generated from a source file by using a Python script. The lists are actually in a separate file that I \input.

  • A tweaked version of the unsrt Bibtex style: I added things like DOI links, etc., by using some ugly hacks.

  • JabRef + some scripts to maintain the Bibtex database.

  • Rubber (with % rubber: module pdftex) for compiling everything. It works OK with multibib.

3
  • 81
    Could you share an example of this, and typical output, please? Oct 1, 2012 at 13:17
  • 11
    +1 on the previous comment: unless your answer is an imperative: "Do it yourself!", I think it would be really nice to see (at least) an MWE... +2 on inputting layout, seems like an elegant way! Jul 9, 2013 at 10:52
  • 2
    In 2020 you could check overleaf.com/learn/latex/…
    – Krzysztof
    Feb 19, 2020 at 12:37
74

ShareLaTeX provides a list of CV/Resume Templates, including:

4
  • I second @Diego! Thank you @werner and +1 for the pictures!
    – Amar
    Sep 28, 2016 at 23:51
  • 5
    Wow, great collection with samples! I scrolled back the half-mile to upvote. Apr 30, 2020 at 10:26
  • How do you use teh overleaf ones? I copy and pasted the code into TexShop but it wont typeset
    – user71207
    Sep 11, 2021 at 8:30
  • @user71207: Since they are templates, they may require style and class files, all of which are contained within the Overleaf project/template. You should download them all (the entire project) and maintain the Overleaf file structure (which could include subfolders), then you should be able to compile the main file.
    – Werner
    Sep 12, 2021 at 15:58
71

There are lots of resume examples here with source: http://rpi.edu/dept/arc/training/latex/resumes/.

Google can show a thousand other examples, but that's a good place to start.

3
  • that's the one i use... pretty nice.
    – Mica
    Nov 12, 2010 at 3:30
  • 12
    Actually, these are all extremely space-y. Anything more compact? P.S. A google search puts this page at the top... Aug 28, 2012 at 19:00
  • I didn't like the samples too much. Too simple and colorless! :) Nov 28, 2017 at 11:17
48

I like europass and everyone seems impressed when they see the results... specially for Europe applications!

3
  • The link is dead @YuppieNetworking. Can you post it somewhere else?
    – alekhine
    Dec 24, 2012 at 7:39
  • 2
    Updated the link for @alekhine Dec 27, 2012 at 11:16
  • 6
    When you use it —and I wholeheartedly recommend it— just be sure to leave out the original "Europass" logo. If not, the Brits will have a good laugh with your Europ ass... Aug 25, 2013 at 21:06
46

I will second the Taraborelli CV templates at http://nitens.org/taraborelli/cvtex. In the past I've used the curve and moderncv packages but, in the end, found the combination of his elegant templates + xelatex to be the simplest and most flexible solution. I wasn't constrained by particular sectioning, etc.

Personally, I use the Hoefler Text+Optima. I also like the Caslon.

36

My current resume is based on the article class; source hosted on GitHub and forked from kjhealy.

enter image description here

It uses fontspec for OpenType fonts (Adobe Garamond Pro and FontAwesome). Still working on the best way to selectively place content for different purposes/companies. I'm experimenting with linked external documents, under the supposition that the resume stands on its own (nothing is "missing" without linked content), but the reviewer can find extra information if he/she clicks on a link. I've had positive feedback on this so far. The ocgcolorlinks option is perfect for this; once the resume is printed, all traces of the links vanish. Special thanks to @ben-lerner for his improved code.

My publication list is short presently, but I'll probably need to add in some biblatex functionality for ease of use as it grows.

16
  • Hi Paul, I wanted to make a simple cover letter as well using the same header part. is that possible?
    – masfenix
    Jan 8, 2015 at 20:32
  • Also, I am getting a font missing error. is there a way to change the font to something I Have?
    – masfenix
    Jan 8, 2015 at 21:02
  • @masfenix of course it is possible. And about the fonts: yes, of course. Just change the font setup commands to fonts that you have installed on your system... Jan 8, 2015 at 21:49
  • 1
    @masfenix if you're just beginning, I would recommend just starting with the base letter class. Get the content rock solid and the design/layout can come later as you build your experience. Besides, I don't really believe in passing these "templates" around online. It leads to too many people using code they don't understand, which later becomes dead or deprecated code. Jan 8, 2015 at 21:55
  • 1
    So how have you created the .tex file for your resume? I really like the style of it, however, I cannot seem to get it to compile correctly.
    – J Paul
    May 19, 2016 at 19:15
33

The TeX Catalogue list CV packages in a category:

By the way: I wasn't satisfied by the results of such packages. So, I used scrartcl and tabularx to typeset my CV. This way I could match it to the design of my application letter done with scrlttr2. I used tabularx in macros, allowing easy adjustments for all parts of the CV at once. Simple and elegant, no fancy colored lines and the like.

Copied from here to this topic following a request.

3
  • 4
    The link is not working anymore.
    – Roman
    Feb 25, 2014 at 12:06
  • @Roman (and Stefan, of course), I took the liberty of updating the link for a functional one. I hope it's OK. Jan 28, 2015 at 23:47
  • I don't know if this is a mirror of the link above, nonetheless here it is: texcatalogue.ctan.org/bytopic.html (Last modified: 10 June 2016)
    – Amar
    Nov 19, 2016 at 13:42
27

This strikes me as a particularly good example of a CV or vita. The latex code can be seen here. As an example, see the author's vita.

26

For typesetting bidirectional resumes in languages other than english, the bidi package provides bidimoderncv2 class for typesetting resumés, which is the modified version of moderncv class. Two examples are presented in the doc folder of the package, namely test-casualcv.tex and test-classiccv.tex than you can look and learn how you can use it.

This is an example use of bidimoderncv with classic style: example use of <code>bidimoderncv</code> with <code>classic</code> style

and this one is with casual style: example use of <code>bidimoderncv</code> with <code>casual</code> style

Take note that both are taken from examples of the package and are typeset in persian, but works fine in any other languages (whether ltr or rtl).

2
  • Can you tell me how can I compile the test-classiccv.tex file? should it be with pdfLatex or XeTex?
    – Ehsan
    Jun 4, 2014 at 20:41
  • It should be with xelatex, since it is based on bidi, and it only works with xelatex. Jul 27, 2014 at 11:04
20

Recently added document class, cv4tw by Geoffrey Gouez, offers a "LaTeX CV class, with extended details".

The class offers entries for assets and social networks; customizable styles are provided. The class comes with no documentation, but a worked example offers some guidance.

This package is still under development but it shows great progress. Here is a sample screen shot of an example made using the class file.

enter image description here

Here is a direct link to the example above: sample-jules-verne. Note this requires XeLaTeX or LuaLaTeX to run. Also note that the example given does not compile directly because the samplepic.jpg file is not provided; just replace it with your own or download it here from GitHub under examples.

2
  • 4
    It's a fantastic new solution for CV writing in Latex (+1). Unfortunately there is no reasonable documentation available.
    – Roman
    Feb 25, 2014 at 18:25
  • 2
    This is really a power house of new template. As a former moderncv user, it feels so much more versatile.
    – ojdo
    Jun 12, 2016 at 11:12
16

I can offer you a video tutorial I made recently, which covers this topic using the article class. I just got hired for a lectureship position last week, so I think it is pretty good!

4
  • The video was removed from youtube because it was too long. You should probably upload it somewhere else and update the link.
    – bodo
    Jul 10, 2012 at 21:09
  • 1
    I just noticed that and fixed it. Should be ready to go by the time you see this again. Jul 10, 2012 at 21:54
  • Many Thanks! :) I think the best way is to use the article class since you can do what ever you want. :) Nov 28, 2017 at 11:28
  • That would be nice if you provided the source .tex file too. :) Nov 28, 2017 at 13:20
12

I've been using a lightly tweaked version of Michael DeCorte's res.cls. No idea if it is best of breed (nor why I chose it), but if it ain't broke. . . .

12

Ted Pavlic's CV templates are minimalistic, uses the hyperref package extensively and elegant!

http://www.tedpavlic.com/post_resume_cv_latex_example.php

11

I found CurVe to be a nice package. Used it to get two student jobs and apparently, it worked :). The only drawback is that the default structure of the CV may need adjustments to your specific purposes.

11

I also ended up making my own style, however, I added one twist: I actually store my CV in XML format and then use an XSLT transform to convert it into a .tex file. While this required a lot more work upfront, the benefit is that I can use the same XML file to generate plain text, HTML, abridged, &c. versions without having to maintain n separate files. If you end up making your own LaTeX style for your CV, I would also suggest you seriously consider investing the time to use the XML/XSLT technique. You can see the results of this technique here (scroll to the bottom of the page to see the XML and HTML versions). It would take me a bit of time to clean them up, but I'd be happy to share my XSLTs with people if anyone is interested. This is an open source project that does something similar, however, it was started after I created my technique and I've never used it.

1
  • 1
    I looked at the XML Resume Library a while back and noticed that it seems to be dead: last "news" is dated 2004. I also looked at HR-XML but then I decided I was spending too much time and used curve instead. :-) Jan 30, 2011 at 18:22
10

For my current one I just rolled my own. I use fancyhdr for the header and footer, and lastpage so that I can display page x/y in the footer (so that the person reviewing it would know if they lost a page).

The entirety of the rest of the document is built from nested customized lists.

1
  • +1 on fancyhdr.
    – Hober
    Jul 26, 2010 at 21:48
10

I ended up making my own, but it took a while. Expect to have to fight LaTeX's defaults on a lot of things. That said, it's worth it. I learned a lot about LaTeX and have a good resume that I can say I wrote.

I wouldn't be surprised, but it seems like if you're going to use LaTeX for your resume, be prepared to answer truthfully whether you used a template or not, and be comfortable with the answer.

1
  • 6
    It shouldn't be a problem even if you used a template, the purpose of the resume is to present the professional skills, not the low-level LaTeX skills. Aug 11, 2010 at 15:05
10

Here's an example of a nice-looking "home-made" CV: http://nitens.org/taraborelli/cvtex

10

If you'd like to use LaTeX along with BibTeX, I have a template here:

http://pointsofsail.org/wikka.php?wakka=LatexCV

It is based on Dario Taraborelli's template (http://nitens.org/taraborelli/cvtex) and uses bibtex and the bibentry package to make the publications section.

10

Here is a Hacker News thread with many examples of resumes and CVs in (La)TeX:

8

I used curve to create my CV:

http://www.mhelvens.net/cv

Quite customizable by itself. But I added several hacks and convenience macros of my own:

  • nicer rubric-title underlining
  • separate bullet-shapes for [ongoing], [notable] and [other]
  • separate year-styles for [period] and [event]
  • separate year-styles for [past], [ongoing, known end-year], [ongoing, open end]
  • hyperlinked cross-references
  • hyperlinked e-mail and url
  • for specific projects and papers: hyperlinked www or doi
  • when printing, cross-refs, urls and e-mail are black; www and doi links are invisible

Someday soon I should make the code public. But for now it's a bit too chaotic to release.

7

I have made my CV using predominately BibLaTeX. I have gone way beyond just using BibLaTeX for my publications, but have added a number of custom entry types (e.g., funding, service, teaching, presentation, education), modified the biber data model to allow for new fields and written bibliography drivers to handle the formating of these new entry types. Everything except my contact information is stored in a bib file (and technically my contact information is stored in the @preamble entry). Each version of my CV is produced by a tex file that sets a few BibLaTeX booleans and defines a bunch of \defbibfiler and \defbibcheck.

I find this makes it much easier for me to reorganize/reorder my CV. Previously it was easy to move my "teaching" section before my "service" section, but with BibLaTeX I can have my teaching in a big list or divide it into undergraduate and graduate or University A and University B. Similarly I can divide my research presentations into internal/external or into talk/poster.

1
  • 4
    Intersting approach! I would love to see the code for this :-)
    – Daniel
    Jul 4, 2013 at 5:52
5

I adapted the resume class found in http://www.iro.umontreal.ca/~csuros/latex.html.

5

LaTeX Templates showcases several templates, ranging from conservative to fancy.

I ended up using Classicthesis-Styled CV. It caught my eye as most esthetically pleasing. And even with my poor LaTeX skills was very easy to adapt to my needs.

5

I have made this by adapting some parts of other curriculum, like the one called Alice. I used tcolorbox for the content. I also had great help from Alan Munn. Feel free to modify and use.

enter image description here

Save this file with this name: CV_g_Contents

Content file:

\documentclass[12pt]{article}
\usepackage{geometry}
\geometry{paperheight=42cm,paperwidth=9cm,margin=2mm,top=5cm,bottom=2cm}
\usepackage[many]{tcolorbox}
\usepackage[sfdefault]{ClearSans}
\usepackage[T1]{fontenc}
\usepackage{microtype}
\usepackage[utf8]{inputenc}
\usepackage{booktabs}
\usepackage{lmodern}
\usepackage{tikz}
\usepackage{xcolor}
\usepackage{lipsum}
\usepackage{tabularx}
\def\tabularxcolumn#1{m{#1}}
\renewcommand{\arraystretch}{3}

\colorlet{DarkGray}{gray!20!black}
\colorlet{LightGray}{gray!20!white}
\pagenumbering{gobble}


%
\usepackage{fontawesome}
% Command for printing skill progress bars
\newcommand\skills[1]{
    \begin{tikzpicture}[]
            \foreach [count=\i] \x/\y in {#1}{
            \begin{scope}[yshift=\i cm]
            \draw[fill=LightGray,LightGray] (0,\i) rectangle (6,\i+0.4);
            \draw[fill=white,cyan](0,\i) rectangle (\y,\i+0.4);
            \node[above right] at (0,\i+0.4) {\x };
            \end{scope}
        }
    \end{tikzpicture}
}


%
\tcbset{breakable,
enhanced jigsaw, colframe=DarkGray!70!cyan, colback=white, enhanced,boxed title style={colback=black,},sharp corners,boxrule=0pt,
%left=0.2cm,right=0.2cm,top=0.2cm,
}
\begin{document}
\clearlight
\begin{tcolorbox}[top=0pt]
\includegraphics[width=\linewidth,height=9cm]{example-image}
\end{tcolorbox}
\begin{tcolorbox}[]
\begin{tabularx}{\linewidth}{m{0.8cm} X}
\midrule
{\color{black!50!cyan} {\Huge \faStarO}} & {\large 17 November 1789}
 \\
\midrule
{\color{black!50!cyan} {\Huge \faEnvelopeO}} & {\large your@email.com} 
 \\ 
\midrule
{\color{black!50!cyan} {\Huge \faPhoneSquare}} & {\large +37 (XX) 123456789}
 \\ 
\midrule
\noindent{\color{black!50!cyan}{\Huge \faHome}} & {\large Your address number, street, and so on}
 \\ 
\midrule 
{\color{black!50!cyan} {\Huge\faLinkedinSquare}} & {\large linkedin/yourname}
 \\
 \midrule 
 {\color{black!50!cyan} {\Huge\faGlobe}} & {\large www.yoursite.com}
  \\ 
\midrule 
\end{tabularx}   
\end{tcolorbox}
\begin{tcolorbox}[title=Skills]
\skills{{Skill four/5.8},{Skill three/3},{Skill two/4.3},{Skill one/4}}
\end{tcolorbox}
\begin{tcolorbox}[title=Languagues]
\skills{{Español/4.3},{English/4}}

Native language: Português
\end{tcolorbox}
%
%\begin{tcolorbox}[title=Tester]
%\lipsum[1-3]
%\end{tcolorbox}
%
\begin{tcolorbox}[title=Profile]
\lipsum[4]
\end{tcolorbox}
\renewcommand{\arraystretch}{1.2}
\begin{tcolorbox}[title=\faSuitcase \quad Experience]
\begin{tabularx}{\linewidth}{m{0.3cm} X}
        \midrule
        \rotatebox{90}{1820} & Big Europe Company \\
         & {\color{cyan}\textbf{Junior Janitor}}  \\
         & \newcount\zz
         \loop
        Lorem ipsum dolor sit amet
         \advance\zz1
         \ifnum\zz<8
         \repeat \\
        \midrule
  \end{tabularx}
  \begin{tabularx}{\linewidth}{m{0.3cm} X}      
        \rotatebox{90}{1826} & \LaTeX \, Corporation \\
         & {\color{cyan}\textbf{Great Janitor}}  \\
         & \newcount\zz
          \loop
         Lorem ipsum dolor sit amet
          \advance\zz1
          \ifnum\zz<10
          \repeat \\
  \end{tabularx}
  \begin{tabularx}{\linewidth}{m{0.3cm} X}
        \midrule
        \rotatebox{90}{1841} & 4D Printer Unlimited  \\
         & {\color{cyan}\textbf{Senior Janitor}}  \\
         & 
        \lipsum[4] \\
        \midrule 
\end{tabularx}
\end{tcolorbox}
\begin{tcolorbox}[title=\faGraduationCap \quad Education]
\begin{tabularx}{\linewidth}{m{0.3cm} X}
    \midrule
    \rotatebox{90}{1820} & Random University \\
     & {\color{cyan}\textbf{Hard Engineering}}  \\
     & \newcount\zz
     \loop
    Lorem ipsum dolor sit amet
     \advance\zz1
     \ifnum\zz<5
     \repeat \\
    \midrule
  \end{tabularx}
  \begin{tabularx}{\linewidth}{m{0.3cm} X}  
    \rotatebox{90}{1826} & \LaTeX \, Corporation \\
     & {\color{cyan}\textbf{Master in Janitor}}  \\
     & \newcount\zz
      \loop
     Lorem ipsum dolor sit amet
      \advance\zz1
      \ifnum\zz<3
      \repeat \\
    \midrule
  \end{tabularx}
  \begin{tabularx}{\linewidth}{m{0.3cm} X}   
    \rotatebox{90}{1826} & \LaTeX \, Corporation \\
         & {\color{cyan}\textbf{P.h.D in Janitor}}  \\
         & \newcount\zz
          \loop
         Lorem ipsum dolor sit amet
          \advance\zz1
          \ifnum\zz<3
          \repeat \\
        \midrule 
\end{tabularx}
\end{tcolorbox}
\begin{tcolorbox}[title=Background]
\lipsum[7-8]
\end{tcolorbox}
\end{document}

Then the layout page:

\documentclass[12pt]{article}
\usepackage[many]{tcolorbox}
\usepackage[sfdefault]{ClearSans}
\usepackage[T1]{fontenc}
\usepackage{microtype}
\usepackage[utf8]{inputenc}
\usepackage{booktabs}
\usepackage{lmodern}
\usepackage{tikz}
\usepackage{tikzpagenodes}
\usepackage{xcolor}
\usepackage{lipsum}
\usepackage{tabularx}
\def\tabularxcolumn#1{m{#1}}
\renewcommand{\arraystretch}{1.8}
\colorlet{DarkGray}{gray!20!black}
\colorlet{LightGray}{gray!20!white}
\usepackage{geometry}
\geometry{paper=a4paper,top=4cm}
\usepackage{pdfpages}
\usepackage{atbegshi}
\colorlet{mygreen}{black!50!cyan}

\newcommand\Header{%
\begin{tikzpicture}[remember picture,overlay]
\fill[mygreen]
  (current page.north west) -- (current page.north east) --
  ([yshift=+20pt]current page.north east|-current page text area.north east) --
  ([yshift=+20pt]current page.north|-current page text area.north) --
  ([yshift=+20pt]current page.north|-current page text area.north) --
  ([yshift=+20pt]current page.north west|-current page text area.north west) -- cycle;
    \node[font=\sffamily\bfseries\color{black},anchor=center] at ([yshift=-40pt]current page.north)
        {\fontsize{50}{60}\selectfont \clearlight \MakeUppercase{Your Name}};
    \node[font=\sffamily\bfseries\color{white},anchor=center] at ([yshift=-40pt, xshift=3.5cm]current page.north west)
            {\fontsize{50}{60}\selectfont \clearlight --- {[}};
    \node[font=\sffamily\bfseries\color{white},anchor=center] at ([yshift=-40pt, xshift=-3.5cm]current page.north east)
                {\fontsize{50}{60}\selectfont \clearlight  {]} --- }; 
        %
  \node[font=\sffamily\bfseries\color{white},anchor=center] at ([yshift=-80pt]current page.north)
        {{\Large Mechanical Janitor}};
\end{tikzpicture}%
}
\pagestyle{empty}
\AtBeginShipoutFirst{\Header}
\begin{document}
%\begin{tcolorbox}[colback=black!40!cyan]\centering {\Huge Name} \\ \bigskip {\LARGE Mechanical Engineer}
%\end{tcolorbox}
\includepdf[,pages=-,nup=3x1,columnstrict=true,]{CV_g_Contents}
\end{document}
4

I maintain a Latex template targetted for Engineers on Github, you can find it at https://github.com/sb2nov/resume

enter image description here

4

As I haven't seen it here yet, I would like to mention limecv which is shipped with TeX Live (development on GitHub: https://github.com/opieters/limecv). Apart from your CV you can create a cover letter in a similar design with that package.

The following pictures are taken from the documentation.

cv1

cv2

3

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

1
  • 2
    Welcome to TeX.SX! You can have a look at our starter guide to familiarize yourself further with our format.
    – Symbol 1
    Mar 20, 2015 at 2:48

Not the answer you're looking for? Browse other questions tagged or ask your own question.