Global Jobs Search API - 2.5M+ Direct ATS Jobs avatar

Global Jobs Search API - 2.5M+ Direct ATS Jobs

Pricing

from $0.80 / 1,000 job results

Go to Apify Store
Global Jobs Search API - 2.5M+ Direct ATS Jobs

Global Jobs Search API - 2.5M+ Direct ATS Jobs

Search 2.5M+ live jobs normalized from 38 direct ATS sources. Filter by role, company, location, salary, remote status, employment type, skills, date, and source; receive canonical apply URLs.

Pricing

from $0.80 / 1,000 job results

Rating

0.0

(0)

Developer

Thirdwatch

Thirdwatch

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Global Jobs Search API — 2.5M+ Direct ATS Jobs

Search more than 2.5 million live jobs from 38 direct ATS sources and export normalized titles, companies, locations, salaries, skills, descriptions, work arrangements, and canonical apply URLs.

What you get from the Global Jobs Search API

Search a continuously maintained global jobs index instead of configuring individual company career pages. Combine keywords with company, title, country, city, source, posting date, salary, employment type, and remote-work filters, then export the matching jobs as JSON, CSV, Excel, XML, RSS, or HTML.

Results use one normalized schema across all 38 supported ATS sources. Each row preserves the direct application URL and includes source information, location normalization, role taxonomy, enrichment provenance, duplicate grouping, and full description text when requested.

Quick start

  1. Enter a role, skill, company, or other search phrase in query.
  2. Narrow the search with location, company, salary, date, employment type, or work-arrangement filters.
  3. Keep descriptions disabled for compact discovery runs, or enable them for downstream analysis.
  4. Set the result limit and click Start.
  5. Export the dataset or connect it to a scheduled recruiting, sales, or market-intelligence workflow.

Global jobs output fields

FieldDescription
job_keyStable normalized job identifier
external_idIdentifier supplied by the originating hiring system, when available
titlePublic job title
title_cleanNormalized job title
organizationHiring company or organization
company_keyNormalized company identifier, when available
urlCanonical direct application URL
statusCurrent indexed job status
closed_atClosure timestamp, when applicable
close_reasonRecorded reason for closure, when available
first_seenFirst time the job was observed
last_seenMost recent observation time
date_postedPublic posting date, when available
locationsOriginal public location labels
locations_derivedStructured city, country, country code, latitude, and longitude records
countries_derivedNormalized country names or codes
remote_derivedWhether the role is identified as remote, when available
work_arrangement_derivedNormalized remote, hybrid, on_site, or unknown arrangement
employment_typeNormalized employment types such as full-time, contract, or internship
language_derivedDetected job language, when available
experience_level_derivedNormalized experience level, when available
skills_derivedSkills extracted from the job posting
benefits_derivedBenefits extracted from the posting
departmentHiring department or team, when available
has_salaryWhether structured salary information is present
salaryOriginal public salary text, when available
salary_min_derivedNormalized minimum salary
salary_max_derivedNormalized maximum salary
salary_currency_derivedNormalized salary currency
salary_period_derivedSalary period such as year, month, or hour
salary_derivedCombined structured salary object, when available
taxonomyNormalized role family, subfamily, and skill clusters
description_snippetCompact job-description excerpt
description_textFull job description when includeDescriptions is enabled
duplicate_group_idIdentifier linking duplicate representations of the same opening
enrichment_tierData-enrichment level applied to the record
enrichment_provenanceSource, confidence, and timestamp for derived fields
sourceOriginating ATS family
source_slugSource board or tenant identifier
source_endpointPublic source endpoint associated with the job
directory_verified_atMost recent source-directory verification time

Optional fields remain absent or empty when the employer or source does not publish them.

Example global job output

{
"job_key": "greenhouse:acme:4582197",
"title": "Senior Data Engineer",
"title_clean": "Senior Data Engineer",
"organization": "Acme Analytics",
"url": "https://boards.greenhouse.io/acme/jobs/4582197",
"status": "open",
"date_posted": "2026-07-14T09:30:00Z",
"locations": ["London, United Kingdom"],
"locations_derived": [
{
"city": "London",
"country": "United Kingdom",
"country_code": "GB",
"lat": 51.5072,
"lng": -0.1276
}
],
"countries_derived": ["GB"],
"remote_derived": true,
"work_arrangement_derived": "hybrid",
"employment_type": ["FULL_TIME"],
"skills_derived": ["Python", "SQL", "Airflow"],
"has_salary": true,
"salary_min_derived": 85000,
"salary_max_derived": 105000,
"salary_currency_derived": "GBP",
"salary_period_derived": "year",
"taxonomy": {
"family": "engineering_technology",
"subfamily": "data_engineering",
"skill_clusters": ["data_platforms", "analytics_engineering"]
},
"description_snippet": "Build and operate reliable data products used across the company...",
"source": "greenhouse"
}

