Skip to main content
This page is a library of copy-pasteable examples for the Job Posting Search API. Each example is designed to be easy to adapt for your own workflow. Replace YOUR_API_KEY with your API key, then modify the request payload as needed. If you want a more guided first walkthrough, start with the Quickstart.
Heads Up! Credit UsageJob Posting Search API calls cost 1 credit for each job posting record returned.If you are making a search that could have a large number of results, make sure to use the size parameter to control the maximum number of records returned per request and cap your credit usage.
Found a bug? Is there an example you’d like to see that’s not listed here?Head over to the public roadmap and submit a bug ticket or a feature request and receive automatic notifications as your bug is resolved or your request is implemented.

Field Filter Examples

Use Field Filters when the request can be expressed using supported fields. Multiple Field Filters are combined with AND logic.
Choosing Between Field Filters and queryUse Field Filters for standard filtering by company, title, location, salary, dates, and activity status.Use query when you need logic that Field Filters do not support well, such as OR, must_not, exists, or searching across lists of values.

Exact ID lookup


Search by Exact Job Posting ID

Use this when you already know the specific PDL job posting ID you want to retrieve.
Give me the job posting with this exact PDL job posting ID.
Python

Company filters


Basic Search: Company + Title

Use this when you want a simple company + job title search using built-in field filters.
Show me open job postings at OpenAI with “engineer” in the title.
Python
Company Filter Tipscompany_website is the most commonly used identifier in practice for specifying a company.company_name is cleaner-backed and convenient when you only know the company by name.company_id is the most precise company filter when you already have the PDL company ID.For additional details see our FAQs: What is the most precise way to search for a company?

Search by Company ID

Use this when you know the PDL company_id and want the most precise company filter. Typically a PDL company_id will come from using our Company Search API or Company Enrichment API.
Show me open engineering job postings for this exact PDL company.
Python

Search by Company Name

Use this when you don’t have a unique identifier for a company and want cleaner-backed fuzzy matching on company_name.
Show me open engineering job postings for Open AI.
Python

Search by Company LinkedIn Profile

Use this when you want to search job postings for a company using its LinkedIn company URL.
Show me open job postings for OpenAI.
Python

Search by Company Industry

Use this when you want to search job postings based on the company’s industry classification.
Show me active engineering job postings at companies in software development.
Python

Search by Title Taxonomy

Use PDL’s normalized title fields when you want structured title filters instead of free-text title matching.
Show me open senior data engineering jobs in the research and development title class.
Python
This example combines thetitle_sub_role, and title_levels.
Show me open vp-level finance jobs class.
Python
This example combines thetitle_role, and title_levels.

Search by Multiple Title Taxonomy Values

Use this when you want to provide multiple comma-separated values for canonical taxonomy fields like title_class, title_role, title_sub_role, and title_levels.
Show me open jobs that are senior OR manager roles in data engineering OR data science
Python

Location filters

The location input is flexible and can match countries, continents, regions, cities, and more.
Job Posts with Multiple LocationsJust a reminder that PDL job posting records can contain multiple locations. As a result, using the location filter will return job posts where at least one of the posted locations matches the provided input.

Country-level location

Show me open sales jobs in Germany.
Python

City-level location

Show me open engineering jobs in Seattle.
Python

Region-level location

Show me open engineering jobs in Ontario, Canada.
Python

Continent-level location

Show me open marketing jobs in Europe.
Python

Date and activity filters

Date Filter Cheat Sheet

Search by Exact Date

Use parameterized date fields when you want to match a date range.
Show me all job postings posted between January 1, 2026 and January 15, 2026.
Python

Search by Last Verified Date

Use this when you want job postings that were verified recently by PDL.
Show me open job postings that PDL verified within the last two days.
Python

Recently Deactivated Jobs

Use this when you want historical job postings that were deactivated within a specific date range.
Show me jobs that were deactivated during March 2026.
Python

Active Jobs Only

Use the built-in is_active field filter when you want only active job postings. If is_active is not included, it is defaulted to False
Show me only true job postings for engineers.
Python

Compensation filters


Filter by Salary Range + Currency + Period

Use this when you want compensation filters with explicit salary units.
Show me engineering jobs with annual salaries between 150,000and150,000 and 300,000 USD.
Python

Filter by Remote Work Policy

Use this when you want jobs with a specific remote work policy value.
Show me active remote engineering jobs.
Python

Use this when you want to combine multiple field filters with built-in AND behavior.
Show me active remote jobs in the United States with annual salaries of at least $150,000 USD.
Python

Text and content filters

Text Matching Behavior
  • title uses cleaned match_phrase behavior.
  • description uses match_phrase behavior on the cleaned text description.
  • inferred_skills uses match, which is broader than match_phrase.

Search by Description Text

Use this when you want to find jobs whose descriptions contain a specific phrase.
Show me active job postings whose descriptions mention “unlimited PTO”.
Python

Search by Inferred Skills

Use this when you want to search the skills extracted from the job posting description.
Show me active job postings that mention or imply requiring JavaScript skills.
Python

Bulk Retrieval Examples


Paginate with scroll_token

Use this when a query matches more records than you want to retrieve in a single response.
Give me the 10 results for the same search over two pages.
Python

Save Results to a JSON File

Run this search and save the full API response to a local JSON file.
Python

Elasticsearch Query Examples

Use the query field when you need search logic that Field Filters do not support, such as OR conditions, exists queries, or multi-company searches.
Choosing Between Field Filters and query
  • Start with Field Filters when you want simple filtering by documented input parameters.
  • Use query when you need OR, must_not, exists, or other custom Elasticsearch logic.
  • If you provide both Field Filters and query, the query takes precedence and the Field Filters are ignored.

OR logic


OR Logic: Data Engineer or Machine Learning Engineer

Show me jobs for either data engineers or machine learning engineers.
Python

must + should: One of Several Titles Plus a Seniority Constraint

Use this when you want to require one condition and allow multiple title alternatives.
Show me senior jobs for either data engineers or analytics engineers.
Python

Range logic


Date Range Query

Use this when you want a custom Elasticsearch date range query, or when you need date logic beyond the built-in field filters.
Show me jobs first seen during January 2026.
Dates in ElasticsearchIn Elasticsearch date queries, you can use either YYYY-MM-DD strings or integer timestamps in milliseconds. The example below uses YYYY-MM-DD strings for readability.
Python
This example finds job postings first seen on or after 2026-01-01 and before 2026-02-01.

Existence and exclusion logic


Only Jobs with Salary Data

Use this when you want job postings where salary information is present.
Show me only job postings that include salary data.
Python

Exclude Internship Roles

Use this when you want to remove a class of jobs from the results with must_not.
Show me engineering jobs, but leave out internship roles.
Python

Combined advanced queries


Search Across Multiple Companies

Use a terms query when you want to search across a list of company IDs.
Show me job postings across this list of companies.
Query Array LimitAny array in an Elasticsearch query (such as a terms array) has a hard limit of 100 elements. If your request goes over this limit, it will fail.See query limitations for the full details.
Python

Combined Query: Company List + Date Range + Title Match

Use this when you want to combine multiple company IDs, title matching, and a first_seen cutoff date in one Elasticsearch query.
Show me engineer jobs at these companies that were first seen on or after January 1, 2026.
Python

Choosing Between Field Filters and query

Quick Decision Guide
  • Start with Field Filters when you want simple filtering by documented input parameters.
  • Use query when you need OR, must_not, exists, or other custom Elasticsearch logic.
  • If you provide both Field Filters and query, the query takes precedence and the Field Filters are ignored.