hrbuilder: User documentation


What are we trying to do?

Do you get irritated dealing with your resume? Would it be nice to get greater automation?

I have a lot of entries in my resume. Sometimes I have to produce a short resume (with only the most important entries). Sometimes I have to produce a full resume (with everything).

Sometimes I like to have a resume organised by 'types' of activities (e.g. publications, projects, etc). Sometimes, I like to have the resume organised by subject - collect together everything I've done on banking, then collect together everything I've done on pensions, etc. After this, there can be residual categories, showing entries not accounted for in the subject-wise organisation.

I write papers. These go into my .bib file anyway (which is used by bibtex). It seems silly to type in this information once again in my resume. This should be automated.

Sometimes, I need to produce an 'activity report' over a stated daterange. It should be easy to generate this as and when required.

I need the resume in many file formats: pdf, html, text. In the HTML version, I should be able to put in links to the papers which are available for download on my website. I also like to automatically generate web pages of my activities, organised by field.

hrbuilder

The program hrbuilder automates all these tasks.

The way it works is that you maintain a single file which is a `database' of all your activities. Then it's easy to achieve all the above goals by either tweaking the commandline parameters to hrbuilder, or making small changes at the top of your file.

Pre-requisites

This is only useful for people who already use, or are willing to use, LaTeX and bibtex.

Organisation of your-res.hrb file

The .hrb file is a series of entries. Each entry can consists of six aspects:

  1. Date information: It either has a sharp date or it has a date range. Dates have to be to the resolution of a month. So you can say "200204" (for something that happened in 4/2002), or you can say "200204-200304" (for something that ran from 4/2002 to 4/2003), or you can say "200204-" (for something that started in 4/2002 and is still running).
  2. Coolness: You can put an integer sorting entries in your resume by how cool they are. You can pick any range of integers that you like. I use 1, 2 and 3. When you run hrbuilder, you can tell him to not use entries with a coolness below some value supplied by you.
  3. Type: You have to choose a list of types, such as "appointments", "publications", "projects", etc. Each entry has to be tagged with a type.
  4. Subject: You can choose a list of subjects (i.e. fields) that you work in, such as "banking", "pensions", "derivatives", etc. Each entry can be tagged with a subject.
  5. The contents of the entry itself: You can either specify a key into your .bib file (for publications), or you can just put in plain text.
  6. Hook to a PDF file: If you have a PDF file, which is associated with this entry and is available for download from your home page, then the name of the PDF file can be specified.

Most entries in a typical resume do not involve all these six elements. You can freely ignore things that don't make sense.

Here is an example, of an entry for a publication:

  date=200302;
    subject=pensions;
    type=article;
    key=Shah2003_pensionguarantees;
    pdf=Shah2003_pensionguarantees.pdf;
    cool=3;

This says that in 2/2003, I got a publication which is referenced by the key Shah2003_pensionguarantees in my .bib file. It is also available for download as the file Shah2003_pensionguarantees.pdf from my home page. It is coolness 3. It is of type 'article' and belongs in the field 'pensions'.

The .hrb file format is friendly in many respects. You can leave comments in the file starting with '#'. Statements end with semicolon, and can hence span over many lines. You can always throw in extra whitespace, which is quietly ignored. However each block must be one set of contiguous lines. When you start with a `date', go on till the end of this entry without any blank lines. A blank line signals the end of this block and the start of the next.

Here is another example:

  date=199912-200012;
    type=committee;
    subject=banking;
    content= Member, ``Advisory group on payment and settlement
      system'', Chaired by M. G. Bhide, RBI, 2000. This was part of the
      \textit{Standing committee on international financial standards
      and codes} effort.;
    cool=2;

This is a committee membership which ran from 12/1999 till 12/2000. Note that the "content" here is formatted LaTeX (it will be utilised verbatim). Notice how it stretches across many lines until the semicolon. But, be careful to notice that a blank line would end the block.

Structure of the .hrb file

The .hrb file consists of three elements: (a) mappings (b) basics and (c) the entries themselves.

The mappings establish shortnames and longnames for the various "types" and "subjects" that you are going to use. Here is an example:

  mappings;
    subject banking -> Banking;
    subject pensions -> Pensions;
    subject securities -> Securities markets;
    subject risk -> Risk management;
    type wp -> Working papers;
    type article -> Articles;
    type bookchap -> Chapters in books;
    type peer_review -> Peer review;
    type award -> Awards;
    type job -> Positions;
    type committee -> Committees;
    type education -> Education;

This defines the subjects and types that you will use. Short names are defined, as are associated full strings. You are free to define your own subjects and your own types - there is absolutely no requirement that you have to have entries like the above.

When you start off on mappings, put in all your mappings, and when there is a blank line, that signals the end of this block.

The basics in the .hrb file supply information about yourself, and about the way you want your resume to be sequenced. Here is an example:

  basics;
    name = Ajay Shah;
    url = http://www.mayin.org/\string~ajayshah;
    email = ajayshah@mayin.org;
    bibfile = ansue;
    bst = myfancy;
    order = job,
            education,
            banking,
            article,
            award;

Once again, you start off on basics, and keep going till a blank line ends this block.

This supplies your name, the URL for your home page (in formatted LaTeX), your email address, the name for your .bib file, the name for the .bst file that you want to use, and the order in which sections will appear in your resume.

The `order' is an interesting feature. The resume generation will happen in the order you have specified - in the above example, five sections will be generated, showing jobs, education, banking, articles and awards. Resume generation is greedy: when doing banking, everything connected with banking (which has not yet been used up) will be put in there. Hence, all articles about banking will appear under banking. After this, when we get to articles, all articles not yet utilised will be put in.

It is perfectly okay for you to use only a few elements in `order', and for some entries in the resume to not appear in the resume at all. The broad idea in hrbuilder is that you will treat your .hrb file as a database : put everything in there. At resume-generation time, you will pick and choose what subset has to go into the resume.

Commandline args for hrbuilder

$ ./hrbuilder.pl --data filename
     [--verbose]
     [--mincool number]
     [--from yyyymm] [--upto yyyymm]

By default, all entries are taken. If you specify an integer mincool, then entries with inferior coolness are skipped. If you specify either a starting or an ending date (or both), then entries that don't fit are screened out.

Say '--verbose' (or -v) multiple times for more verbosity.

Full list of tasks that it does

Installation instructions

There is only one file you need: the executable hrbuilder.pl. It internally uses two (mainstream) perl modules : Getopt::Long and File::Basename. These are pretty commonplace, or you can get them from CPAN. It also internally uses the `tex4ht' package, which you can get from CTAN.

At the top of the hrbuilder.pl, there is a directory name that's hardcoded into the program called `pdfbasepath'. This is a directory (under public_html) where you keep PDF files that are given out through your web page. Please modify this to reflect your machine if you don't like the default, which is $HOME/public_html/PDFDOCS.

Bugs, complaints


Back up to Ajay Shah's home page -- Free software


Ajay Shah
ajayshah at mayin dot org