Indeed Scraper ($0.03 / 1,000 jobs) avatar

Indeed Scraper ($0.03 / 1,000 jobs)

Pricing

from $0.03 / 1,000 jobs

Go to Apify Store
Indeed Scraper ($0.03 / 1,000 jobs)

Indeed Scraper ($0.03 / 1,000 jobs)

Indeed jobs from 62 countries as JSON for $0.03 per 1,000 jobs: title, company, salary, full description and apply link. Filter by date, job type, experience, salary and remote, paste Indeed links, and get past 1,000 jobs per search with deep search. Batch runs or a live HTTP API.

Pricing

from $0.03 / 1,000 jobs

Rating

0.0

(0)

Developer

SerpData

SerpData

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Indeed Scraper

Get Indeed jobs from 62 countries as clean JSON, from SerpData, for $0.03 per 1,000 jobs, full description and company details included.

Search by keyword and location, filter by date, job type, experience, salary and remote, paste Indeed links, or look jobs up by their Indeed job key. Every job comes with its pay, full description, location and the hiring company's details.

Why use this Indeed scraper?

  • Lowest price we found among Indeed scrapers on Apify. $0.03 per 1,000 jobs, charged only for jobs returned. Failed requests and skipped jobs are free.
  • Everything in one row. The full description, pay and company details come with every job, with no add-ons to switch on.
  • 62 countries. Search any Indeed site, such as the US, UK, Germany or India, or paste links from any of them.
  • More than 1,000 jobs per search. Indeed shows at most 1,000 jobs for one search. Deep search splits a bigger search by date, so a nationwide search can return tens of thousands of jobs.
  • Daily runs without duplicates. Name a dedupe store and each run returns only jobs you have not seen in the last 90 days.
  • Batch or live. Run it in bulk from the Apify Console, or call it like an API.

What data can I extract from Indeed?

JobCompany
Title, Indeed's standard title, job key and Indeed linkName and Indeed company page
Apply link: the employer's own page when there is oneWebsite and logo
Job types (full-time, contract…) and the employer's reference numberIndustry, size and revenue
Pay: minimum, maximum, currency, period, the text Indeed shows, and whether Indeed estimated itRating and review count
Full description as plain text and as HTMLCEO and social links, when Indeed has them
Location: text, street, city, state, postal code, country and coordinates
Date posted and date it reached Indeed
Remote, hybrid, urgent hire, high-volume hiring and easy apply
Skills, benefits, schedules and requirements Indeed attaches

How to scrape Indeed

  1. Click Try for free.
  2. Enter what to search for, such as "registered nurse", and a location, such as "Austin, TX". Or paste Indeed links or job keys.
  3. Set the country, filters and how many jobs you want per search.
  4. Click Start, then download the jobs as JSON, CSV, Excel, XML or HTML.

Input

Search for jobs:

{
"searchTerms": ["registered nurse", "physical therapist"],
"location": "Austin, TX",
"maxJobsPerSearch": 200,
"fromDays": 7,
"jobTypes": ["fulltime", "parttime"],
"experienceLevel": "entry",
"minSalary": 60000
}

Look up jobs you already know by their job key, the jk= part of an Indeed job link. Expired jobs come back too:

