Case study · Recruitment
SignalsAPI: a self-healing platform for recruitment demand.
Recruitment agencies trade on hiring demand, but the postings that carry the signal are scattered across hundreds of sources that change constantly. The system turns that whole posting market into a searchable hiring-demand feed, built alone from the first line of code and live since November 2021.
The problem underneath the tasks.
The competitive reading of recruitment is that a placement starts with a candidate and a job. The structural reading is that it starts with demand: posts opening, roles staying open, the same company hiring again. A single job board surfaces a fraction of that, and the signal a sales team needs is the shape of the whole market, not what one board decides to publish.
Two insights, both discovered rather than designed.
The first insight was that at this scale, breakage is the normal state, not the exception. Hundreds of sources change routinely, and the design goal is detect and recover without a human, not build something that never breaks.
The second insight was harder. Each agency's process looks unique, and isn't. Beneath the surface variation there is a standardised pipeline that works universally, the invariant beneath the variation. That is where the site's method step four, "find the invariant", was learned, and it is what transferred to every system after.
Now we have 457 sources for jobs, and it means that if each of them just changes once a year, it means we have changes daily, like more than daily. So the challenge was to build a system that stays reliable over time, not that doesn't break, but that when it is breaking, it is healing.
What was built, and on what.
Schematic — shape onlyThe production mesh is 30+ Python microservices handling 1M+ daily operations, event-driven through RabbitMQ, backed by PostgreSQL with pgvector, orchestrated as a self-healing scraping and classification pipeline. The system watches its own failures: parsers that drift are caught, sources that vanish are marked, and the platform keeps producing signal while the rest of the web keeps moving.
The infrastructure runs on bare-metal Docker on commodity servers, no DevOps function, 99.9% uptime, 70% below the cloud cost of the equivalent managed stack. CI is in-repo, no hosted Actions, every subproject owns its own gate.
Engineering-maturity artefacts carried by the codebase: read-only production SQL by construction (client-side write-keyword rejection, server-side read-only default, statement timeout); credential-free API access from the CLI (the key never leaves the container env); a self-healing parser set processing 1M+ daily data points at a 95% success rate on protected sites, anti-bot circumvention handled in code rather than named in copy. On the extraction side, the pipeline runs through 1 million pages every day.
The same pipeline discipline reaches the commercial edge of the system: a multi-agent AI pipeline cut client onboarding from 5 days to 3 hours.
Why the dates matter, and the honesty that travels with them.
The system has been live since November 2021. The first paying client came at three months, brought in as a pilot by the founders, with one of their own engineers steering the platform rather than it running self-serve. Full self-serve switched on six months later, an org policy decision rather than a technical limit. The first self-serve signup landed at nine months, about two weeks after self-registration was even switched on. The numbers are kept honest because the system is meant to be referenced in interviews, not sold to a buyer who did not ask.
The line under the work.
"Built the complete technical foundation as the sole developer."
SignalsAPI: a self-healing platform for recruitment demand, built alone from the first line of code and live since November 2021. Two insights: breakage is the normal state at this scale, and every agency's process looks unique but is not. Bare-metal Docker, no DevOps function.