Use Cases - Job Posting Search API
Copy-pasteable workflows for common Job Posting Search API use cases
Use Cases
This page contains real-world workflows using the Job Posting Search API.
Each use case is designed to be:
- ✅ Easy to copy and run
- 🔧 Simple to customize
- 🎯 Aligned with common customer goals
How to Use These Examples
- Copy the example
- Replace inputs (e.g.
location,company_website) - Run the request
Need help getting started?
See the full Quickstart guide to make your first Job Posting Search API request.
Looking for more patterns? Browse the Examples page for a library of additional query examples.
Credit Usage Reminder
Each job posting returned costs 1 credit.
If your query may return many results, start with a small
size(e.g. 10) and paginate usingscroll_token.
🌍 Get All Job Postings in a Country
Goal: Retrieve job postings for a specific country.
When to use this:
- Analyze hiring trends by region
- Build geo-based prospecting lists
- Monitor hiring activity in new markets
Example
import requests
API_KEY = "YOUR_API_KEY"
API_ENDPOINT = "https://api.peopledatalabs.com/v5/job_posting/search"
payload = {
"location": "singapore", # Change this to your target country
"size": 10,
"pretty": True
}
response = requests.post(API_ENDPOINT, json={**payload, "api_key": API_KEY})
response.raise_for_status()
print(response.text)
Customize This
- Replace
"singapore"with any country in our canonical countries list such as:"australia""india""united kingdom"
- Filter to only active jobs using the
is_activefilter or only jobs posted in the past year using thefirst_seen_minfilter - To retrieve all job postings for the country, use the
scroll_tokenpattern as shown in the Bulk Retrieval Examples.
🏢 Get All Job Postings from a Company
A. Single Company
Goal: Retrieve all job postings for a specific company.
When to use this:
- Track hiring activity for a target account
- Monitor competitor hiring
import requests
API_KEY = "YOUR_API_KEY"
API_ENDPOINT = "https://api.peopledatalabs.com/v5/job_posting/search"
payload = {
"company_website": "stripe", # Change this
"size": 10,
"pretty": True
}
response = requests.post(API_ENDPOINT, json={**payload, "api_key": API_KEY})
response.raise_for_status()
print(response.text)B. Multiple Companies (Target Account List)
Goal: Retrieve job postings across a list of companies.
When to use this:
- Analyze hiring across target accounts
- Build outbound prospecting signals
- Compare competitors
import requests
API_KEY = "YOUR_API_KEY"
API_ENDPOINT = "https://api.peopledatalabs.com/v5/job_posting/search"
payload = {
"query": {
"terms": {
"company_website": [
"stripe.com",
"openai.com",
"airbnb.com"
]
}
},
"size": 10,
"pretty": True
}
response = requests.post(API_ENDPOINT, json={**payload, "api_key": API_KEY})
response.raise_for_status()
print(response.text)Customize This
- Add or remove companies in the list
- Use
company_idinstead ofcompany_websitefor more precision or usecompany_namewhen a website isn't available to you. - To retrieve all job postings for your queries, use the
scroll_tokenpattern as shown in the Bulk Retrieval Examples.
🔗 Find Companies → Then Get Their Job Postings
Goal:
- Find companies matching a criteria
- Retrieve all job postings for those companies
Example scenario:
Find companies headquartered in San Francisco, CA with >10k employees, then get all their job postings.
Step 1: Find Companies
Use the Company Search API to retrieve companies in your target region.
import requests
API_KEY = "YOUR_API_KEY"
API_ENDPOINT = "https://api.peopledatalabs.com/v5/company/search"
payload = {
"size": 25,
"query": {
"bool": {
"must": [
# Companies located in San Francisco, California
{"term": {"location.metro": "san francisco, california"}},
# Headcount of 10000 or more employees
{"range": {"employee_count": {"gte": 10000}}}
]
}
}
}
# Get Search Results
response = requests.get(API_ENDPOINT, headers={"X-Api-Key": API_KEY}, json=payload)
response.raise_for_status()
company_response = response.json()
# Extract list of Company IDs
company_ids = [company.get("id") for company in company_response.get("data", [])]
# Print Match Results
print(f"Company IDs: {company_ids}")
print(f"Total Companies Found: {company_response.get('total', 'N/A')}")
print(f"Number of Companies Pulled: {len(company_ids)}")(Example Results)
company_ids = [
"MUmQQfYqtsuKmlbipURRywewO7SK",
"2kBZISO0NiVIcCStZwrF5g2YM7xE",
"azWjYmMaDbflV5f9Bic2QQ0RS38i",
"OGpJ3caiC2UPrpzNTA6EHwFL1Yjc",
...
]Step 2: Get Job Postings for Those Companies
import requests
API_KEY = "YOUR_API_KEY"
API_ENDPOINT = "https://api.peopledatalabs.com/v5/job_posting/search"
company_ids = [
"MUmQQfYqtsuKmlbipURRywewO7SK",
"2kBZISO0NiVIcCStZwrF5g2YM7xE",
"azWjYmMaDbflV5f9Bic2QQ0RS38i",
"OGpJ3caiC2UPrpzNTA6EHwFL1Yjc",
# Other company IDs can be added here
]
payload = {
"query": {
"terms": {
"company_id": company_ids
}
},
"size": 50,
"pretty": True
}
response = requests.post(API_ENDPOINT, json={**payload, "api_key": API_KEY})
response.raise_for_status()
print(response.text)Why This Matters
This pattern is powerful for:
- Territory-based prospecting
- Market mapping
- Lead generation workflows
📈 Use Job Postings as an Intent Signal
Goal: Identify companies showing hiring intent for a specific function so you can prioritize outreach.
Example: Find companies with newly posted SDR roles since April 9, 2026.
Example
import requests
API_KEY = "YOUR_API_KEY"
API_ENDPOINT = "https://api.peopledatalabs.com/v5/job_posting/search"
payload = {
"title": "sdr",
"first_seen_min": "2026-04-09", # Change this to your lookback start date
"is_active": True,
"size": 25,
"pretty": True
}
response = requests.post(API_ENDPOINT, json={**payload, "api_key": API_KEY})
response.raise_for_status()
print(response.text)Why This Works
This pattern is useful when job postings act as a buying or growth signal.
If a company is actively hiring SDRs, AEs, recruiters, or engineers, that can indicate:
- Team expansion
- New budget or headcount
- Operational pain points they may want to solve
- A reason to prioritize outreach with a relevant message
Customize This
You can adapt this pattern for:
- Other functions like
title="account executive","recruiter", or"gtm engineer" - Different recency windows using
first_seen_min - Regional targeting by adding
location - Account-based monitoring by layering on
company_idorcompany_website
🚀 What to Try Next
- Combine multiple filters (
location+company_website+title) - see the Field Filter examples - Add date filters to track recent job postings - see Search by Exact Date, Search by Last Verified Date, and Active Jobs Only. If you need custom Elasticsearch date logic, see Date Range Query
- Use pagination (
scroll_token) for large datasets - see the Bulk Retrieval examples
For a comprehensive list of query patterns, see the Examples page.
Updated 5 minutes ago
