Skip to main content

Input Parameters

Field Filters


id

Functionality
This Field Filter matches records based on the id field.
Cleaning
There is no cleaning or standardization applied to this input parameter, and it filters to only exact matches for the specified id field.
See Search by Exact Job Posting ID for a working example.

first_seen_min

Functionality
This Field Filter matches records where the first_seen date is greater than or equal to the provided value.
Cleaning
There is no cleaning or standardization applied to this input parameter. Dates must be provided in the format YYYY-MM-DD.
See Search by Exact Date for an exact-day example.

first_seen_max

Functionality
This Field Filter matches records where the first_seen date is less than or equal to the provided value.
Cleaning
There is no cleaning or standardization applied to this input parameter. Dates must be provided in the format YYYY-MM-DD.
See Search by Exact Date for an exact-day example.

deactivated_date_min

Functionality
This Field Filter matches records where the deactivated_date is greater than or equal to the provided value.
Cleaning
There is no cleaning or standardization applied to this input parameter. Dates must be provided in the format YYYY-MM-DD.
See Recently Deactivated Jobs for a date-range example.

deactivated_date_max

Functionality
This Field Filter matches records where the deactivated_date is less than or equal to the provided value.
Cleaning
There is no cleaning or standardization applied to this input parameter. Dates must be provided in the format YYYY-MM-DD.
See Recently Deactivated Jobs for a date-range example.

title

Functionality
This Field Filter matches job posting records using a match_phrase query against the cleaned title field in the dataset.
ExampleInput: data engineerTitles that would be considered a match:
  • Data Engineer (case-insensitive)
  • Senior Data Engineer (substring match)
Titles that would not be considered matches:
  • Engineer, Data (incorrect order)
  • Data Science Lead (missing “engineer” term)
Cleaning
This input parameter is cleaned using our internal title cleaning logic (lowercased, whitespace trimmed, some normalization of abbreviations and punctuation). The cleaned input is matched against the title field and the match_phrase query supports case insensitivity and substring matches.

title_class

Functionality
This Field Filter matches records based on the title_class field.
Cleaning
There is no cleaning or standardization applied to this input parameter. It filters to only exact matches for the specified title_class field. You can provide a comma-separated list of values, and the API will match any of them.
title_class must be specified exactly as one of the Canonical Job Title Classes See Search by Title Taxonomy and Search by Multiple Title Taxonomy Values for working examples.

title_role

Functionality
This Field Filter matches records based on the title_role field.
Cleaning
There is no cleaning or standardization applied to this input parameter. It filters to only exact matches for the specified title_role field. You can provide a comma-separated list of values, and the API will match any of them.
title_role must be specified exactly as one of the Canonical Job Title Roles See Search by Title Taxonomy and Search by Multiple Title Taxonomy Values for working examples.

title_sub_role

Functionality
This Field Filter matches records based on the title_sub_role field.
Cleaning
There is no cleaning or standardization applied to this input parameter. It filters to only exact matches for the specified title_sub_role field. You can provide a comma-separated list of values, and the API will match any of them.
title_sub_role must be specified exactly as one of the Canonical Job Title Sub Roles See Search by Title Taxonomy and Search by Multiple Title Taxonomy Values for working examples.

title_levels

Functionality
This Field Filter matches records based on the title_levels field.
Cleaning
There is no cleaning or standardization applied to this input parameter. It filters to only exact matches for the specified title_levels field. You can provide a comma-separated list of values, and the API will match any of them.
title_levels must be specified exactly as one of the Canonical Job Title Levels See Search by Title Taxonomy and Search by Multiple Title Taxonomy Values for working examples.

company_id

Functionality
This Field Filter matches records based on the company_id field.
Cleaning
There is no cleaning or standardization applied to this input parameter, and it filters to only exact matches for the specified company_id field.
See Search by Company ID for a working example.

company_name

Functionality
This Field Filter matches records based on the company_name field.
Cleaning
Internally, this input parameter is run through our Company Cleaner to retrieve the company_id for the provided company name. The company_id is then used to filter results for exact matches. If no company_id is found, then the cleaned company_name is instead used to filter for exact results.
See Basic Search: Company + Title for a working example.

company_website

Functionality
This Field Filter matches records based on the company_website field.
Cleaning
Internally, this input parameter is run through the company cleaner. If a normalized website value is available, it is used for an exact match against company_website.
See Search by Company Website for a working example.

company_profile

Functionality
This Field Filter matches records based on the company_linkedin_url field.
Cleaning
Internally, this input parameter is run through the company cleaner. If a normalized profile value is available, it is used for an exact match against company_linkedin_url.
See Search by Company LinkedIn Profile for a working example.

company_industry

Functionality
This Field Filter matches records based on the company_industry field.
Specifically, this field filters results using a match_phrase query on the company’s self-reported industry, enriched from the PDL Company dataset. Values come from our Canonical Industries. Cleaning
There is no cleaning or standardization applied to this input parameter. Provide the industry value as it appears in the Canonical Industries list.
See Search by Company Industry for a working example.

company_industry_v2

Functionality
This Field Filter matches records based on the company_industry_v2 field.
Specifically, this field filters results using a match_phrase query on the company’s self-reported V2 industry, enriched from the PDL Company dataset. Values come from our Canonical V2 Industries. Cleaning
There is no cleaning or standardization applied to this input parameter. Provide the industry value as it appears in the Canonical V2 Industries list.
See Search by Company Industry for a working example.