{ "jobKeys": ["5e5dafc2a80c214d"] }
FieldWhat it does
searchTerms, locationWhat to search for and where. Indeed's search operators work: title:("data engineer"), company:Google, -intern
countryWhich Indeed site to search, such as us, gb, de or in. Labels come back in English on every site
maxJobsPerSearchMost jobs per search term
deepSearchReturn more than 1,000 jobs for one search, split by when each job reached Indeed
startUrlsIndeed search pages with their filters (https://www.indeed.com/jobs?q=nurse&l=Texas&fromage=7), job pages (viewjob?jk=…) or company job pages (/cmp/Google/jobs), from any Indeed site and language
fromDaysOnly jobs posted in the last 1 to 30 days
jobTypesFull-time, part-time, contract, temporary, internship, permanent, casual, freelance, seasonal or fixed term. Pick several to run one search per type
experienceLevelEntry, mid or senior
remoteRemote or hybrid
minSalaryMinimum yearly salary
radius, radiusUnitDistance from the location, up to 200 miles or km
sortRelevance or date
jobKeysLook up jobs by job key

Which jobs to keep:

FieldWhat it does
saveOnlyUniqueItems (on)Each job once per run, even when several searches find it
dedupeStoreNameSkip jobs that runs with the same name returned in the last 90 days
includeNoSalaryJob (on)Turn off to keep only jobs with a stated or estimated salary
onlyExternalJobsOnly jobs that apply on the company site (no easy apply)
strictMatchOnly jobs whose title or description matches the search term: every plain word, one side of an OR, quoted phrases in full; excluded words and company: are left to Indeed
uniqueCompaniesOne job per company
resumeKeywordsAdds matchedKeywords, missingKeywords and keywordMatchPercent to each job
maxItemsStop after this many jobs in total

Skipped jobs are never charged. Any filter in a pasted link that cannot be used is listed in the log.

Output

One dataset item per job, shortened here:

{
"searchString": "registered nurse",
"title": "Registered Nurse",
"key": "c17827ceb463501e",
"url": "https://www.indeed.com/viewjob?jk=c17827ceb463501e",
"applyUrl": "http://www.indeed.com/job/registered-nurse-c17827ceb463501e",
"jobTypes": ["Part-time", "Full-time"],
"salary": {
"text": "$40 - $65 an hour",
"min": 40,
"max": 65,
"currency": "USD",
"period": "hour",
"estimated": false
},
"location": {
"text": "Brooklyn, NY 11201",
"city": "Brooklyn",
"state": "NY",
"postalCode": "11201",
"country": "US",
"latitude": 40.695473,
"longitude": -73.99272
},
"company": {
"name": "Elder Care Homecare",
"url": "https://www.indeed.com/cmp/Elder-Care-Homecare",
"website": "http://eldercarehomecare.com/",
"size": "51 to 200",
"rating": 4.2,
"ratingCount": 68
},
"description": {
"text": "If you are a compassionate and dedicated Registered Nurse with the required skills and qualifications, we would love to hear from you. …"
},
"attributes": [
{ "key": "2W3B3", "label": "Background check" },
{ "key": "43QDC", "label": "Weekly pay" }
],
"remote": false,
"hybrid": false,
"easyApply": true,
"datePublished": "2026-10-05T11:54:41.077Z",
"dateOnIndeed": "2026-10-05T11:54:41.077Z"
}

How much does it cost to scrape Indeed?

$0.03 per 1,000 jobs, with no start fee and no monthly fee. You are charged only for jobs returned; searching, filtering and skipped jobs are free.

  • The free Apify plan includes $5 of usage a month, enough for about 166,000 jobs.
  • The Starter plan ($19 a month) covers about 630,000 jobs a month.

Use cases

  • Job market research: see which roles, skills and pay are in demand, by city and country.
  • Salary benchmarking: compare pay ranges for a role across employers and locations.
  • Lead generation: find companies that are hiring, with their website, size and industry.
  • Recruiting and sourcing: track new openings at the companies you work with.
  • Job boards and aggregators: fill a niche job board with fresh listings every day.
  • Career tools: score jobs against a resume's keywords with resumeKeywords.

Coming from another Indeed actor?

Their inputOurs
keyword, position, query, title, keywordssearchTerms
maxItems, count, maxRows, limitmaxItems (whole run) or maxJobsPerSearch
maxItemsPerSearch, maxJobs, maxRowsPerUrlmaxJobsPerSearch
datePosted, postedWithinDays, fromDaysfromDays
jobTypejobTypes
level, jobLevel, experienceLevelexperienceLevel
remote, remoteWork, remoteWorkTyperemote
radius, radiusKmradius with radiusUnit
startUrls, urlsstartUrls
deepSearch, expandToCitiesdeepSearch
storeNamededupeStoreName
parseCompanyDetails, includeCompanyDetailsAlways included
followApplyRedirects, resolveExternalApplyUrlAlways included: applyUrl is the employer's own link
proxy, proxyConfig, maxConcurrency, maxRequestRetriesNot needed

Live HTTP API

This Actor also runs in Standby mode, so you can call it like any API:

curl "https://serpdata--indeed-scraper.apify.actor/jobs?q=registered+nurse&location=Austin,+TX&limit=20" \
-H "Authorization: Bearer $APIFY_TOKEN"

GET /jobs returns one page of up to 100 jobs, charged per job returned. It takes the same filters as a batch run: q, location, country, radius, radiusUnit (miles or km), sort (relevance or date), fromDays, jobType (one type), experienceLevel, remote (remote or hybrid), minSalary and limit (1 to 100). fromHours and toHours limit jobs to a time window in hours, for splitting a large search yourself. Pass the nextCursor from a page as cursor to get the next one, with the same limit and filters; Indeed rejects a page whose limit changed. To look jobs up, pass up to 100 job keys, comma-separated, as keys.

Errors return JSON with a message and are never charged. 400 means a parameter is invalid, 402 means the run has reached its maximum cost, and 429 means too many requests at once. Any 5xx status is safe to retry.

Integrations and API access

  • No-code: connect runs to Make, Zapier, Google Sheets, Google Drive, Slack, Amazon S3 and others, or trigger anything with a webhook.
  • Scheduling: run daily with fromDays set to 1 and a dedupeStoreName to collect only new jobs.
  • Code: use the Apify API, or the apify-client package for Node.js or Python.
  • AI agents: call this Actor through the Apify MCP server.

Frequently asked questions

Indeed job listings are public and can be read without an account. Whether you can collect and use them depends on where you are and what you do with the data, so check Indeed's terms of service and get legal advice for your use case.

What about personal data?

Job listings are mostly business data. Some company details, such as the CEO's name, are personal data, protected in the EU by the GDPR and by similar laws elsewhere. Only collect and keep them if you have a lawful reason to.

How many jobs can I get?

Indeed shows at most 1,000 jobs for one search. Turn on Deep search and set Jobs per search above 1,000, and a bigger search is split by date into windows of under 1,000 jobs each. Add more search terms or locations to go further.

Which countries are supported?

62 Indeed sites. Set Country to a two-letter code such as gb, de or in, or paste links from any Indeed site.

How do I get only new jobs every day?

Schedule a daily run with Posted in the last (days) set to 1 and a name in Skip jobs from earlier runs. Each run then skips any job a run with the same name returned in the last 90 days.

What export formats are supported?

JSON, CSV, Excel, XML and HTML, from the dataset of any run.

Current limits

  • Sponsored listings are not marked as sponsored, and their position on Indeed's page is not included.
  • There is no filter for jobs posted by staffing agencies.