Case Study: Successful recruiting with Umantis and TYPO3
The shortage of skilled workers is affecting practically the entire working world. It's not just us who are noticing this, but of course our clients too. At the same time, more and more processes in our daily lives are going digital. It goes without saying that this also influences your job search. Our client pfm medical gmbh has therefore been using digital solutions to manage job advertisements and application processes for several years now. But what is actually behind this and what role do we play in it? In today's blog post, I would like to show a specific example of how a typical API integration project works for us and ultimately leads to a sustainable solution.
Backing the right horse
pfmmedical has opted for the Umantis Talent Management solution from Swiss company Abacus Umantis AG (formerly Haufe-umantis AG). The solution has already been in use at pfmmedical for some time and covers the entire process from the placement of jobs to the receipt of applications (including personal details and other application documents such as CVs, references, etc.) and their internal processing. In the case of pfmmedical, the requirements are increased by the fact that the company is active worldwide and the group also consists of various subsidiaries, each covering different business areas. This results in a very wide range of advertised positions - from medical personnel to commercial employees to managerial positions, everything is represented.
Umantis is a SaaS web application. The application process takes place online by means of specialized forms. The system also shows lists of all open vacancies as well as a highly configurable view of the actual job advertisement. With a simple click the user can then start the application process. The system can be adapted to the appearance of your own corporate site via externally referenced JS/CSS resources, which we have also used in the case of pfmmedical to date. Umantis thus forms the core of the previous career section of the German corporate site.
What are the disadvantages of the current solution?
One weak point of the current status quo from a technical point of view was to achieve a seamless integration into pfmmedical's German corporate site. In order for the presentation to appear visually homogeneous, it is important not to send the user to a subpage with a completely different structure. In the case of TYPO3, this of course primarily concerns the entire layout including the navigation - sometimes highly dynamic components that are in a constant editing process. It is therefore not possible to integrate these statically into the template of the pages rendered by Umantis. Our previous solution involved loading the Umantis pages as iFrames in the context of the "career" page. The CSS provided therefore only included the styles required for the part within the iFrame. Conversely, after clicking on a job advertisement, a jump was made out of the corporate site, directly into Umantis, i.e. the page user left the corporate page only to view a vacancy. They may not even have been aware of this at the time of the click. Not good.
As far as we know, Umantis does not have a mechanism comparable to Server Side Includes that could dynamically load parts of the page layout from TYPO3. However, as we will show below, such a mechanism was not even needed.
There is another reason why the previous iFrame approach did not have a long future: the whole thing is problematic in terms of data protection. The very fact that the user has to leave the corporate site for a third-party system just to view a job advertisement would force pfmmedical to obtain informed consent from the user in advance. Of course, as a site operator, you don't really want that at all - having to inform the potential applicant via some kind of an intimidating popup that you are about to send them to a third-party system.
How can we do better?
Fortunately, Umantis has export options for the job data. In practice, this works in such a way that you can have your Umantis contact person configure an XML feed. This feed can access all fields of the job advertisements as well as the objects behind them. For example, it is also possible to have the contact details of the responsible recruiter exported as well.
Our approach was therefore to receive the job data from Umantis and mirror it into the TYPO3 database. This allows TYPO3 to take the complete rendering into its own hands. In addition to displaying and filtering the jobs, the job data can also be fed into any existing onsite search (e.g. based on EXT:solr). This significantly increases the degree of integration with the rest of the corporate site and the usability of the data. As an agency, we can also adapt the presentation itself more flexibly and at short notice, as everything takes place in familiar terrain and no additional adjustments have to be made in a third-party system. The rendering uses the resources of the page layout directly and we keep all the strings in our hands. Site data can be viewed read-only in the TYPO3 backend, and some individual information is also maintained in TYPO3 - more on this later. We decided to load the image material used from FAL instead. Otherwise you would have resources that would have to be loaded from a third-party system - and nothing would be gained in terms of data protection.
We were aware of the fact that the above-mentioned XML feed is of course project-specific, because every Umantis user may have their own requirements for the structure of the job advertisements. Nevertheless, due to the importance of the topic, we have endeavored to keep our subsequent implementation so generic that it can also be integrated and used by other Umantis clients who use TYPO3.
Medias in res - we hit the keys ... right?
So we rolled up our sleeves and started building the extension, right? Not quite. Because first we had to define the XML feed. Only then did we know what to expect inside TYPO3. So, together with pfmmedical, we first carried out classic requirements management. We did this in the form of a short workshop with the HR department of pfmmedical as preparation and then in the form of two video conferences together with pfmmedical and a contact person from Abacus Umantis.
As a result, the requirements are as follows:
- The job advertisements consist of several clearly predefined paragraphs forming units of meaning.
- Each job advertisement shows a header element that is to be selected from a pool of content elements in TYPO3. The elements consist of (translatable) text and images.
- The job advertisements contain contact details of a responsible recruiter. These are distributed across the individual jobs, so it is not always the same one, nor is it a random one.
- Job advertisements always refer to specific company locations. These are not only located in Germany or the EU, but also in non-European countries. However, the focus is on Germany, so the locations are presented in a grouped selection.
In addition, there are sales representatives who have a defined area of operation - such as an entire federal state - and must therefore be willing to travel, for example. Flexible working models such as home office or a choice of full-time, part-time or mini-job should also be offered. - The jobs should also be indexed in career portals such as Google for Jobs. It is therefore important to include structured data (Rich Snippets) including all the necessary metadata.
Points 4 and 5 in particular proved to be quite a challenge in practice. For example: how to detect if an entered city located in Germany or if it is located abroad? Want an example? There is a "Rom" in Germany, i.e. the entry "Rom" in itself is not enough to distinguish it from the Eternal City. Conversely, however, most of the fields in Umantis are free text fields, i.e. the approach with a lookup table, which would certainly have been used in TYPO3, is also out of the question.
What's more, Schema.org objects are incredibly powerful and flexible. Even Google for Jobs only implements a fraction of the functionality itself. It was therefore necessary to implement as much of the specification to meet pfmmedical's requirements without literally overwhelming the editors with too much functionality.
Let's go: our implementation
Like most import processes in the TYPO3 environment that we have implemented so far, the basis of the importer is our dbal-cargo library. This has now been expanded to include a powerful object mapping function, which can be used to configure a mapping between the import data structure and suitable domain models in TYPO3. Using dbal-cargo, the XML elements are translated into arrays that correspond directly to the table columns of the models. In this way, even large amounts of data can be imported into TYPO3 very efficiently and with low memory requirements. Values can be transferred 1:1, set to constant values or sent through a mapping lambda, which then also allows for more complex scenarios. The importer ensures that job advertisements that no longer exist in the feed are marked as deleted (deleted == 1
) in TYPO3. The scheduler task responsible for this then cleans them up periodically.
In the TYPO3 backend, job advertisements are only displayed for viewing and checking. After all, the editor is not supposed to edit them here. This is done exclusively in Umantis. However, in order to create a possibility to check the incoming data for correctness, it can be viewed in the backend. If necessary, export settings in Umantis can then be corrected or changes made to the field mapping. The fields used depend on the requirements of the specific project and may differ from one company to the next. As pfmmedical has decided to include images and success stories in the job advertisements, there are corresponding data record types that are assigned at the time of import. The assignment is based on known IDs from Umantis.
The frontend is divided into two parts - a filterable list display of all vacancies and a detail page that lists all relevant information about a vacancy and leads to the application process in Umantis with a single click. Both page types are now rendered by TYPO3 itself, so that the user does not leave the pfmmedical website until this point. Only a click on the corresponding button on the detail page then takes them to Umantis in compliance with data protection regulations. The detail page marks all the information displayed with schema.org metadata and can therefore be easily indexed by corresponding job portals such as Google for Jobs.
What happens next and what have we learned?
So far, the job advertisements have not been integrated into the on-site search. This was simply not required by pfmmedical in the first step. However, as the job advertisements are available in the form of data records, this would be very easy to do by using the RecordIndexer
from EXT:solr. Active distribution of the job advertisements into third-party systems via their APIs is now also easily feasible. The advantage of this approach instead of a direct integration from Umantis is that the detour via TYPO3 makes it possible to direct the traffic from the placed job ads directly to appropriately configured landing pages on your own website and thus increase the visibility of the site.
One of the next steps for pfmmedical would certainly be to roll out the application process established in the German part of the company to other countries, such as the UK. Our integration is already prepared for this and is in principle capable of multi-tenancy. It would therefore be no problem to import a second feed for the UK or to filter jobs from the existing feed to display them on the individual country sites.
Connecting Umantis was definitely an exciting project for us, but it also required a lot of coordination. However, it has become clear that it is worth scheduling an additional video conference for consultation if the implementation can run much more smoothly. It was an advantage that we were able to draw on many years of experience in the implementation of such API integration projects.
Please feel free to share this article.
Comments
No comments yet.