Indeed Jobs Scraper & API - 60 Countries avatar

Indeed Jobs Scraper & API - 60 Countries

Pricing

from $0.06 / 1,000 job scrapeds

Go to Apify Store
Indeed Jobs Scraper & API - 60 Countries

Indeed Jobs Scraper & API - 60 Countries

Indeed jobs API & scraper for 60 Indeed country sites: search by keyword, location, radius, date posted, job type, remote and salary, or paste Indeed URLs. Parsed salary, company rating, benefits, full description, direct apply URL. About 1,000 jobs/min, $0.06 per 1,000 jobs.

Pricing

from $0.06 / 1,000 job scrapeds

Rating

0.0

(0)

Developer

Christian Machon

Christian Machon

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 hours ago

Last modified

Share

An Indeed jobs API for 60 countries: search by keyword and location and get clean job records with parsed salary, company rating and apply URL, for $0.06 per 1,000 jobs.

Scrape Indeed job listings from 60 Indeed country sites (indeed.com, uk.indeed.com, de.indeed.com, fr.indeed.com, ca.indeed.com, au.indeed.com, in.indeed.com ...) by keyword, location and radius, with Indeed's filters for date posted, job type (full-time, part-time, contract, temporary, internship), remote and minimum salary. You can also paste Indeed search URLs.

Every job comes as a clean record: job key, title, company, company rating and review count, location (city, state, postcode, country), salary parsed into min / max / period / currency (plus a yearly equivalent), job type, schedule, benefits, experience level, posted date, the full description, the Indeed job URL and the direct apply URL, and a remote flag.

The Actor reads Indeed's own job-search data feed, not the Cloudflare-protected web pages, so runs are fast (about 1,000 jobs per minute) and are not stopped by "Security Check" pages. It connects through Apify proxies. If Indeed starts throttling a connection, the Actor switches to residential proxies on its own. Both are included in the price.

Who it's for and use cases

Built for recruiters and staffing agencies, HR and salary analysts, job boards and job-alert products, B2B sales teams looking for companies that are hiring, and developers who need job data through an API.

  • Job market and salary research: who is hiring for a role in a city, how many postings there are, and what they pay (hourly, monthly or yearly, in local currency).
  • Lead generation for recruiters and staffing agencies: companies hiring right now, with their Indeed rating, size and industry.
  • Job boards and alerts: feed fresh postings with apply links into your own site, Slack or a spreadsheet. Schedule a daily run with Date posted = Last 24 hours.
  • Competitor and employer monitoring: track the roles a company opens across countries.
  • Pairs with our Google Jobs Scraper when you want postings from every job board, not only Indeed.

How to use it

  1. Enter one or more keywords (nurse, data analyst, warehouse). Each keyword is a separate search.
  2. Enter a location (Austin, TX, London, München) and pick the country (Indeed site). You can leave the location empty to search a whole country.
  3. Optionally set radius, date posted, job type, remote only, minimum salary and sort.
  4. Set max jobs per search and run.

Jobs go to the dataset (views: Overview, Salaries, Descriptions & apply links). A per-search summary goes to the OUTPUT record in the key-value store.

Paste Indeed URLs

Copy the URL of any Indeed results page from any country, for example https://uk.indeed.com/jobs?q=chef&l=Manchester&fromage=7. The country site, q, l, radius, fromage (date), jt / sc (job type, remote) and sort are taken from the URL.

How many jobs can I get?

Indeed shows a limited number of results for one search. For larger requests the Actor splits the search into posting-date windows and removes duplicates. In our tests 2,000 nurse jobs across the US took 108 seconds. Narrow searches stop when Indeed has no more matches, and OUTPUT says how many were found. You only pay for unique jobs saved.

Input examples

Simple search:

{
"keywords": ["software engineer"],
"location": "New York, NY",
"maxResults": 100
}

Part-time jobs from the last 3 days within 10 miles:

{
"keywords": ["barista", "cashier"],
"location": "Seattle, WA",
"radius": 10,
"datePosted": "3",
"jobType": "part-time"
}

Remote jobs paying at least $120,000 a year:

{
"keywords": ["data engineer"],
"remoteOnly": true,
"minSalary": 120000,
"maxResults": 200
}

