Joseph Wright (UK-TUG secretary, author of siunitx and moderator on TeX.sx) has written a series of blog posts on writing CVs (résumés in American) in LaTeX. Joseph is a chemist, but pretty much everything he says is relevant to people from all academic disciplines. And much is even more general than that.
I’ve recently been experimenting with writing my CV with emacs ORG mode to allow pdf and html versions to be kept in sync. This is one of many ways you might try maintaining multiple in-sync formats of your CV. Others include:
- A TeX version and using htlatex to generate the html version
- Writing in markdown and using pandoc to generate tex and html versions
Each way has advantages and disadvantages. I hope to write up my experiences of trying out each method soon.

I used to maintain my CV in markdown, producing PDF and HTML versions with pandoc. It bothered me that when an article was published, I had to enter the same information twice, with small formatting differences, into my CV and my website. I also soon found that I often needed different versions of the CV, organizing the same underlying information in different ways. For example, a CV for an internal university promotion review may contain information that would not go in a public CV.
To solve these problems, I wrote yst. Using yst, I can maintain a database of my articles, talks, service, academic positions, etc. as a set of YAML text files. I can edit these in any editor. yst then produces my website and various versions of my CV from this data, using a set of customized templates.
Thanks for this! I will certainly check it out. I was just thinking that some mark up language would make a better way to maintain this information, rather than abusing ORG or markdown syntax to get what you want. (My org file is littered with
#+BEGIN_LATEXblocks to change how the various list environments look between sections. It’s messy.