List, search and fetch job postings.
List jobs
Returns all jobs, page by page, ordered by id ascending. Pass the next_cursor of a
page as cursor to get the next page.
Billing: each job in items counts once against your monthly allowance. If fewer
jobs are left in your allowance than limit, the page is cut to what is left
(has_more is still true if more jobs follow).
query Parameters
limitNumber of jobs per page.
cursorThe next_cursor of the previous page. Omit it to start at the beginning. Treat it as
an opaque string and pass it back unchanged.
List jobs › Responses
A page of jobs.
Search jobs
Returns jobs whose title or organization contains q, page by page, ordered by
id ascending (not by relevance).
Matching is a case-insensitive substring match. % and _ in q are matched
literally. Leading and trailing spaces are trimmed before matching. There are no other
filters.
Billing: each job in items counts once against your monthly allowance, exactly
as for GET /v1/jobs.
query Parameters
qSearch term. At least 3 characters after trimming spaces; at most 200 characters as sent.
limitNumber of jobs per page.
cursorThe next_cursor of the previous page. Omit it to start at the beginning. Treat it as
an opaque string and pass it back unchanged.
Search jobs › Responses
A page of jobs.
Get one job
Returns one job object (no items wrapper).
Billing: a found job counts 1 against your monthly allowance; a 404 counts
nothing. The request still needs at least 1 job left in your allowance, otherwise it
answers 429 (monthly allowance used up).
path Parameters
job_idThe integer id of a job, as returned by list or search.
Get one job › Responses
The job.
idJob id. Stable; use it for GET /v1/jobs/{job_id} and for de-duplication.
titleJob title as posted.
organizationName of the hiring company.
urlLink to the original posting on the company's applicant tracking system.
date_postedWhen the posting says it was published (ISO 8601 with UTC offset).
date_createdWhen we first recorded the job (ISO 8601 with UTC offset). Can be earlier than date_posted if the employer re-dated the posting.
date_valid_throughClosing date, if the posting gives one (ISO 8601 with UTC offset).
source_typeAlways ats — every job comes from an applicant tracking system.
sourceShort name of the applicant tracking system the job was collected from.
source_domainHost the posting is served from, without www.. Only set when source is known.
domain_derivedThe hiring company's own web domain, when known.
locations_derivedDisplay location as City, State, Country (parts that are not known are left out).
cities_derivedCity.
regions_derivedState or province.
countries_derivedCountry name (an ISO 3166-1 alpha-2 code when the name is not known).
timezones_derivedIANA time zone of the city.
lats_derivedLatitude of the city.
lngs_derivedLongitude of the city.
employment_typeEmployment type as posted.
ai_employment_typeSame value as employment_type (kept for compatibility with the fantastic.jobs format).
ai_work_arrangementWork arrangement as posted. null when the posting does not state it clearly.
ai_salary_currencySalary currency as posted, e.g. USD.
ai_salary_min_valueLower salary bound as posted. Never converted or annualised.
ai_salary_max_valueUpper salary bound as posted. Never converted or annualised.
ai_salary_unit_textPeriod the salary values refer to. null when unknown or for other periods (for example daily).