Germany, by URL:

{
"startUrls": ["https://de.indeed.com/jobs?q=Pflegefachkraft&l=Hamburg&fromage=7"]
}

What data you get

Fill rates are measured on 4543 jobs from our final test runs (1543 with descriptions), across 16 countries.

FieldWhat it isFilled
jobKeyIndeed job key (stable ID, used for de-duplication)100%
titleJob title100%
companyNameEmployer100%
companyRating / companyReviewCountIndeed company rating (1-5) and number of reviews91%
companyUrl / companyLogoUrl / companyIndustry / companySizeIndeed company page, logo, industry, employee count91%
location / city / state / postalCode / countryCodeLocation as shown and its parts100%
isRemote / workModelRemote flag, "remote" or "hybrid"100%
salarySalary as shown ("$51 - $56 an hour")62%
salaryMin / salaryMax / salaryPeriod / salaryCurrencyParsed salary numbers, hour/day/week/month/year, ISO currency62%
salaryAnnualMin / salaryAnnualMaxYearly equivalent of the salary62%
jobType / jobTypesFull-time, Part-time, Contract, Temporary, Internship, PRN ...89%
scheduleShifts and schedule (Day shift, Monday to Friday, Weekends as needed ...)47%
benefitsHealth insurance, Paid time off, 401(k) matching ...58%
experienceLevelEntry level, Mid-level, Senior level ...85%
attributes / occupationsAll Indeed tags (skills, licenses, education, benefits) and occupation categories100%
postedAt / datePublishedWhen the job was posted on Indeed (ISO time) and the original publication date100%
descriptionFull job description as plain text (optional HTML in descriptionHtml)100%
jobUrlIndeed job page100%
applyUrl / applyIsExternal / isIndeedApplyDirect apply URL on the employer / ATS site (or the Indeed page for Indeed Apply jobs)100%
isUrgentHire / source / languageUrgently hiring flag, posting source, posting language100%
searchQuery / searchLocation / country / position / scrapedAtSearch that found the job, its rank and scrape time100%

postedAt is when the job appeared on Indeed. salaryAnnualMin / salaryAnnualMax convert the salary to a yearly amount (hour x 2080, day x 260, week x 52, month x 12) so jobs can be compared. salaryIsEstimate: true means Indeed estimated the pay because the employer did not state it.

Output example (shortened)

{
"jobKey": "49e1aa5388c6f358",
"title": "Staff Nurse",
"companyName": "The Harris Center for Mental Health and IDD",
"companyRating": 3.4,
"companyReviewCount": 444,
"companyUrl": "https://www.indeed.com/cmp/The-Harris-Center-For-Mental-Health-and-Idd",
"companyLogoUrl": null,
"companyIndustry": "Health Care",
"companySize": "1,001 to 5,000",
"location": "Houston, TX 77087",
"city": "Houston",
"state": "TX",
"postalCode": "77087",
"countryCode": "US",
"isRemote": false,
"workModel": null,
"salary": "From $80,860 a year",
"salaryMin": 80860,
"salaryMax": null,
"salaryPeriod": "year",
"salaryCurrency": "USD",
"salaryIsEstimate": false,
"salaryAnnualMin": 80860,
"salaryAnnualMax": null,
"jobType": "Full-time",
"jobTypes": [
"Full-time"
],
"experienceLevel": "Mid-level",
"schedule": [],
"benefits": [
"Paid time off",
"Employee assistance program",
"Employee discount",
"Loan forgiveness",
"Flexible schedule"
],
"attributes": [
"Nursing policy compliance",
"Collaborate with healthcare professionals",
"Managed Registered Nurses (RNs)",
"Nursing",
"Staff supervision",
"Trauma-sensitive practices"
],
"occupations": [
"Healthcare Occupations",
"Patient Care Nursing Occupations",
"Nursing Occupations",
"Registered Nurses"
],
"postedAt": "2026-10-27T09:00:54.488Z",
"datePublished": "2026-10-26",
"isUrgentHire": false,
"isIndeedApply": true,
"jobUrl": "https://www.indeed.com/viewjob?jk=49e1aa5388c6f358",
"applyUrl": "https://prd01-hcm01.prd.mykronos.com/ta/6140328.careers?ShowJob=2185052379",
"applyIsExternal": true,
"source": "The Harris Center for Mental Health and IDD",
"language": "en",
"description": "Join The Harris Center for Mental Health and IDD as a Staff Nurse, RN and unleash your innovative spirit! As part of our interdisciplinary team, you'll provide nursing care to individuals with mental and developmental di...",
"searchQuery": "registered nurse",
"searchLocation": "Houston, TX",
"country": "us",
"position": 12,
"scrapedAt": "2026-10-27T11:38:21.973Z"
}

