Case study · Corporate
International corporate website on Drupal: REST API (OpenAPI) and integration of a recruitment ATS
How we connect a Drupal website to a recruitment ATS and expose a documented REST API — content modelling, synchronisation and multilingual support, under white label.
- Role
- Design, development & integrations — subcontracted
- End client
- An international private-sector group (anonymised)
- Technical foundation
- Drupal 10 · PHP 8 · API REST / OpenAPI
- Scope
- Content modelling, ATS integration (job synchronisation), documented REST API, profile import, multilingual, emailing, ongoing maintenance
The need: a website that talks to other systems
For an international group, a corporate website is not an island: it has to display job offers that live in HR software, present teams and entities maintained elsewhere, and sometimes expose all of this to other applications. The real issue is therefore not “making pages”, but making data flow cleanly — with no double entry, no copy and paste, and no divergence between the website and the source systems. It is integration work, and that is where the value lies.
Modelling the right content
Before any integration, you need the right content model. We structured three business building blocks: job offers (with their taxonomies — roles, locations, contract types), team profiles, and group entities (business units). Each block has its own fields, relationships and rules. A clean model upstream is what makes the integration and the API predictable afterwards — rather than a pile of fields improvised as needs arise.
Integrating the recruitment ATS: a synchronisation, not copy and paste
Job offers are not entered in Drupal: they live in a recruitment ATS (TalentSoft). We developed a scheduled synchronisation — a command run as a background task — that queries the source, creates or updates the corresponding offers in Drupal (upsert), and automatically removes offers that have become obsolete. The result: the website is always up to date, nobody re-keys a job advert by hand, and the ATS remains the single source of truth. The same logic is used to import team profiles. It is a robust, traceable and replayable integration — not a one-off import.
Exposing a documented REST API (OpenAPI)
Once the data is clean in Drupal, it has to be possible to redistribute it. We built a custom REST API exposing the business resources — list and detail of job offers, their taxonomies and vocabularies, the group entities — with automatically generated OpenAPI documentation. Technically: dedicated REST resources, param converters to resolve entities cleanly from the URL, and an event subscriber to control API routing. The benefit for an agency: this API is documented, versionable and consumable — by the website’s front end, a third-party application or a future project — instead of being logic buried in templates.
Multilingual from end to end
An international group speaks several languages, and multilingual support does not stop at editorial content: it runs through the model, the interface and the API. Content is translated and served per language, including through the API endpoints. This is what makes it possible to feed localised interfaces without duplicating logic — one foundation, several markets.
Emailing and relationships
Beyond content, the website triggers communications. We integrated an emailing solution (Mailify) to connect forms and journeys to the group’s relationship tool, with sending controlled on the server side. Here again, the rule is the same: the website does not reinvent a tool, it integrates with the one that already has authority.
Performance and robustness, without having to think about it
An integration is only valuable if it holds up under load and stays smooth. The foundation includes fine-grained cache management (suitable cache contexts, including the mobile / desktop distinction), user-experience details such as reading time, and the usual quality chain — tooled code review, continuous integration — so that changes do not introduce regressions. It is not the selling point of the project, but it is what keeps it running without surprises.
Taking over or developing an API integration
This is the point that speaks to an agency: a website full of integrations is daunting to take over — unless it is built properly. Here, everything is readable and documented: the content model is explicit, the synchronisation is an isolated, replayable command, the API is described in OpenAPI, and quality is tooled. We know how to audit an existing integration, understand the flow between the source system and Drupal, and extend it — add a resource to the API, plug in a new source, open a new language — without taking everything apart.
Frequently asked questions
Why synchronise from an ATS rather than entering offers in the website?
To keep a single source of truth. Recruiters work in the ATS; the website synchronises with it automatically (creating, updating and removing expired offers). Nobody re-keys anything, and the website never diverges from the HR tool.
What is the point of a REST API documented in OpenAPI on a corporate website?
To redistribute data cleanly: feeding the front end, a mobile application or a partner, without exposing the internal logic. The OpenAPI documentation makes the API understandable and consumable by any team, and makes it easier to take over.
Can another source or a new language be added later?
Yes. The synchronisation is isolated in a dedicated command and the content model is explicit: adding a source, an API resource or a language is done by extension, not by rewriting.
Do you work under white label for agencies?
Yes. We work as subcontractors on demanding Drupal projects — modelling, third-party API integrations, REST APIs, multilingual sites, takeovers and maintenance — under your brand.
In short: this project is not “just another website”: it is an integration platform. The value is in the flow — data that comes from an ATS, is organised in a clean model, and goes back out through a documented API, all multilingual and maintainable. It is exactly the kind of “connected” Drupal project an agency looks to delegate.
Full-stack & AI web development studio — Drupal, WordPress, accessibility.