This is a space for brainstorming about a microformat for resumes/CVs.
- 1 Resumé Brainstorming
- 1.1 Contributors
- 1.2 Consequence of
- 1.3 Analysis
- 1.4 Application of current microformats
- 1.5 Brainstorming Session 2005-11-10
- 1.6 Strawman Outline
- 1.7 Strawman Draft
- 1.8 Format
- 1.9 Examples
- 1.10 Examples in the wild
- 1.11 Implementations
- 1.12 References
A first pass at some analysis of the Aggregate analysis on resume-examples. A proposed 80/20:
|affiliations||a list of affiliations, each with organization name, url and association type|
|contact info||contact info - address, email, url|
|education||a list including organization/school info (name, location), degree/area of study, honors/awards, date (graduation only or range), GPA|
|employment/professional experience||a list including the organization, timeframe, job title and location, accomplishments, description|
|skills||an outline of skills/tools broken down by general categories|
|publications/presentation||a list of writings, each including author(s), title, url and published year|
|summary/qualifications||a list of qualifications and competencies|
left off for now
- exhibitions - too rare?
- appearances and awards- don't know how to generalize this
- awards - too specific and rare
- interests - too rare
- objective - just use summary
- patents - too rare
- portfolio - too rare?
- projects - too rare?
- status - just use the 'summary'
- presentations - sure probably be part of one of the above, not sure where it fits in yet
The following is the result of some brainstorming between some guys from Technorati and SimplyHired.
According to the SimplyHired guys, who see a lot of resumes, a typical resume consists of these sections:
- Contact Info
- Work Experience
Again, according to SimplyHired, these sections are less common:
- references (could be tied to a specific job)
Some people publish functional resumes, which are a somewhat inverted form of the traditional.
- Work Experience
- experience (job, education, etc)
- It would be helpful to have the following fields associated with skills: Robert Merrill 07:41, 12 Feb 2006 (PST)
- Skill-Level: Beginner, Advanced, Expert
- Years of experience with skill (numeric)
- Last used: either value of "currently used" or years since last-used
Application of current microformats
See Resume Formats for a description of common résumé elements. It seems that some of these constructs could easily be represented with existing microformats.
The contact info block of a résumé could be expressed with an hCard 1.0.
Educational experience could be expressed as a list of hcalendars. The rationale is that education can be viewed as a long-running event- it would be easy to reuse the vocabulary from hCalendar 1.0 for describing events.
Just like Education, work experience could be expressed as a list of hcalendars.
Additionally, within a particular work experience, the list of job titles could be expressed as hcards. The only issue here is with having to repeat the FN for each of these hcards.
It might also be useful to extend XFN - The XHTML Friends Network for marking up links to employers and clients.
Skills could be expressed as tags, using relTag. As with all rel-tag uses, a number of tagspaces would be appropriate.
Any publications, presentations, or other works could be represented by a citation microformat.
References could be expressed as a list of hcards, though web-based résumés tend to be light on using references.
In our initial brainstorming, we talked about doing references in resumes. However, after doing the resume-examples research it doesn't seem that references are published on the web very often.
LinkedIn allows users to endorse others' resumes. This functionality could be capture with Vote Links.
Like the previous, this doesn't get used on the open web much, so I (Ryan King) think it should be left out, at least initially.
Brainstorming Session 2005-11-10
- Tantek Çelik
- Ryan King
- James Levine
Photo From Brainstorming Session
Writeup of Brainstorming Session
- "hresume" - root class name
- "contact" hCard - should use
<address>. Can be the person who the resume is about OR the proxy/contact in the case of recruiting/hiring services
- "objective" - block of text explaining the objective
- "job" hCalendar vevent - for each job in the jobs section:
- hCard for title, org, address of company, (optionally, work phone numbers, etc.). For "fn" use indirection by referencing "contact" hCard above with an object tag as explained below.
- "education" hCalendar vevent - for each school attended in the education section:
- hCard for the school with fn==org, address of school, (optionally, url, phone numbers, etc.).
- "skill" rel="tag" - for each skill
<cite>for each publication
- rel="reference" + XFN + hCard for references. rel="reference" makes sense because you are saying this person over here is a reference for the person represented by this resume.
- "contact" hCard - should use
The lists of jobs, education, skills, references should all use XOXO.
hCard reference via object
In typical resumes, each job listed also states the job title that the person had, as well as the name of the company, often the address (or at least city/state) of the company, and other information pertaining to the company.
This is effectively an hCard for the person while they were (are) working at that job, thus it makes sense to markup all that information as an hCard.
The only catch is, rarely do such hCards for each job include the person's name, visibly. Nor do we want to encourage people to replicate their name into those hCards (thus violating DRY) in invisible span elements. Thus the following code is proposed for a field (or several) in an hCard to reference another element in the document (likely the same field(s) in another hCard) and parse that other element as if it was inline in the hCard.
<span class="vcard"> <object data="#j" class="fn n"></object> <span class="org">SimplyHired</span> <span class="title">Microformat Brainstormer</span> </span>
Where "j" is the id attribute value of the "fn n" element of the contact hCard at the top of the page, e.g. (shown here as a verbose hCard for purposes of illustration that the reference may be to a subtree, not just a text node):
<span class="vcard"> <span class="fn n" id="j"> <span class="given-name"> James </span> <span class="family-name"> Levine </span> </span> </span>
This method of hCard property indirection via an object element could be generalized to apply to any/all string/text properties in hCard.
Note: the object data attribute MUST be a local ID reference. External references (which would require a consuming application to load an external resource) are currently not supported by this method.
Issue: need to check with Brian Suda to see how easy/hard it would be to add this to X2V. Given that it wasn't too difficult to add the table td "headers" attribute content indirection support, this should be just as easy.
Status: According to Brian Suda: "... it shouldn't be too difficult... you are right it is pretty similar to the AXIS HEADER ID problems."
Here's an outline of a strawman proposal.
- class~="affiliation" + hcard -- use classname 'affiliation' + an hcard for the organization of which the user is a member
- a rel or rev value for membership/affiliation (this doesn't capture the name of the organization or any other information, but could be useful outside resumes)
Simple, an hcard for the person in an <address>.
A list of hCalendar events, one for each education experience. We can either define a mapping of the terms, or just let loose and let conventions develop naturally.
A list of hCalendar events (one for each work experience). Optionally use hCards for describing job titles, organizational units, etc. We'll likely have a bit of a problem with not wanting to repeat FN for each hCard.
Most resumes analyzed in the resume-examples page had a section for skills and/or qualifications. I think this usage can be best covered by using rel-tag, and not require a specific section for these tags. Perhaps add a 'skill' classname.
Defer this problem to the Citation microformat efforts work.
@class~="summary" (like hCalendar, hReview, etc.)
Just some space work working the draft schema out...
The hResume format is based on a set of fields common to numerous resumes published today on the web. Where possible field names have been chosen and reused from preexisting microformats.
The hResume schema consists of the following:
- summary. optional. text.
- contact info. required.
- education. optional. One or more hCalendar 1.0 events with the class name '
education', with an embedded hCard indicating the job title, name of company, address of company etc.
- experience. optional One or more hCalendar 1.0 events with the class name '
experience', with an embedded hCard indicating the name of school, address of school etc.
- skills. optional. phrases or keywords using the rel="tag" microformat with the class name '
- affiliations. optional. the class name
affiliationalong with an hCard 1.0 of the organization
- publications. optional. One or more citations. Use cite tag.
- references. optional. One or more references.
The fields of the hReview schema represent the following:
- summary:: This optional field serves as a overview of qualifications and objectives.
- contact:: Current contact info. The
<address>with hCard 1.0.
- education:: the class name '
education' is applied to an hCalendar 1.0 event.
- experience:: the class name '
experience' is applied to an hCalendar 1.0 event. Job titles/positions should use an hCard 1.0.
- skills:: An hResume may be tagged using the rel="tag" microformat and the '
skill' class name.
- affiliations:: The class name <code="class-name">affiliation is used along with an hCard 1.0 of the organization
- publications:: just use
<cite>. When there is a Citation microformat efforts microformat, then that can be used in combination with the cite element to further markup the components of the citation.
- rel="reference". For references, link to the person with rel="reference" and any other XFN values that apply (e.g. "colleague", "co-worker", "friend", "kin" etc.), and use hCard to markup the name of the reference.
This section is informative.
An example summary:
<p class="summary"> I have 10 years experience with all Web 2.0 technologies– I've been working with Ajax since 1996, designing with pastels while others will still using tiled background images and frames... </p>
<address class="vcard"> <span class="fn">Pedro Sanchez</span> <span class="adr"> <span class="street-address">123 Fake St.</span> <span class="locality">Preston</span>, <span class="region">Idaho</span> <span class="postal-code">83263</span> </span> <span>Email: <a class="email" href="mailto:firstname.lastname@example.org">email@example.com</a></span> <span>Homepage: <a class="url" href="http://vote-for-pedro.com/">vote-for-pedro.com</a></span> <span>Phone: <span class="tel">+01.208.555.4567</span></span> </address>
<ol class="vcalendar"> <li class="education vevent"> <a class="url summary" href="http://example.edu/">Preston High School</a> (<abbr class="dtstart" title="1995-01-24">2001</abbr> - <abbr class="dtend" title="2005-05-25">2005</abbr>) </li> ...
A basic experience event:
<ol class="vcalendar"> <li class="experience vevent"> <span class="summary">President</span>, <span class="location">Preston High School</span>, <abbr class="dtstart" title="2004-09-01">May 2005</abbr> - <abbr title="2005-05-25">present</abbr> </li> ...
To express multiple job titles/positions in the same experience event you should use hCards. hCard 1.0 requires the
fn ("formatted name") field, but it isn't reasonable to repeat your name for every job title you mark up in hResume. So, you may use an
<object> with a reference to the
fn somewhere else on the page.
<span class="vcard"> <object data="#j" class="fn n"></object> <span class="org">Preston High School</span> <span class="title">Class President</span> </span>
j" is the id attribute value of the "
fn n" element of the contact hCard 1.0 at the top of the page, e.g. (shown here as a verbose hCard 1.0 for purposes of illustration that the reference may be to a subtree, not just a text node):
<address class="vcard"> <span class="fn n" id="j"> <span class="given-name">Pedro</span> <span class="family-name">Sanchez</span> </span> </address>
This method of hCard property indirection via an object element could be generalized to apply to any/all string/text properties in hCard. Note: the object data attribute MUST be a local ID reference. External references (which would require a consuming application to load an external resource) are currently not supported by this method.
Some sample skills tags:
I have skills in <a class="skill" rel="tag" href="http://en.wikipedia.org/wiki/Bow_%28weapon%29">bow hunting</a> and <a class="skill" rel="tag" href="http://en.wikipedia.org/wiki/Nunchucks">nunchucks</a>.
<span class="affiliation vcard"><span class="fn org">National Honor Society</span></span>
<cite>Breeding Ligers for Fun and Magic</cite>, Idaho Press, 2004.