Global Jobs Search API input parameters

ParameterRequiredDefaultDescription
queryNodata engineerRole, skill, company, or free-text search. At least one search or filter is recommended.
titleNoNormalized job-title filter.
countryNoCountry name or two-letter code such as US, GB, Germany, or India.
cityNoCity filter.
companyNoEmployer-name filter.
atsSourceNoATS source such as workday, greenhouse, lever, ashby, or smartrecruiters.
postedSinceNoEarliest posting time in ISO format, such as 2026-07-01T00:00:00Z.
hasSalaryNofalseSet to true to return only jobs with structured salary data.
minimumSalaryNoMinimum structured salary value. Combine with location and currency-aware analysis.
employmentTypeNoEmployment type such as full_time, part_time, contract, or internship.
workArrangementNoWork arrangement such as remote, hybrid, or on_site.
excludeDuplicatesNotrueCollapse the same opening found through multiple source URLs.
includeDescriptionsNofalseInclude full description text instead of compact snippets only.
maxResultsNo25Maximum jobs returned across the complete search, from 1 to 100,000.

Example input

{
"query": "data engineer",
"country": "GB",
"city": "London",
"postedSince": "2026-07-01T00:00:00Z",
"hasSalary": true,
"workArrangement": "hybrid",
"excludeDuplicates": true,
"includeDescriptions": true,
"maxResults": 500
}

Global job data use cases

  • Recruiters and staffing teams: Discover fresh openings by role, location, company, and employment type.
  • Job boards and aggregators: Populate normalized listings with canonical application URLs from many ATS sources.
  • Sales and market-intelligence teams: Identify companies hiring for relevant teams, skills, or locations.
  • Workforce researchers: Analyze demand for roles, skills, compensation, and work arrangements across markets.
  • Developers and AI teams: Build job alerts, matching systems, search products, analytics, and retrieval pipelines.

Global Jobs Search API limitations

  • The index reflects publicly available employer postings and can lag a source between refreshes.
  • Salary, skills, experience, benefits, and exact posting dates are unavailable when an employer does not publish enough information.
  • minimumSalary compares normalized values; account for currency and salary period when combining multiple markets.
  • Full descriptions increase dataset size and are only returned when includeDescriptions is enabled.
  • Very broad searches can produce many valid matches. Use title, company, location, source, date, or work-arrangement filters for more targeted datasets.
  • Canonical application URLs can expire after an employer closes or replaces a posting.

Compared to other ATS jobs scrapers

  • Compared with bovi/greenhouse-lever-ashby-job-scraper, this Actor searches an existing index spanning 38 ATS sources instead of requiring users to supply company slugs across six supported systems.
  • Compared with fantastic-jobs/jobs-scraper, this Actor is built for cross-company keyword and attribute search rather than collecting jobs from user-provided career-page URLs.
  • Choose this Actor when discovery and normalized search across a large jobs index matter. Choose a career-page crawler when you need to target a specific company board that is not yet represented in the index.

Global Jobs Search API FAQ

Do I need to provide company career-site URLs?

No. Search the existing jobs index by keywords and filters. Use company or atsSource when you want to narrow the source set.

Can I return more than 1,000 jobs?

Yes. Set maxResults as high as 100,000. The Actor continues through available result pages and writes all accepted jobs to one dataset.

Can I search only remote jobs with salaries?

Yes. Set workArrangement to remote and hasSalary to true, then add role and location filters as needed.

The dataset preserves the canonical public application URL supplied by the originating ATS whenever available.

How do I get full job descriptions?

Set includeDescriptions to true. Otherwise, each result uses the compact description_snippet field to keep discovery datasets smaller.

Can I schedule new-job monitoring?

Yes. Combine postedSince with an Apify schedule, then send each dataset to a webhook, database, spreadsheet, Slack workflow, or another integration.

Explore more recruiting and labor-market data tools from Thirdwatch.

Last verified: 2026-07