Run summary (OUTPUT record)

Each search gets one status: SUCCEEDED, PARTIAL, NO_DATA (Indeed has no jobs for it) or FAILED. The summary also has the job count, the number of requests, how many jobs your filters removed, a note when fewer jobs exist than you asked for, and network statistics (proxy used, retries). If every search fails, the run is marked as failed, so you never get an empty "successful" run.

Pricing

Pay per event, no subscription. Proxies are included:

EventPriceWhen
Actor start$0.0005 per GB of memory ($0.0005 at the default 256 MB)Once per run
Job$0.00006Every unique job saved to the dataset

That is $0.06 per 1,000 jobs, plus the start fee. Duplicates are never charged. A search with no results costs only the start fee. Apify's "Maximum cost per run" is respected, and the scraper stops cleanly when it is reached.

Examples: 100 jobs ≈ $0.0065. 10,000 jobs ≈ $0.60.

FAQ

Do I need an Indeed account, cookies or my own proxy? No. Keep the default proxy setting. Proxies are included in the price.

Which countries work? 60 Indeed country sites, including the US, UK, Canada, Australia, India, Germany, France, Netherlands, Spain, Italy, Brazil, Mexico, Japan, Singapore, South Africa and the UAE. Pick one in Country, or paste a URL from that country's site.

Why do I get fewer jobs than the number shown on the Indeed website? The website count is an estimate that also includes loosely related postings. The Actor returns the jobs Indeed actually serves for the search, without duplicates.

How do salary filters work? Indeed does not have a reliable salary filter, so Minimum salary is applied to the parsed salary (yearly equivalent, in the job's own currency). Jobs without a salary are skipped when it is set.

Are the descriptions complete? Yes. description is the full text of the posting. Turn on Also include description HTML to get the original formatting too.

Can I call it as an API? Yes. Every run can be started through the Apify API. To get results back in one HTTP call, POST your input to run-sync-get-dataset-items:

curl -X POST "https://api.apify.com/v2/acts/atlasdata~indeed-jobs-scraper-reliable/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"keywords": ["software engineer"], "location": "New York, NY", "maxResults": 50}'

The response is the dataset as JSON. Apify's JavaScript and Python clients, Make, Zapier and n8n integrations work too.

Can AI agents use it (MCP)? Yes. Add the Apify MCP server to Claude, Cursor or any MCP client with https://mcp.apify.com?tools=atlasdata/indeed-jobs-scraper-reliable and the Actor becomes a tool your agent can call.

Can I run it on a schedule? Yes. Use Apify Schedules (for example daily with a recent date posted filter) and send the dataset to Google Sheets, Slack, a webhook or your database with Apify integrations.

Limits and honest caveats

  • Results per search: Indeed serves a limited set per search. Larger results come from date-window splitting (see above). Very narrow searches cannot reach a high maxResults.
  • Combined filters: Indeed applies one filter type per request. When you combine date posted with job type / remote, one is applied by Indeed and the other is applied on our side, so some extra requests may be needed. The results are correct, and you only pay for matching jobs.
  • Salary, rating, benefits: present only when Indeed shows them (see fill rates).
  • Speed: about 1-3 seconds per 100 jobs plus Actor start. 50 jobs ≈ 3 s per run.
  • Test results: 36/36 final test runs on the current build passed (16 Indeed country sites, every filter, URL input, a no-results search and a forced block that switched to residential proxy). Median run time 3.2 s; 1,000 jobs in 24 s; 2,000 jobs in 108 s.

Job data scrapers

Ad library scrapers (competitor ad tracking)

Search trends