I am probably late to the party for @Ashish, but this might be of interest to others: CurVe by Didier Verna is a document class that handles different CVs for different occasions particularly well.
CurVe allows "flavors" and enables the production of different outputs. The different sections of one CV are saved in separate "rubric" documents, as CurVe calls them. Minimal example:
CV_minimal.ltx
\NeedsTeXFormat{LaTeX2e}
\documentclass[a4paper,skipsamekey,12pt,english,final]{curve}
\usepackage[english]{babel}
\title{Graduate Student}
\subtitle{at the Peace Institute, Z\"urich, Switzerland}
\begin{document}
\maketitle
\makerubric{experience}
%\makerubric{education}
%\makerubric{skills}
\end{document}
experience.ltx
\begin{rubric}{Professional Experience} %rubric title
\subrubric{Customer Services} % subrubric title
\entry*[Month/Year --- Month/Year]
Customer Service Assistant at Fresh'n'Fruity, a bar / caf\'e{} serving organic smoothies, London, UK (xy hours/week)
\subrubric{Research} % subrubric title
\entry*[Month/Year --- Month/Year]
Graduate Assistant, the Department for Science Fiction, Hogwarts School of Witchcraft and Wizardry, UK (xy hours/week)
\entry*[MM/YY --- MM/YY]
Research Intern with the ``Non-Violent Communication''-Project at the Peace Institute, Z\"urich, Switzerland
\end{rubric}
If you need different variants of that CV – e.g. to apply for a academic type job and for an industry job – you can highlight different areas of experience by applying "flavors" to your CV: Calling on
\flavor{corp}%to include the experience.corp.ltx version of the job experience section
or respectively
\flavor{academic}%to include the experience.academic.ltx version of the job experience section
in the preamble. Instead of one experience.ltx file you will need the two different versions of the file in the same folder as your main document. In this example these would be 2 files named according to the pattern rubricname.flavorname.ltx, as in:
experience.academic.ltx
experience.corp.ltx
In addition to this option of having different types of content for your CV, the CurVe class also accommodates different styles for non-rubric-elements. That means that you could, for instance, have different styles for your title and subtitle elements.
A typical example would be: you want a clickable element that links your name (in the title) to you professional homepage. Your want to style this linked title for readers of your CV online. However, for people who will read the hardcopy print-out of your CV, you'd want a different, maybe printerfriendly, version of your CV without the link.
The input-element enables you to use non-rubric elements accordingly: in the preamble of your main document you will call upon those different types via
\input{title.online.ltx}
\input{title.print.ltx}
In your working directory you will have two different versions of the title element in two separate files:
title.print.ltx
\title{Print Version of Your Title}
title.online.ltx
\title{Online Version of \href{http://link-to-my-homepage.com}{Your Title with Link}}
Monsieur Verna has written an article in PracTeX Journal about his document class which is more readable and entry-level user-friendly than the documentation with its abundance of options: LaTeX curricula vitae with the CurVe class.