The technology needed to build a better ‘Job Search’
Words Jure Cuhalev | 30/8/2015 | Client: Adrem Group Ltd | Tag: Design Ideas
Search is an integral part of our new website design for recruitment agency Adrem which we launched in 2015. The websites singular focus was to deliver fast reliable search to its visitors who demand that finding a job online should take the least amount of effort and that they should be in a control. This set the precedence for the technology and the user experience. Alongside setting a real challenge for our team of designer and coders.
The fundamental building block was to implement the search engine Apache Solr Search. With its open source, enterprise quality server, offering the best solution that could be integration into Adrems existing hosting package. It also allowed us the control to optimise its capabilities. This was especially relevant to Adrem who required the acceptance of multiple language rules as they have offices in London, Shanghai and Dubai.
True to the open source landscape we all now work within Jure Cuhalev and &&& wanted to share three key features that we implemented and developed to improve the user journey. Together they helped us build a powerful search that has made a real difference for the end user. Combined they could help you do the same.
1. The continuity and necessary speed required to browse Jobs
Websites often break focus for end users when it comes to search filtering by refreshing a page on each search or search filter. This has a number of drawbacks from load time to breaking the continuity of search for the end user. Our solution was to implement AJAX to change content without instigating a full-page reload. This directly improved the responsiveness of search and search filtering. Allowing us to reduce the load time to less than few hundred milliseconds. Although there is not a full-page load we realised the importance that users should be able to share exact searches and save them for later reference. To make this a reality we implemented HTML5 History API, changing the URL as the search part of the page loads. Allowing users to share filtered search at across all levels.
Browsing for a job requires a level of filtering by the end user, but this needs to be simple. At best avoiding the delivery of empty search results. One could argue that you require a huge database of content to avoid the situation of delivering empty search results. This is partially true, however Solr offers calls to filtering across taxonomies as faceted search. The great advantage is that it is fast and flexible at the same time. This allowed us to build expressions, such as [Category] AND [Subdivision 1 OR Subdivision 2]. When we have our faceted results, Solr also returns results for possible sub queries. You get result counts, for combinations with extra filters. In the above example, it would inform us also about possible [Location] results, e.g. there are 5 jobs in England, but not in Germany. We can then hide or disable options that avoiding the empty search result.
2. Search Guidance
Visitors will likely compare our search to the general all purpose website search. This is a problem that most websites face and the added issue with Adrem was we where not searching across millions of documents. That is why we have to provide more guidance inside the interface.
The biggest challenge was to ensure that visitors query by an existing term. One solution was to display search suggestions, as they type. This allows for faster input, reducing the likelihood of users mistypes their search query. Which could lead to empty or inaccurate search results.
To address this issue we display only the most popular terms, which can be set by thresholds inside Solr. Allowing us to the expand search phrase. If there are less than 3 results, it will try to include words that it can spelt in a similar way. This results are better search experience, at a slight cost of precision.
To check the results, we can also log searches from our visitors. This allows us to see if they are getting poor results, due to the terms they use. We can add these terms to the list of synonym pairs.
3. Improving related content with Solrs simplicity search
For Adrem both job descriptions and titles sometimes differed across the field. This makes it harder for visitors to find all the jobs that they would qualify for. This is a typical issue and required search to be refined. To work around this, we want to compare jobs based on their content, not just meta data.
This is core functionality of Solrs similarity search. It helps visitors discover jobs across the field that might otherwise get overlooked.
Conclusion on search
- With new technologies, it’s tempting to turn on all the features. It rarely ends well as It increases development and testing required. Whilst making the interface more complex than necessary.
- Solr provides a solid infrastructure for future work. We can add new languages and extra types of content analysis.
- To learn more about Solr, you can start with the official page. It has plenty of tutorials and ready to use binaries.
- To get most out of it, we recommend Solr in Action by Trey Grainger and Timothy Potter. It is the best resource for advanced Solr configuration at the moment.
- To integrate it with your PHP project, use Solarium library. It’s stable and supports all the advanced Solr features.
More on Search
You can read more about the creative rational behind search in our case study ‘Search inspired the website design, transforming Adrems site into an intuitive tool’.
On the Thursday 29th October Jure Cuhalev our tech head partner will flying in from Slovenia to present ‘Beyond WordPress Search’ at Octobers Creative Corner. Elaborating on the importance and implementation of Search. Exploring;
- Search query autocompletes, to help your visitors with the terms
- Filtered search to simplify navigation of taxonomies and structured data
- Related search queries, to help with mistyped words and limited results and related content across your sites
Find our more about our latest initiative Creative Corner, disruptive inspiration for inquisitive minds.