Back to selected work

RoleDemand · Recruitment intelligence

Who’s hiring, and what’s changing.

I built RoleDemand for recruitment agencies researching potential clients. It brings together new roles and hiring patterns from public careers pages, with links back to each vacancy.

RoleDemand renewables sample showing 744 roles, employer signals and visible data quality notesView full screenshot

Public renewables sample from 7 August 2026. A dated snapshot; no customer data.

The problem

Hiring activity is scattered across employer websites. A list of vacancies alone does not explain which businesses deserve a closer look.

What I built

I built a pipeline that collects vacancies, tracks changes and turns inconsistent fields into a filterable dashboard. Hiring signals link to their supporting roles, with classification and collection gaps visible alongside them.

  1. Collect

    Public careers pages and applicant-tracking endpoints for a defined employer list.

  2. Track and check

    Record vacancy changes, normalise fields and retain the source of each classification.

  3. Use

    Review employer signals, inspect individual vacancies and export roles or an account list.

What I had to get right

  1. Separate a missing role from a failed scrape

    Collection status is part of vacancy tracking. A failed employer fetch cannot close its roles; suspicious empty results are flagged for another check.

  2. Leave room for an unknown answer

    Classifications record their method and confidence. Labels outside the configured taxonomy are rejected, and pages with too little usable data are withheld rather than presented as complete.

  3. Make each signal inspectable

    The dashboard connects employer signals to the postings behind them. Growth comparisons wait for enough collection history, so a first snapshot is not reported as growth.

How I check it

  • Offline tests cover failed fetches, vacancy closure and reopening, field validation and missing data.
  • Dashboard checks compare displayed figures and withheld pages with the underlying rows.
  • Enrichment evaluations use labelled examples; generated narrative checks reject invented figures and employers.

The result

A recruiter can start with the employer signals in This week, inspect the vacancies behind each one, then export an account list to research before making contact. The public sample demonstrates that workflow with dated records; its figures are not customer results.

Where it stops short

The public sample is a 7 August 2026 snapshot with incomplete classification and limited history. A long-running advert does not prove an employer needs an agency, and a removed advert does not confirm a hire.

Have a similar problem?

Let’s talk about your project