TalentTool and Technology
Since releasing the open-source version of Program# I have been planning and developing the commercial version, writing a web-based expert system and working on the TalentTool project.
This post is a summary of my vision of how TalentTool works, how various emerging web-based technologies are incorporated into the application to support this vision and the progress made so far.
The Vision (How it Works)
First, TalentTool.com is designed to be simple and helpful so managing candidates is easy. This is manifested in several ways:
- The design of the user interface is clean and uncluttered (see the mock-ups described below).
- Important core processes (the famous standard and reverse funnels) have been reduced to only the most essential tasks and have been implemented as such. However, the system is flexible enough to allow added complexity should this be required.
- Navigation through the different processes and between the various pages of data is intuitive:
- Context sensitive menus always display the most useful links to pages in the system that are related to the page you are currently viewing.
- It should be possible to get from any page to any other in the system within three mouse clicks.
- Links are always descriptive and take you to where you expect.
- A page's URL makes sense and is easy to remember (no more addresses such as:
http://talenttool.com/dp/0262610744/ref=pd_sim_b_3/203-6257453-2344762).
Secondly, in addition to being a traditional candidate management system for HR departments, TalentTool is designed to inhabit an online world that commentators such as Michael Arrington describe as a job board bubble. He explains how various sites are offering "job listing" applications that plug into niche websites / blogs for targeted job advertising (for example 37 Signals have a bespoke job-board advertising web-development jobs). This is evidence of the Long Tail and a renewed interest in simple web-based applications within the recruitment sector. Now, TalentTool isn't a job board (although it could be used as one) – rather it fulfils the role as candidate / talent management system for all the applications and inquiries advertised on these niche job boards. Furthermore, my to-do list includes a means of feeding job-listings managed by TalentTool to the appropriate blog-based job boards (as explained below, ATOM / RSS and Microformats will play a big part in this).
Finally, through the use of REST and Microformats I intend TalentTool to provide an API as a limited form of service oriented architecture. By this I mean external third parties should be able to create mashups from the publicly available information provided by the site (such as job listings or candidates who have designated that their resume be publicly searchable). Put simply, just as TalentTool might want to push information out to third party blog based job-boards using ATOM and RSS, such sites might also want to pull information from TalentTool with REST and Microformats in such a way that they can include it in their site.
The Technology
I've mentioned various new (and not-so-new) web based technologies in the section above. The reasons for choosing to use them (rather than keeping with the regular way) are not the result of blindly jumping on some sort of band-wagon for the latest "shiny" new technology. Rather, each technology adds to the value of TalentTool and helps to differentiate it from the entrenched "corporate" products currently in use.
So, what are these technologies and what is their impact on TalentTool?
REST
Roy Fielding (the originator of REST) explains:
"Representational State Transfer is intended to evoke an image of how a well-designed Web application behaves: a network of web pages (a virtual state-machine), where the user progresses through an application by selecting links (state transitions), resulting in the next page (representing the next state of the application) being transferred to the user and rendered for their use."
In plain English this means: web-sites should act so that things (referenced by a URL) are changed by actions (usually the HTTP standards GET, POST, PUT and DELETE methods).
An excellent summary of this concept (in layman's terms) is the article How I explained REST to my wife.
Alternatively, consider this example from real-life. I store a collection of my favourite web-pages (also called bookmarks) at a site called del.icio.us. You can see my bookmarks by going to http://del.icio.us/ntoll. Notice that the URL is that of del.icio.us followed by my user-name – this is me represented by del.icio.us. By clicking on the link you are (HTTP) "GET"ting my list of bookmarks. Furthermore, say you want to see what bookmarks I have filed under the subject "REST" then visit http://del.icio.us/ntoll/REST. Of course, when I've authenticated myself to del.icio.us I have the authority to change my bookmark list by (HTTP) "POST"ing new web-sites to http://del.icio.us/ntoll (for example).
To summarise, RESTful sites use simple and logical URLs to refer to items in the application (they are, in effect, a sort of electronic noun) and provide a limited vocabulary of verbs (HTTP methods in brackets) that allow you to view (GET), add (POST), update (PUT) and delete (DELETE) items.
As a result TalentTool will have URLs like this:
- talenttool.com/dashboard – the user's homepage.
- talenttool.com/jobs – the current user's jobs or (if un-authenticated) a list of the most recent jobs.
- talenttool.com/candidates/smith – a list of all candidates in the system with the surname Smith.
- talenttool.com/candidates/skills/REST – a list of all candidates with skills and knowledge of REST based web-applications.
- talenttool.com/jobs/2354/candidates – a list of all candidates for the job with reference number 2354.
- talenttool.com/candidates/45765 – the candidate with the reference number 45765.
- talenttool.com/jobs/2354/events/meetings – all the meetings for job number 2354.
This is both intuitive and simple – allowing people to work easier and faster.
Microformats
As the website explains:
"...[M]icroformats are a set of simple, open data formats built upon existing and widely adopted standards."
Others have described them as "simple conventions for embedding semantics in HTML to enable decentralized development" and "codification[s] of convention".
For the non-technical this means that web-pages can use Microformats to describe the information they contain in both a human and machine form (currently only we humans understand the information in web-pages). This is often described as being the semantic web (or euphemistically Web3.0).
The W3C (Tim Berners-Lee et al who write the specifications for how the web work) invented several complicated ways of embedding semantics within web-pages. Unfortunately, these technologies have not been enthusiastically embraced (if at all) by web-developers. Microformats – although less powerful than the W3C's technology – have the advantage of being based on current best practices, simple and easy to learn. As a result industry heavyweights are advocating their use and many companies and organisations are starting to implement them.
Why is this so important for TalentTool? Well, there is already a microformat for your CV/resume and work is under way for a microformat for job-listings. This means that when browsing a page on TalentTool your software will be able to automatically import contact details into your address book, add meetings and other events to your diary and make use of all sorts of other useful machine-readable data found on the page.
Interestingly, when combined with a REST based architecture, TalentTool provides a means for third-party software to access content. For example, should an application GET the URL talenttool.com/jobs/London it will retrieve a list of all the currently open jobs the system is managing in London. The application can use the job-listing microformat to consume information about various aspects of the roles such as their job titles, benefits packages and required skill sets.
ATOM / RSS
Both ATOM and RSS are examples of web feeds that publish up-to-date summaries of the contents of a web-site. In the case of TalentTool, job-listings are likely to be syndicated by web-sites or third-party feed-reader programs that subscribe to the various feeds on offer.
Such feeds contain entries that can be anything from news items (a headline, date, and summary for example) and blog entries to podcasts and video diaries. Such feeds contain links back to the source of the content and often include additional meta-data such as semantic markup provided by Microformats.
As mentioned before, this is a means of pushing job-listings out to third parties (thus adding to the value of the site and differentiating it from regular talent management applications).
Ultimately, these technologies allow TalentTool to be placed within a decentralized yet very dynamic system for advertising jobs and hiring candidates. Truly an example of the whole system being greater than the sum of its parts.
The Story So Far…
I have completed:
- A comprehensive functional specification.
- A database schema and implemented the appropriate object-relational classes (although this needs checking and updating in light of my decision to use microformats).
- HTML based mock-ups to act as templates for what will be the dynamically created user interface.
Nota Bene: I am not a designer – the look and feel of the site will change when I get someone with graphical-design flair to update the cascading style sheet (all the pages are XHTML (strict) and the visual presentation is entirely done with style sheets). The mock-ups also link to each other correctly (although some parts have not been done and the "create job" and "create candidate" pages have not been finished yet). The pages are static examples and contain mock data marked-up using Microformats. Should you have the Tails or Operator extensions for Firefox you will be able to view and export the encoded data into third-party applications.
This leaves the following tasks to be completed in the short-term:
- Usability testing – using the mock-ups with Human Resources professionals to check that the application works in the way that they expect. This is currently under way.
- Finish the test plan – based upon the functional specifications and the feedback obtained from the usability testing.
- Alpha build – using Ruby-on-Rails for speedy prototyping and development. Ruby-on-Rails was chosen because as of version 1.2 I can easily implement a REST based architecture.
Thus, TalentTool encapsulates the story of my life. Too much to do and so little time to do it in. :-)