44

Academics need various forms of their CV, depending on what purpose it's being used for. In my case, here are reasons I've had to re-format or have a different version of my CV:

  • promotion and tenure,
  • research proposals (each grant program requires a different format),
  • program accreditation for engineering universities,
  • my official web page at my university (with a French and English version).

It's a lot of busy work to maintain these CVs, especially as they evolve.

In Canada, there's a program in government-funded research to have a common format for CVs, called the Canadian Common CV. It's a great idea, but doesn't really solve the global problems. Not all funding organizations support it (or the same version of it).

Can anyone recommend tools that help in preparing academic CVs in various formats? Probably this means centralizing the information in one place and having it output in customizable formats. Obviously, there needs to be some understanding of the elements of an academic CV: publications, students supervised, grants awarded, community service, courses taught, distinguished awards, etc.

Eekhoorn
  • 2,174
  • 1
  • 14
  • 23
Fuhrmanator
  • 4,052
  • 1
  • 20
  • 31
  • 2
    I see two questions here - your title refers to maintaining various versions, but your question seems to referring to wanting a tool that makes it easy to prepare. I'm guessing you're really looking for something that lets you input all the info once, and then select which elements/order you want them in, w/o doing a lot of manual work/formatting? – ernie Oct 22 '12 at 18:36
  • @ernie Thanks - The title is probably the state of how things are done by most folks (not ideal). Yes, it should ideally only be entered once. Editing the question now. – Fuhrmanator Oct 22 '12 at 19:14
  • 1
    I've never found a good solution for this, and wound up writing my own LaTeX class to do it. – David Z Oct 23 '12 at 04:11
  • 2
    @David, would you post a link to your custom class? – J. C. Salomon Oct 25 '12 at 13:04
  • @J.C.Salomon I actually don't have access to it now because I'm traveling, but I will happily post it when I get back. – David Z Oct 27 '12 at 12:54
  • 1
    @J.C.Salomon The class is here: https://gist.github.com/4024555 I'm not posting it as an answer just yet because I don't have time to document it right now. – David Z Nov 06 '12 at 12:57

5 Answers5

22

In addition to using LaTeX with a makefile, I find that using the LaTeX package splitbib is very useful. It allows you to format your publications with different subtitles for different category of publications, and you can pick and choose which entries from your publications (which I maintain as a BiBTeX file) should be included.

Since LaTeX allows you to include files, it's relatively easy to create separate files that contain the base material and then include them as needed in different formats.

Suresh
  • 50,639
  • 5
  • 123
  • 246
  • You probably don't need a makefile, but I'd prefer doing the distinction in a (forest of) LaTeX file(s), too. – Raphael Oct 25 '12 at 08:49
  • I'm curious to know if you use this approach for multi-lingual versions of your CV? In my case, I have to have French/English versions, and some things could be translated in a template (e.g., major headings of the CV, formats of dates, months, etc.) but other things are content variants (e.g., job titles, explanations of responsibilities, etc.) requiring 2 copies of the data. – Fuhrmanator Oct 30 '12 at 15:40
  • I don't have multilingual versions of my CV :). But I have different bibilographic formats for different purposes, and different content that is included for different settings. – Suresh Oct 30 '12 at 20:58
10

