Skip to content
API v1 preview — endpoints and fields may change before general availability.

Taxonomies

Which values can seniority, employment type and job family take?

View .md

Fields with a fixed set of values use the enums below. The value lists come from the OpenAPI spec: this page renders them from shared data that a build check keeps in sync with the spec. Values are lowercase snake_case. Pass them to filters exactly as written.

Every enum field on a job can also be null, which means unknown. See Null semantics.

seniority is inferred, mostly from the title. Filter with seniority_or.

seniorityMeaning
internInternship or working-student role.
juniorEntry level or early career.
midExperienced individual contributor.
seniorSenior individual contributor.
leadLeads a team or a function, or a staff-level individual contributor. "Head of" titles land here.
directorDirector of a department or function.
vpVice president.
c_levelC-suite executive, for example CEO, CTO or CFO.

employment_type is normalized from the posting. Filter with employment_type_or.

employment_typeMeaning
full_timePermanent full-time role.
part_timePermanent part-time role.
contractFixed-term contract or freelance engagement.
internshipInternship.
temporaryTemporary or seasonal role.

Techmap calls this field contractType (per its reference). See the Field dictionary.

job_family is inferred from the title and description. Filter with job_family_or.

In the v1 preview, job_family is a string, not a fixed enum. Values are lowercase snake_case. The values in the sample data are:

ValueExample titles (illustrative)
engineeringSenior Robotics Engineer, Data Engineer, Staff Platform Engineer
salesAccount Executive, VP of Sales
operationsHead of Revenue Operations, Warehouse Operations Intern
marketingProduct Marketing Manager
dataClinical Data Analyst
customer_successCustomer Success Manager

Providers use their own taxonomies. JobsPipe, for example, maps jobs to ISCO-08, ISIC and ESCO (per JobsPipe docs). BetterJobs returns its own job_family so one filter works across every source.

status is open or closed. When a job closes, closed_reason says why. While the job is open, closed_reason is null.

statusMeaning
openThe job is live. closed_reason is null.
closedThe job is no longer live. Hidden from search unless you set include_closed: true.
closed_reasonMeaning
filledA source reports the position was filled.
expiredThe posting reached its end date without a fill signal.
removedThe posting was taken down at its origin before it expired.
unknownThe job stopped appearing and no source gave a reason.

A closed job fires a job.closed event for watches that cover it. See Events and Freshness and lifecycle.

waterfall.strategy decides which providers a search queries, and in what order. The default is cheapest_first.

strategyWhat it doesUse when
cheapest_firstStarts with the BetterJobs index and adds providers only until the page is full.Default. Good for most searches and for keeping cost low.
freshest_firstTries the sources with the fastest refresh first.You care about jobs posted in the last hours more than total coverage.
max_coverageQueries every provider enabled on your plan.Market sizing, backfills, or any time a missed job costs more than a credit.
consensusReturns only jobs seen by at least min_sources sources (default 2).You need high confidence the job is real, for example before outbound.
own_onlyUses the BetterJobs index only. No partner providers.Free and Starter plans, or when you need the simplest licensing.

Pick one with Choose a strategy. How the waterfall runs is in Waterfall.

FieldValuesWhere
salary.periodyear, month, hourJob
salary.origindeclared, inferredJob. declared = stated in the posting, inferred = estimated by a source.
hiring_pulse.directionup, flat, downCompany profile
sources[].providerbetterjobs, reqbeat, signalsapi, theirstack, jobspipe, coresignal, techmapJob, company profile. betterjobs is the BetterJobs index.
status (search)queued, running, completed, partial, failed, on_holdAsync search. See Async searches.
status (provider)operational, degraded, downGET /v1/providers. See Provider status.