Skip to content
Apprentice Atlas

Open data

Every programme, application window and opening we have recorded, in one file you can reuse.

The file is rebuilt at most once a day from the same database as the site, and says when in generated_at. It is plain JSON (a couple of megabytes), described by a JSON Schema (draft 2020-12) and versioned by schema_version.

What is in it

  • employers

    Every employer we list, with the curated fact file where we have one.

    slug, name, aliases, sector, website_url, careers_url, description, url, ogl, fact_file, updated_at

  • programmes

    Each recurring scheme at an employer.

    slug, employer_slug, name, kind, level_min, level_max, route, locations, audience, apply_url, requires_cv, cover_letter, written_answers, process, is_active, url, updated_at

  • windows

    One application window per programme per intake year, with the evidence for its dates.

    programme_slug, cycle_year, opens_at, closes_at, date_status, is_rolling, source, evidence_method, evidence, source_url, apply_url, observed_first_seen_at, observed_last_seen_at, ogl, updated_at

  • opening_history

    Openings and closings our crawler saw happen: a matching vacancy went live, or the last one closed.

    programme_slug, cycle_year, event (opened or closed), date, observed_at

Records link by slug: a window’s programme_slug is a programme’s slug, a programme’s employer_slug an employer’s.

How sure each date is

Every window says how certain its dates are and where they came from, the same way the calendar does:

  • date_status: confirmed (an exact day the employer published), estimated (month-level or hedged wording, stored as the first or last day of the month) or unknown (no dates).
  • source: manual (read from the employer’s page by a person), observed (our crawler saw a matching vacancy go live) or predicted.
  • evidence_method, evidence and source_url: how the page was read (ats_api, fetched or search_index, which is provisional), a one-line quote, and the page itself.

Forecasts (“usually opens around”) are not in the file: they are worked out from the windows, so you can repeat them.

Licence and attribution

  • The structure of the export and our compilation are under the MIT licence, like the code. Credit “Apprentice Atlas” with a link back.
  • Records marked "ogl": true come partly from the Department for Education’s Find an apprenticeship service: Contains public sector information licensed under the Open Government Licence v3.0 (OGL v3.0). Keep that line when you reuse them.
  • Employer facts cite the employer’s own page they came from: each window’s source_url, and in a fact file each programme’s source_url and the sources list with the date each page was read. Check the employer’s page before relying on a date.
  • Employer names belong to their owners; logos are not included. We are not affiliated with any employer listed, the DfE or GOV.UK.

What is never in it

No personal data: no accounts, saved roles, alerts or tracker cards, and nothing about the people behind a vacancy (we drop recruiter names, emails and phone numbers when we read a feed). Individual vacancies are left out too; they change by the hour and belong to the sites that advertise them, so link to them from the finder or its feeds instead. An employer that has opted out is removed from the file as from the site (see takedown).

Using it

For example, every confirmed opening for the next intake, with its evidence:

curl -sL https://apprenticeships.untraceable.dev/data/export.json \
  | jq '.windows[] | select(.date_status == "confirmed" and .opens_at != null)
        | {programme_slug, opens_at, closes_at, source_url}'

Please fetch it at most once a day. Found a wrong date? The open source page says how to correct it, with a primary source.