Indeed Scraper ($0.03 / 1,000 jobs)
Pricing
from $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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
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?
| Job | Company |
|---|---|
| Title, Indeed's standard title, job key and Indeed link | Name and Indeed company page |
| Apply link: the employer's own page when there is one | Website and logo |
| Job types (full-time, contract…) and the employer's reference number | Industry, size and revenue |
| Pay: minimum, maximum, currency, period, the text Indeed shows, and whether Indeed estimated it | Rating and review count |
| Full description as plain text and as HTML | CEO 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
- Click Try for free.
- Enter what to search for, such as "registered nurse", and a location, such as "Austin, TX". Or paste Indeed links or job keys.
- Set the country, filters and how many jobs you want per search.
- 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"] }
| Field | What it does |
|---|---|
searchTerms, location | What to search for and where. Indeed's search operators work: title:("data engineer"), company:Google, -intern |
country | Which Indeed site to search, such as us, gb, de or in. Labels come back in English on every site |
maxJobsPerSearch | Most jobs per search term |
deepSearch | Return more than 1,000 jobs for one search, split by when each job reached Indeed |
startUrls | Indeed 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 |
fromDays | Only jobs posted in the last 1 to 30 days |
jobTypes | Full-time, part-time, contract, temporary, internship, permanent, casual, freelance, seasonal or fixed term. Pick several to run one search per type |
experienceLevel | Entry, mid or senior |
remote | Remote or hybrid |
minSalary | Minimum yearly salary |
radius, radiusUnit | Distance from the location, up to 200 miles or km |
sort | Relevance or date |
jobKeys | Look up jobs by job key |
Which jobs to keep:
| Field | What it does |
|---|---|
saveOnlyUniqueItems (on) | Each job once per run, even when several searches find it |
dedupeStoreName | Skip 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 |
onlyExternalJobs | Only jobs that apply on the company site (no easy apply) |
strictMatch | Only 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 |
uniqueCompanies | One job per company |
resumeKeywords | Adds matchedKeywords, missingKeywords and keywordMatchPercent to each job |
maxItems | Stop 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 input | Ours |
|---|---|
keyword, position, query, title, keywords | searchTerms |
maxItems, count, maxRows, limit | maxItems (whole run) or maxJobsPerSearch |
maxItemsPerSearch, maxJobs, maxRowsPerUrl | maxJobsPerSearch |
datePosted, postedWithinDays, fromDays | fromDays |
jobType | jobTypes |
level, jobLevel, experienceLevel | experienceLevel |
remote, remoteWork, remoteWorkType | remote |
radius, radiusKm | radius with radiusUnit |
startUrls, urls | startUrls |
deepSearch, expandToCities | deepSearch |
storeName | dedupeStoreName |
parseCompanyDetails, includeCompanyDetails | Always included |
followApplyRedirects, resolveExternalApplyUrl | Always included: applyUrl is the employer's own link |
proxy, proxyConfig, maxConcurrency, maxRequestRetries | Not 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
fromDaysset to 1 and adedupeStoreNameto collect only new jobs. - Code: use the Apify API, or the
apify-clientpackage for Node.js or Python. - AI agents: call this Actor through the Apify MCP server.
Frequently asked questions
Is it legal to scrape Indeed?
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.
Related Actors
- Google Maps Scraper: places, details and photos from $0.034 per 1,000 places.
- Google Search API: Google search results from $0.17 per 1,000 pages.