Indeed Jobs Scraper - Latest Job Listings with Salary
Pricing
$0.50 / 1,000 job returneds
Indeed Jobs Scraper - Latest Job Listings with Salary
Get the newest Indeed job listings for any search in 16 countries: title, company, location, salary range, job type, rating and date as clean JSON. Search terms times cities, or paste Indeed search URLs. $3 per 1,000 jobs, no login, no proxy setup.
Pricing
$0.50 / 1,000 job returneds
Rating
0.0
(0)
Developer
DataSignals Lab
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
3 days ago
Last modified
Categories
Share
Indeed Jobs Scraper: newest listings with salary, $0.50 per 1,000
Get the newest Indeed job listings for any search as clean JSON: title, company, location, salary range, job type, employer rating and posting date. Give it search terms and cities, or paste Indeed search URLs with your filters. 16 Indeed country sites, residential proxy built in and included in the price, no login and no API key.
Read this first. Indeed only serves the first result page of a search to visitors who are not logged in. So each search returns about 15 jobs (25 to 50 on indeed.com), not the full result count. This Actor is built for monitoring: narrow searches, newest first, on a schedule.
Run it with the default input to see it work. It returns the newest registered nurse jobs in Austin, TX, one page.
What you get
One row per job:
| field | meaning |
|---|---|
job_id | Indeed's job key, stable across runs, use it to detect new jobs |
title, company | job title and employer |
company_rating, company_review_count | employer rating on Indeed, 1 to 5, and the number of reviews |
location, city, postal_code | where the job is |
remote | true when Indeed marks the job as remote |
job_types | full-time, part-time and similar, as Indeed labels them |
date_posted, posted_relative | publication date in UTC and the age text Indeed shows |
salary, salary_min, salary_max, salary_period, salary_currency | salary text and the parsed range, when the listing shows one |
snippet | the teaser text from the result list |
is_sponsored, urgently_hiring, easy_apply | listing flags |
url | link to the listing |
country, search_url | the site and the search the job came from |
Example row:
{"job_id": "671e2cfec1349ac1","title": "RN Operating Room II - Bloomfield Surgery Center","company": "SCA Health","company_rating": 2.8,"company_review_count": 443,"location": "Bloomfield, CT 06002","city": "Bloomfield","postal_code": "06002","remote": false,"job_types": null,"date_posted": "2026-10-02T05:00:00Z","posted_relative": "Just posted","salary": "$35 - $54 an hour","salary_min": 35,"salary_max": 54,"salary_period": "hour","salary_currency": "USD","snippet": "Successful completion of Basic Life Support (BLS) within 90 of employment or documentation of current BLS certification.","is_sponsored": false,"urgently_hiring": false,"easy_apply": true,"url": "https://www.indeed.com/viewjob?jk=671e2cfec1349ac1","country": "us","search_url": "https://www.indeed.com/jobs?q=registered+nurse&sort=date"}
How to scrape Indeed jobs with this Actor
- Open the Actor in the Apify Console and click Try for free. The form is prefilled with one search term, one city and the US site.
- Type your search terms and cities, one per line. Each term is searched in each city, so 3 terms and 10 cities are 30 searches. Pick the
countrysite. - For filters this form does not have, such as radius or remote only, set them on Indeed in the browser and paste the result URL into
startUrls. - Set
postedWithinDaysandmaxJobsand click Start. Export the dataset from the Storage tab. - From code, call
POST /v2/acts/datasignalslab~indeed-jobs-scraper/run-sync-get-dataset-itemson the Apify API with the same input.
Input
| field | what it does |
|---|---|
queries | search terms, one per line |
locations | cities or regions, one per line. Each term is searched in each location. Empty means the whole country |
country | the Indeed site: us, uk, ca, au, ie, in, sg, de, nl, fr, be, at, ch, es, it, se. Default us |
startUrls | Indeed search URLs pasted from the browser, in addition to the search terms. Filters in the URL are kept, only the first page is returned |
sort | date (default, newest first) or relevance. Pasted URLs keep their own sorting |
postedWithinDays | "1", "3", "7" or "14" to keep only recent jobs, default "any" |
skipSponsored | drop sponsored listings. Read the note under Limits before you use it |
maxJobs | hard stop across the run, also your budget cap. 0 means no limit |
Three roles in four German cities is twelve searches and up to 180 jobs:
{ "queries": ["data engineer", "python developer", "devops engineer"], "locations": ["Berlin", "Hamburg", "Munich", "Cologne"], "country": "de", "postedWithinDays": "3" }
Pricing
Pay per job returned: $0.50 per 1,000 jobs, charged only for rows that land in the dataset. That is $0.0005 per job, residential proxy included. No start fee, no charge for compute. Searches that fail cost nothing. Apify's free monthly credit covers thousands of jobs.
Example: 20 search terms in 25 US cities is 500 searches of one page each. At 25 to 50 jobs per page on indeed.com that is 12,500 to 25,000 rows, so $6.25 to $12.50 for a full sweep. That is how you cover a country with one page per search. A daily schedule with postedWithinDays set to "1" costs a fraction, because only new postings come back.
More from DataSignals Lab
This Actor is one of the pay-per-result data Actors of DataSignals Lab: job listings per ATS platform and job board, app and company reviews, YouTube comments and transcripts, website contacts and tech stacks. Every Actor returns the same clean JSON style and charges only for rows that land in the dataset, so you can combine feeds without remapping fields. All Actors and prices are listed on datasignalslab.com.
Use cases
- Recruiters: new openings for a role in a set of cities every morning, with the employer rating.
- Sales teams: fresh job posts as a buying signal,
urgently_hiringmarks employers who struggle to fill a role. - Salary researchers: parsed
salary_minandsalary_maxper role, city and period. - Job alert products and niche job boards: a daily feed per city, de-duplicated on
job_id. - AI agents: answer "who started hiring nurses in Austin this week" from live data.
Other boards: LinkedIn Jobs Scraper, Stepstone Jobs Scraper. Career sites: Job Search API.
Indeed jobs API alternative: how it compares
- Indeed has no public jobs API. Scrapers that page through hundreds of results run into Indeed's blocks, which shows up as timeouts and crawls that take hours. This Actor asks for one page per search, which Indeed serves, and gets breadth from many small searches.
- Residential proxy is included. No proxy groups to configure, no proxy bill next to the Actor fee.
- A blocked search is retried with fresh proxy sessions, then skipped and logged. The run continues.
- No full job description, see Limits. LinkedIn Jobs Scraper and Stepstone Jobs Scraper offer it as an option.
Limits
- First result page per search only. Indeed blocks further pages for visitors who are not logged in.
- Result list data only. The full description, benefits block and external apply link are not included.
- Salary is filled only when the listing shows one. Indeed's own estimates are not included.
- No radius or remote filter in the form. Set them on Indeed in the browser and paste the URL into
startUrls. - Indeed decides per request how many listings are sponsored, in our tests from none to all 15 for the same search. Sponsored listings are real jobs, flagged with
is_sponsored.skipSponsoredremoves them, which can leave a search with few rows or none. - The same search can return different jobs on two runs. Repeated runs collect more of the result set.
- To build a history, run on a schedule and de-duplicate on
job_id.
FAQ
Is it legal to scrape Indeed jobs?
The Actor reads the public result page Indeed shows to any visitor, without logging in and without personal data. Whether you may use the data depends on your jurisdiction and your use.
Do I need an Indeed account, API key or proxy?
No. There is no login and no cookie to paste. The residential proxy is built in.
How often does the Indeed Jobs Scraper update?
Every run reads Indeed live. Keep sort on date and set postedWithinDays to "1" for the postings of the last day.
Can I schedule it?
Yes. Create a schedule in the Apify Console, for example every two hours, with postedWithinDays set to "1". De-duplicate on job_id.
Can an AI agent or MCP client call the Indeed Jobs Scraper?
Yes. Through the Apify MCP server any MCP client, for example Claude Desktop or Cursor, can call this Actor as a tool and read the dataset.
How much do 10,000 Indeed jobs cost?
$5.00. No start fee, no proxy fee. On indeed.com that is roughly 200 to 400 searches.
What happens when Indeed blocks a request?
The search is retried three times with a fresh browser fingerprint and proxy session, in up to three rounds with a pause in between. If it still fails it is skipped and logged, and nothing is charged.
Integrations
Works with the Apify API and SDKs, schedules, webhooks and the Apify MCP server, so Claude, ChatGPT and other agents can call it as a tool. Push the dataset into Google Sheets, or connect it through Make, Zapier or n8n. Export to JSON, CSV or Excel.
Support
Issues tab on this page, or support@datasignalslab.com. Response within one working day. Built and maintained by DataSignals Lab.
Changelog
- 2026-10: Price cut from $3 to $0.50 per 1,000 jobs. Blocked searches are retried in up to three rounds. README restructured with guide, cost example, comparison, limits and FAQ.
- 2026-10-03: First release. One page per search, 16 country sites, parsed salary.