564

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)?

Mensch
  • 65,388
Otis
  • 628
  • 4
  • 9
  • 17

32 Answers32

225

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).

Siddharth
  • 101
Konrad Rudolph
  • 39,394
  • 22
  • 107
  • 160
  • 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 '10 at 20:28
  • 54
    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. – Konrad Rudolph Jan 27 '11 at 19:06
  • 11
    moderncv actually has a new feature (or a related package) since yesterday: moderntimeline. – raphink Sep 30 '11 at 13:36
  • 3
    @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 '12 at 00: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. – Konrad Rudolph Feb 23 '12 at 07:57
  • @KonradRudolph Any chance your CV without any template turns into a nice successor class for the community to use? ;) – gerrit Mar 06 '13 at 14:47
  • @gerrit Unfortunately I never got around to it since I haven’t touched my CV since then (I’ve changed positions in the meantime but that application required a CV in tab-delimited plain text format …). – Konrad Rudolph Mar 06 '13 at 14:53
  • My only issue with modern CV is that it has a tendency to create fairly lengthy resumes. Given the same input with a different template my resume tends to be a good bit shorter. (I tend to use the defacto resume package ) – csgeek Nov 16 '14 at 18:53
  • I clicked on the link and decided to check out the examples. For what it's worth, this looks terrible: http://mirror.its.dal.ca/ctan/macros/latex/contrib/moderncv/examples/template-zh.pdf –  Nov 25 '16 at 23:38
  • The key point is that Chinese names are written family name first, and the template got it wrong. To correct it would wreck the effect of the shading (since obviously the family name needs to be darker). Moreover italics don't translate over into Chinese very nicely (the language is made of square block-shaped characters and there is no natural disposition in Chinese to write them on a slant), but the brackets around them are slanted! The effect is hilariously mis-shappen parenthesis around characters. –  Nov 25 '16 at 23:41
  • They also got the cultural context of the addresses wrong at the bottom of the page, addresses are written outwards in in Chinese (ie city -> district -> street -> building number), but that's a minor detail. –  Nov 25 '16 at 23:45
  • @chell Thanks for the information. As mentioned above, I’ve had my own problems with this template and I’m no longer using it. – Konrad Rudolph Nov 26 '16 at 13:57
  • Yeah, I saw your comment and was curious to check out the template due to the large number of upvotes to your answer. –  Nov 26 '16 at 21:12
  • @Konrad Rudolph, thank you for the answer. I am using moderncv and hope to extend the width of the text slightly because I don't want a line break with a single in the next line, for example in the items of \section{Education}. I didn't see any option for the adjustment. Could you give some suggestion? – Enter Mar 23 '23 at 14:37
  • @Enter Apologies, I no longer use any premade CV document class, I now use my own because I was not happy with any of them. I also haven't touched my CV in years so I can't really comment. – Konrad Rudolph Mar 23 '23 at 15:18
142

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.

Jukka Suomela
  • 20,795
  • 13
  • 74
  • 91
  • 82
    Could you share an example of this, and typical output, please? – Forkrul Assail Oct 01 '12 at 13:17
  • 12
    +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! – nutty about natty Jul 09 '13 at 10:52
  • 3
    In 2020 you could check https://www.overleaf.com/learn/latex/How_to_write_a_LaTeX_class_file_and_design_your_own_CV_(Part_1) – Krzysztof Feb 19 '20 at 12:37
79

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

Werner
  • 603,163
  • I second @Diego! Thank you @werner and +1 for the pictures! – Amar Sep 28 '16 at 23:51
  • 7
    Wow, great collection with samples! I scrolled back the half-mile to upvote. – lmat - Reinstate Monica Apr 30 '20 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 '21 at 08: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 '21 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.

Quadrescence
  • 1,550
  • 11
  • 9
49

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

Eknoes
  • 115
YuppieNetworking
  • 5,919
  • 7
  • 36
  • 40
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.

flip
  • 319
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.

EDIT: The original link to the TeX Catalogue was dead. The TeX Catalogue might be superseded by https://ctan.org/topics/highscore, especially https://ctan.org/topic/cv for CV.

CampanIgnis
  • 4,624
Stefan Kottwitz
  • 231,401
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.

arekolek
  • 575
loevborg
  • 113
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).

Ry-
  • 101
Hasan Zakeri
  • 1,942
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.

azetina
  • 28,884
  • 4
    It's a fantastic new solution for CV writing in Latex (+1). Unfortunately there is no reasonable documentation available. – Roman Feb 25 '14 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 '16 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!

13

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

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

13

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.

TeXnician
  • 33,589
ESultanik
  • 4,410
  • 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. :-) – Matthew Leingang Jan 30 '11 at 18:22
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. . . .

vanden
  • 30,891
  • 23
  • 67
  • 87
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.

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.

Willie Wong
  • 24,733
  • 8
  • 74
  • 106
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.

  • 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. – wishihadabettername Aug 11 '10 at 15:05
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's an example of a nice-looking "home-made" CV: http://nitens.org/taraborelli/cvtex

10

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

Tobin Fricke
  • 2,364
8

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.

StrongBad
  • 20,495
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.

mhelvens
  • 6,126
6

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}
LCarvalho
  • 1,611
G. Bay
  • 2,047
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.

radek
  • 286
5

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

lhf
  • 2,212
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

Sourabh
  • 101
  • 1
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

TeXnician
  • 33,589
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

3

An other quite recent style is available here: http://mrzool.cc/tex-boilerplates/ An example

1

I have used the res.cls as explained e.g. here. It is one of the oldest if not the oldest template for cv's with Latex. It's been fine up to recently but I would advise against using it. It is not updated anymore and so I have had problems using it with newer versions of Yosemite (actually I have the same problem described here).

1

I prepare 2 versions of my CV; a resume; lists of publications and references; statements of teaching philosophy and research interests all on the basis of currvita. Well, with a considerable amount of hand-hacking. For added geekiness, the list of publications is primarily a specialized bibtex output format (which works nicely with getting a bibtex formatted list of my publications from spires).