1,826 UK roles, the same ones the board shows, last checked 15 November 2026. Each comes with the link to its original advert, because applications go to the employer and never through us.
Asking an AI assistant to search it
If your assistant can fetch web pages, it can read this directly. Change the family and the region to suit, and paste:
Fetch https://henry.careers/api/v1/families/engineering.json Find the roles in the "london" region. For each, give me the title, the employer, the pay as advertised, and the applyUrl. Rules for reading it: - pay.basis "disclosed" means the employer stated the figure. "role-shape" means they did not, so do not quote a salary for it. - pay.tag, family and region are henry.careers' classifications, not statements by the employer. - The applyUrl is the original advert and the authority on the role. Check anything important there before relying on it.
The rules in that prompt are there because an assistant will otherwise treat everything in the file as fact, and some of it is our judgement. They are the same distinctions this site draws on every page.
Use the family file, not the whole board
The full file is 1.4 MB, and many assistants cut off a response that size without saying so — then answer confidently from whatever part they read. Every family file below except clinical and medical is 146 KB or less; clinical and medical, at 742 KB, is the one still large enough to be cut off. Asking for a region does not help, because the assistant still has to read the whole file to filter it. The check that works is comparing the number of roles it reports with the count in the table: far fewer means it was cut off.
Finding the role is the part an assistant does well. Applying is where employers have views: some make you agree not to use AI in interviews, and one lists AI-generated CVs that read as generic among the reasons candidates did not get past its first screen. What employers say about AI in applications, in their own words.
Endpoints
| Path | What |
|---|---|
/api/v1/meta.json |
When the board was last checked, counts, and the URL of every other file. Small. Fetch this first. |
/api/v1/jobs.json |
Every role — 1,826 of them, 1.4 MB. |
/api/v1/families/clinical.json |
Clinical and medical — 868 roles, 742 KB |
/api/v1/families/engineering.json |
Engineering — 197 roles, 146 KB |
/api/v1/families/data-and-ai.json |
Data and AI — 163 roles, 118 KB |
/api/v1/families/product-and-design.json |
Product and design — 69 roles, 50 KB |
/api/v1/families/leadership.json |
Leadership — 133 roles, 100 KB |
/api/v1/families/finance.json |
Finance — 47 roles, 35 KB |
/api/v1/families/legal.json |
Legal and compliance — 15 roles, 11 KB |
/api/v1/families/commercial.json |
Sales and marketing — 90 roles, 65 KB |
244 roles
have a title that names no family we use, so they are in
jobs.json and in no family file.
How fresh it is
The files are rebuilt with the board, which happens at most a few times a
day. checkedAt in meta.json says when the listings
were last fetched from their sources, so a program can poll that small file
and only fetch the rest when it changes. Polling more often than hourly
gets nothing new.
It is a snapshot. A role can close between our check and your request, and the original advert is always the authority on whether it is still open.
Fields
Each role in jobs has the fields below. Within v1
fields are added and never renamed or removed; a change that cannot keep
to that will be published as v2 alongside.
- id
- Stable for the life of the advert: the source and its own id, e.g. greenhouse:8318103.
- url
- This site’s page for the role.
- applyUrl
- The original advert. Applications go there — never to us.
- title, employer, location
- As the advert states them.
- track
- permanent or contract. Day rates are never turned into salaries.
- family, region
- Our classification from the title and location, or null where neither names one we use. A heuristic, not the employer’s statement.
- source
- nhs (NHS Jobs, a public-sector board), or greenhouse, ashby or lever (employers’ own boards).
- postedOn, closesOn
- Calendar dates as YYYY-MM-DD, whatever format the source used. closesOn is null where the source gives none, which is most private-sector adverts.
- jobType, workingPattern
- As stated, or null. Only NHS Jobs supplies a working pattern.
- pay.tag
- Our label for the pay, true on its own: “£100k+”, “£500+/day”, “Range from £90k” where a range crosses the bar, or “Pay not stated”.
- pay.basis
- How we know. disclosed means the employer stated a figure; role-shape means they did not and we listed the role on its seniority.
- pay.min, pay.max, pay.period
- The advertised figure in its own unit — year, day or hour. Null when none was stated.
- pay.currency
- GBP, or null when there is no figure.
- pay.evidence
- The text the figure was read from, so it can be checked against the advert.
- pay.annualised, pay.note
- Where an hourly or daily rate on a permanent role was annualised to test it against the bar: the annual equivalent, and how. Shown beside the advertised figure, never instead.
- pension
- The employer’s pension contribution where the advert states one, with the text it came from. Usually null.
- summary
- Our own one-line summary. Not the employer’s text.
What the data cannot tell you
- · What a role pays when the advert does not say. We do not estimate it. A “Pay not stated” role is listed on its seniority, and some of them pay under £100,000.
- · Anything about the role beyond the advert’s headline facts. We link to adverts rather than reproducing them, so there is no job description here — the applyUrl has it.
- · Hours or flexibility for most private-sector roles. Only NHS Jobs supplies a working pattern; the private half of the board is silent on it.
- · Anything about you. There is no account, no history and no personal data in the API, in either direction.
Terms
Free to use for your own job search and for tools searching on your behalf. If you show these listings to other people, credit henry.careers, link each role to its original advert, and do not present our labels as the employer’s. To republish them at scale, ask first. The advert details belong to whoever published the advert — we grant access, not rights we do not hold. Full wording in our terms.