LinkedIn Launches hResume

It is with great pleasure that I announce LinkedIn has republished all Public Profiles marked up in the hResume microformat.

LinkedIn has approximately 9 million registered users. By default, a user’s Public Profile is set to Basic View. The Basic View consists of the following information (the relevant hResume fields are emphasized):

  • name
  • current job title
  • geographic region
  • number of recommendations
  • number of connections
  • industry

While the user has the ability to turn off Public Profile publishing altogether, only a small percentage have chosen to do so and with just the information listed above, the minimum requirement for hResume is met. In essence, we just launched ~9 million hResumes.

Admittedly, the information in Basic View amounts to little more than a glorified hCard. It’s when you choose to activate Full View that hResume really gets a workout. In Full View we are able to implement just about everything available to us in the hResume schema:

  • summary
  • contact info
  • experience
  • education
  • affiliations

If you’re familiar with the hResume draft schema, you will notice that the missing fields are skills and publications.

Unfortunately, in this first pass, we were unable to mark up skills according to the hResume specification. This is because we’ve always allowed free-form text for what we call “specialties” and while all of our examples show a comma delimited list of of keywords, it’s not enforced and a lot of users use this area for prose. Also, because hResume skills use rel-tag, we may end up needing to create our own tag space which isn’t trivial and will require significant work on our end. So in lieu of that, I’ve decided to mark up LinkedIn “specialties” with:

<p class="skills">HTML, XHTML, CSS, DOM, JavaScript, W3C, web standards, front-end engineering, user interface development, user-centered design, usability, accessibility, semantic markup, microformats, unobtrusive JavaScript, DOM scripting</p>

As for publications, we currently don’t have a field for that, but that’s something we could easily add in the future.

Another thing to note is the way we’re handling an experience without an end-date. In other words, how do we communicate “present”? In a discussion with Brian Suda, we thought that using a time/date stamp might be a novel way to handle the problem. So for a current experience, without an end date, we use the class of dtstamp and the current date for the value. The markup looks like this:

<p class="period"> <abbr class="dtstart" title="2006-11-01">November 2006</abbr> — <abbr class="dtstamp" title="2007-01-26">Present</abbr> <abbr class="duration" title="P3M">(3 months)</abbr> </p>

Something else worth mentioning is affiliations. LinkedIn has two ways of handling this natively. First, we allow free-form text entry for general Groups and Associations on a users profile. Second, we have the formal LinkedIn for Groups feature. In this first pass it is only the latter that gets marked up as an hResume affiliation. I hope to expand this in the future so that both entry methods get marked up as affiliations.

So it’s a pretty big day for hResume! My hope is that this is a significant step towards elevating hResume from a draft into formal specification.

I guess you could say the nucleus of this event was born back on September 21st, 2006 when lead Web Developer and one of LinkedIn’s founding team members, Chris Saccheri, sent me a LinkedIn Introduction asking if I would be interested in exploring an opportunity to join the LinkedIn team. Indeed I was, and one of the driving factors in my decision was the fact that Chris had already embraced microformats and was publishing LinkedIn data in hCard, XFN and hReview. I’d be hard-pressed to find another opportunity that would allow me to work not just on microformats in general, but specifically hResume, which I’ve had a love affair with since its inception. It’s a testament to what a great place it is to work that I’ve been given the chance to accomplish this in my first couple of months here. I’m thrilled to be playing a part in the ongoing evolution of helping you build and manage your trusted professional network and promote your career online.

Last, but certainly not least, I want to thank Brian Suda for taking the time to work with me on this over the holidays. He is a pillar of the microformats community and his involvement has been both invaluable and inspirational. Thanks also to Chris Messina who has been a cheerleader for the adoption of microformats at LinkedIn over the past several months. And finally, thank you to Ryan King, Tantek Çelik, James Levine of SimplyHired and Kevin Marks for planting the seeds.

I’m sure there are some things I’m forgetting, so if you have questions, please let me know. Any and all feedback is appreciated!

P.S. To turn on Full View in your LinkedIn Public Profile, just log in and go to My Profile > Public Profile and select Full View and Save Changes.

P.P.S. The Public Profile is delivered as XHTML 1.0 transitional. It doesn’t validate at the present time because of various legacy systems that contribute to the overall output. There are plans to correct this, but it’s nothing that HTML Tidy can’t handle in the interim.

31 thoughts on “LinkedIn Launches hResume

  1. Pingback: LinkedIn Creates 9 Million hResumes at Like It Matters

  2. Pingback: hResume is live on LinkedIn at FactoryCity

  3. Pingback: Paul Downey » Blog Archive » Why LinkedIn?

  4. Pingback: » Blog Archive » Linkedin fait un grand pas vers le Web sémantique

  5. Ron Kok

    It’s always fun to see that Microformats are being implemented! It’s great that you explain the choices you made when implementing the “specialties” and “experience” properties!

  6. Alex Rudloff

    We ran into similar issues when implementing hResume across our site. for something like skills, spec calls for them to be individually.. Unfortunately for us, this sucks from a user experience p.o.v.

    I get how strictly typed units are great for standardization, but people like to express themselves in different ways. In our case, dealing with traditional resumes, it’s a requirement that we not lock users into a strictly typed form.

    HR-XML, something we support on our back end, allows for custom sections of data, which can easily be used for free form skills sections. I’d love to see something along these lines on hResume.

    Anyway.. Great work on the hResume implementation!


    Alex Rudloff

  7. Pingback: You’ll be reading about this everywhere at microformatique - a blog about microformats and “data at the edges”

  8. Pingback:

  9. Pingback: Meriblog: Meri Williams’ Weblog » links for 2007-01-27

  10. Pingback: Edgework: Steve Ganz of LinkedIn at Like It Matters

  11. Dan Libby

    This sounds wonderful. But it appears that the profile pages are only available for signed-in users?

    My site can import hcard pages at a user’s request, but it has no way to access them on linked-in. Still a walled garden?

  12. Steve Ganz Post author

    @Dan, there are features that are only available to registered LinkedIn users, however Public Profiles are available to anyone and everyone. For example, mine is located at

    As a registered user, your personal contacts are marked up in hCard and XFN and you would have to be logged in to view them.

  13. Pingback: Recruitment Technology: Beyond the ATS

  14. Pingback: All in a days work…

  15. Pingback: Man with no blog : » Kids and Interfaces - Gary Barber

  16. Pingback: microformatos: un poco de XHTML y 9.000.000 de hResumes • Grancomo

  17. Pingback: JibberJobber Blog » Blog Archive » The Resume Experiment (3 of 5) - Formatting The Resume

  18. Pingback: » Blog Archive » Jobhunting 101 in the future

  19. Pingback: microformateurs » Blog Archive » LinkedIn publie 9 millions de hResume !

  20. Pingback: Traces of Inspiration » Blog Archive » LinkedIn and Community Management

  21. Marco

    Hi Steve,

    I seem to have problems getting the Operator extension on Firefox recognise my LinkedIn Profile as hResume. Any idea if this is related to the plugin or to the LinkedIn implementation of hResume?



  22. Steve Ganz Post author

    @Marco, the latest version of Operator recognizes all LinkedIn public profiles as hResume.

    Are you sure you’re looking at your public profile? This is different from your full profile. Send me the link to your profile and I’ll take a look at it for you.

Comments are closed.