I maintain CV of various lengths (with more or less details) and in two languages. For a long time, I have used LaTeX for that task, along with a Makefile that can do conditional compilation of my argument: basically, the LaTeX code was set up so that, depending on the job name of the compilation, different bits of the CV would be included or not (this is not TeX.SE, so I won't go into the full details).

I used it for some years, but as time passed I progressed along the career track, and now I need more and more types of CV, customized in different ways. Basically, I end up having to manually select the bits and pieces I want to include for each specific use of my CV. Thus, I now maintain:

  • a very brief CV (for which I use the NSF “biographical sketch” as a template)
  • a full CV in English
  • a full CV in French
  • a list of publications, because these pretty much don't need translation apart from the section titles

I use my word processor (MS Word or Apple’s Pages) for the first three, as it allows me to customize a specific CV from each template, and it also allows then pasting the CV into a larger Word document (often a requirement for grants).

I still use a custom-made LaTeX processing of my publication list, from which I produce either PDF (if used on its own) or a HTML file, which I then copy into my MS Word CV.

F'x
  • 73,069
  • 23
  • 262
  • 392
9

There's also the idea of using a version control (or management) system such as Git, Subversion, or Mercurial. These tools will allow you to keep track of changes to your CV over time. If you use text-based files, it's a much lower overhead than keeping multiple versions of the different files floating all over the place, especially having different filenames for different dates of creation and editing, and so on.

aeismail
  • 173,481
  • 34
  • 418
  • 736
  • You mean a *revision control system*. Content management systems are something else (e.g. Drupal, Wordpress and Joomla). – Federico Poloni Oct 22 '12 at 18:09
  • 2
    If you're unfamiliar with any of these tools, many would recommend Git. Subversion is a much older and less capable tool, and Mercurial—while practically equivalent to Git functionally—is much less popular than Git. – eykanal Oct 22 '12 at 19:17
  • I'm very familiar with version control systems, and unless your CV is already structured carefully to take advantage of this, I don't believe they will help. You will still end up having to make a given change in all versions. – DJClayworth Oct 22 '12 at 21:07
  • 1
    Git and systems like it allow for flexible merging and even "changing of the past". While it would be somewhat of an abuse of the system to use it for this purpose, it can be done. – Suresh Oct 22 '12 at 22:21
  • 10
    This is completely wrongheaded. These tools will allow you to fork different versions of your CV, among which you will then have to migrate patches to keep them in sync. A CV that is tailored is more similar to a program that can be built in different configurations. You would generally not branch a program just for different build configurations. (Unless, say, you're developing an experimental new configuration that could break the others and needs to be developed in isolation. But then you have the other configurations available in your branch; you're not using branching to do the switch.) – Kaz Oct 22 '12 at 23:41
  • 3
    +1 @Kaz VCS is important to use... but this isn't really the place for that. Keeping 4 branches of a project isn't the same as keeping 4 versions of a CV. If I update my work history in CV1, I doubt VCS would update the work history in CV2-4 easily. – WernerCD Oct 23 '12 at 02:47
  • Git can quite easily handle the problems you mention @Kaz: You keep a "Main CV" which contains the content (the program), and then have "wrapper" branches (the build config stuff). Only make changes to the content in the Main branch, and then rebase the other branches onto it, or merge the Main branch changes into the wrapper branch. If you're using LaTeX, and you use include/input sensibly, then this can be fairly easy to handle. – naught101 Oct 23 '12 at 03:01
  • 1
    What you describe is a version control labyrinth. It is not easy. Preprocessing your LaTeX with the C preprocessor and #ifdef directives would be easier. git itself is extremely difficult to use for the average codger, even one who has used half a dozen other version control systems. It's a tool for people (and by people) who debug device drivers with printk, and dumps of register values and stack memory. – Kaz Oct 23 '12 at 03:34
  • -1 Branches are for various versions of a software. The word "version" in my question was referring to a negative side-effect of not having a better tool. I have to agree with @Kaz. As a professor I have one set of experiences (with multiple representations). Because the representations are not generated from the same source (easily), we end up with versions (copies). I would agree that a VCS is useful to manage the main source as it evolves, but the branches idea seems misguided to me. – Fuhrmanator Oct 24 '12 at 12:55
  • Fair enough. It depends on your workflow, I guess. I was just trying to throw the idea out there. I'm still in the intermediate stages of learning, but I figured it was at least worth mentioning the options. – aeismail Oct 24 '12 at 13:39
  • 1
    Exactly. Look, you want to be able to load a text file into your editor, and see all of the variants in one place. One problem with using branches is that there is a combinatorial explosion. Suppose that your document is customized by by six boolean feature flags. This means it can be generated in 64 combinations. Are you going to branch for each one of those? git comes from the Linux kernel community, yet Linux is configured by CONFIG_* flags, not by branching. And if you're targetting MIPS, the x86 code is still in the tree. – Kaz Oct 24 '12 at 18:30
  • 3
    All that said, there is no good reason not to use Git (or another VCS) to manage whatever good (LaTeX?) solution you come up with. – Raphael Oct 25 '12 at 08:47
4

In 2003 or so, I had a senior-project student try to influence the XMLRésuméLibrary project to support academic CV types, but the project didn't move forward.

There's a related project called HR-XSL, designed to convert XML-formatted CVs into various formats using command-line tools. But I have not used it. The examples (HTML, PDF) are for a university professor, implying it might be useful to academics. It's customizable, according to the and has pretty decent documentation.


Edit: I gave HR-XSL a shot and it works easily in Eclipse (you need Ant and Java). The CV data is stored in an XML file that can easily be edited using a text (or more interestingly) an XML editor (Eclipse has a built-in one that is spiffy). Customizing the output is pretty easy, even though it's DOCBOOK and I've never used it before. I didn't carry out the exercise to the end (creating multiple formats), but feel it is going to pay off.

Some limitations of the XML schema are that there are no data types for things like "Research interests" or "Grants and Contracts". However, there's a ResumeAdditionalItem that supports a user-defined type, e.g., "Grants and Contracts" and all entries there get grouped under that heading.

There is also an internationalization dimension, but I don't think it will work to prevent duplicate XML sources for different languages (e.g., English and French). The reason is that the internationalization works to customize headings, such as "Table of contents" and "Table des matières". I haven't yet found a way to specify a Job Title in English vs. French, for example.

Fuhrmanator
  • 4,052
  • 1
  • 20
  • 31
3

I have never tried it, but yst was created to do this. There was a nice statement of the problem here:

Using yst, I can main­tain a data­base of my arti­cles, talks, ser­vice, aca­d­e­mic posi­tions, etc. as a set of YAML text files. I can edit these in any edi­tor. yst then pro­duces my web­site and var­i­ous ver­sions of my CV from this data, using a set of cus­tomized templates.

A similar statement by someone else can be found here

I can have, say, my list of publications or my list of conference talks as yaml data. I can then use yst to build a CV page for my website. I can also use yst to generate a .tex file for a pdf version of my CV. This way, I don't need to make the same edits in two different places when I give another talk.

StrongBad
  • 104,237
  • 30
  • 262
  • 484
  • 1
    Second link is broken. – Ari B. Friedman Sep 15 '13 at 10:55
  • @AriB.Friedman That is exactly why I included the key quote from the site. I found another person who says almost exactly the same thing. As I said, I don't use yst, and I have not found a yst template for making a CV, but it sounds like it is possible. – StrongBad Sep 16 '13 at 09:43