location

Functionality
This Field Filter matches records based on the location-based information of a job posting record.
Cleaning
Internally, this input parameter is run through our Location Cleaner to retrieve the standardized location information for the provided input, which is then used to filter results for matches on any location fields (such as country, region, postal code, etc).
ExamplesInput: germany
Matches: job posts with any locations in the country of Germany
Input: stockholm
Matches: job posts with any locations in the region of Stockholm, Sweden
Input: san francisco, california, united states
Matches: job posts with any locations in the city of San Francisco, CA
Input: europe
Matches: job posts with any locations on the continent of Europe
See the Location filters examples for working examples at country, city, region, and continent levels.

description

Functionality
This Field Filter matches records based on the description field.
Specifically, this field filters results using a match_phrase query on the job posting description, meaning the filter is case-insensitive and supports partial matches (on exact substrings).
ExamplesInput: LLMDescriptions that would be considered a match:
  • Senior LLM Engineer (Matches an exact substring)
  • Experience with llm fine-tuning (Case-insensitive match)
  • Generative AI (LLMs) (Matches the “LLM” sequence inside the plural “LLMs”)
Descriptions that would not be considered matches:
  • Large Language Model (Even though the meaning is the same, the extra characters between the “LLM” abbreviation break the phrase match)
  • ML/L L M (The spaces between letters break the phrase match)
  • L.L.M. (The periods create a different character sequence than the input)
Cleaning
There is no cleaning or standardization applied to this input parameter. However, it is matched against the job posting description field which has HTML tags removed, but formatting maintained using html2text.
See Search by Description Text for a working example.

salary_range_min

Functionality
This Field Filter matches records based on the salary_min field.
Specifically, this field filters job posts where the posted salary_min value is greater than or equal to the provided input value. Cleaning
Input values are parsed into an integer value and searched against the salary_min field.

salary_range_max

Functionality
This Field Filter matches records based on the salary_max field.
Specifically, this field filters job posts where the posted salary_max value is less than or equal to the provided input value. Cleaning
Input values are parsed into an integer value and searched against the salary_max field.

salary_currency

Functionality
This Field Filter matches records based on the salary_currency field.
Cleaning
Input values are case-normalized and searched against the salary_currency fields.
Input values must be one of the Canonical Currency Codes.

salary_period

Functionality
This Field Filter matches records based on the salary_period field.
Cleaning
There is no cleaning or standardization applied to this input parameter, and it filters to only exact matches for the specified salary_period field.
Input values must be specified exactly as one of the Canonical Salary Periods

remote_work_policy

Functionality
This Field Filter matches records based on the remote_work_policy field.
Cleaning
There is no cleaning or standardization applied to this input parameter, and it filters to only exact matches for the specified remote_work_policy field.
Input values must be specified exactly as one of the Canonical Remote Work Policies See Filter by Remote Work Policy for a working example.

inferred_skills

Functionality
This Field Filter matches records based on the inferred_skills field.
Cleaning
There is no cleaning or standardization applied to this input parameter. The filter uses a match query on inferred skills.
See Search by Inferred Skills for a working example.

last_verified_min

Functionality
This Field Filter matches records where the last_verified date is greater than or equal to the provided value.
Cleaning
There is no cleaning or standardization applied to this input parameter. Dates must be provided in the format YYYY-MM-DD.
See Search by Last Verified Date for a working example.

last_verified_max

Functionality
This Field Filter matches records where the last_verified date is less than or equal to the provided value.
Cleaning
There is no cleaning or standardization applied to this input parameter. Dates must be provided in the format YYYY-MM-DD.
See Search by Last Verified Date for a working example.

is_active

Functionality
This Field Filter matches records based on whether a job posting is active or deactivated.
Cleaning
When omitted or blank, this field defaults to false and returns both active and inactive posts.
See Active Jobs Only for a working example.

Elasticsearch Query


query

Elasticsearch Query Limitations

We accept the following Elasticsearch query types: We’ve disabled most specialized options, such as boosting and custom scoring, and we do not allow aggregations. Any array in a query (such as a terms array) will have a hard limit of 100 elements. If a request goes over this limit, it will fail. See the Elasticsearch Query Examples page section for working examples using terms, exists, bool, must_not, and range queries.

Optional Parameters


size


scroll_token

A scroll_token is returned in every Job Posting Search API response and serves as a placeholder or bookmark for the last record received. For queries with more results than can fit in a single API response (see the size field), use the scroll_token to get the next batch of results. For example, if you send a query to the Job Posting Search API that has 10,000 matches, you will need multiple API calls to retrieve all the records. The scroll_token represents how far along you are in that list of records. Generally, the way to use scroll_token is:
  1. Send a query to the Job Posting Search API.
  2. Get a response back containing one batch of records as well as a scroll_token response value (if you have already retrieved all the available records in this batch, then the scroll_token value will be null).
  3. Use the same query from Step 1 and the scroll_token you just received to make another request to the Job Posting Search API.
  4. Get another response back with the next batch of records and a new scroll_token value.
  5. Repeat steps 3 and 4 until you have received the desired number of records or until you receive a 404 status code because pagination is complete and the scroll_token key is missing from the response.
For a detailed working example of this process, see Paginate with scroll_token.

pretty


api_key

Your API Key must be included in either the request header or the api_key parameter. For more information about request authentication, see the Authentication page.