Indeed Jobs Scraper
Scrape Indeed jobs by keyword and location in 11 countries. Get company, salary, benefits, remote flag, employer rating and apply URL. $4.00 per 1,000.
How it works
- 1Open it on Apify
Hit Run on Apify — it opens the tool in the cloud, no install.
- 2Set the inputs
Adjust
query,location,country(sensible defaults are pre-filled). - 3Click Run
The tool runs on Apify’s cloud and collects the data for you.
- 4Export the results
Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.
Pricing
$0.004 per job = $4 per 1,000
| You are charged for | When | Price |
|---|---|---|
| Job returned | Charged per job returned (blocked/empty not charged). | $0.004 |
Pay-per-event pricing: you are billed per result, not per subscription. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-08-24, and they are what you are actually charged.
Inputs
| Field | What it does | Type |
|---|---|---|
query | What to search for, e.g. "software engineer", "registered nurse", "data analyst". | string |
location | City, state, or "remote", e.g. "New York", "London", "Remote". Leave blank to search the whole country. | string |
country | Which Indeed country site to search. | string |
maxItems | How many job listings to collect (the scraper paginates in batches of 10). Note: salary and companyRating are often null on Indeed, and the browser locale is always en-US regardless of country. | integer |
notionConnector | Optional. Write each job as a page into your Notion when the run finishes. Authorize a Notion connector once in Settings → API & Integrations → MCP connectors, then pick it here. Leave empty to skip (default), results are always saved to the dataset regardless. | string |
notionParentId | Optional. The Notion data source ID of the database to write into (only used if a Notion connector is set). Leave empty to create the pages privately in your workspace instead. | string |
What you get
A structured dataset — each result includes fields like:
benefitscompanycompanyRatingcompanyReviewCountcountryjobIdjobTypeslocationpostedTextqueryremotesalarysnippettitleurlExport every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.
16 ready-to-run use cases
Scrape Indeed Jobs: Machine Learning Engineer Roles, US
US machine learning and AI engineer postings with company, location, salary where given and the apply URL. Change the search term to cover any tech role.
Indeed Data Scraper: Cybersecurity Engineer Jobs, US
US cybersecurity and security engineer roles from Indeed with company, location, salary where posted and the apply link. Edit the keyword for any job title.
Job Data Scraper: Travel Nurse ICU & ER Jobs Across the US
US travel nurse postings with employer, location, the pay an agency advertised and the apply link. Prefilled for ICU; edit the keyword for ER or med-surg.
Job Board Scraper: CDL Truck Driver Jobs by US State
CDL driving jobs state by state from Indeed: carrier, city, the advertised pay and the apply link. Set the state you want and how many rows to pull.
Job Posting Scraper: Companies Hiring Sales Reps in NYC
Every company advertising account executive roles in New York, with location and a link to the posting. Who is hiring is the lead list. Change the city.
Indeed Remote Jobs Scraper: DevOps & SRE Roles in the US
Remote-flagged DevOps and SRE postings from Indeed US: company, salary where published, and the apply link. Swap the keyword for any remote role.
Indeed Salary Data: Registered Nurse Pay by US City
Registered nurse postings with the salary range the employer advertised, city by city. Only listings that published pay carry a figure, and plenty do not.
Scrape Job Postings: Entry Level & New Grad Jobs in the US
US postings that say entry level or new grad, with company, location, pay where listed and the apply link. It matches the wording employers actually used.
Indeed Jobs Germany Scraper: Nursing & Engineering Roles
German postings from Indeed with employer, city and apply link. Prefilled with Krankenpfleger in Berlin, and searching in German gets you far better coverage.
Indeed Job Scraper: H1B Visa Sponsorship Tech Roles, US
US tech postings whose text mentions visa sponsorship, with company, location and apply link. It matches wording, so check each employer yourself.
Job Scraper: Warehouse & Fulfillment Roles by US Metro
Warehouse and fulfillment openings for any US metro, with employer, advertised pay and the apply link. Prefilled with Atlanta; change the city to move it.
Job Listings Scraper: Electrician & Trades Jobs by City
Electrician and skilled-trades postings for any US city, with employer, advertised pay and the apply link. Prefilled with Phoenix; change the city or trade.
Indeed Jobs Canada Scraper: Data Scientist Roles, Toronto
Data scientist postings from Indeed Canada with employer, city, salary where given and the apply link. Prefilled with Toronto; any Canadian city works.
Indeed Jobs Scraper: Software Engineer Jobs in Austin, TX
Pulls Austin software engineer listings off Indeed with the pay band, how long ago it posted and the apply link. Change the keyword or city to suit.
Remote Jobs Scraper: Data Analyst Roles on Indeed (US)
Remote-flagged data analyst postings from Indeed US: company, the salary where an employer published one, and the apply link. Edit the keyword for other roles.
Indeed Jobs Australia Scraper: Accountant Roles + Salary
Accountant openings across Indeed Australia with employer, city, the advertised salary and the apply link. Swap the keyword to pull any Australian role.
Related tools in Job Market Scrapers
Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.
Glassdoor Company Reviews Scraper
Scrape Glassdoor reviews: pros, cons, six sub-ratings, recommend rate and CEO approval. First page per company without login. $2.50 per 1,000.
StepStone Jobs Scraper
Scrape StepStone jobs in DE, AT, UK, NL and BE by keyword and location. Get company, salary, posted date, remote flag and links. $3.00 per 1,000 jobs.
Remotive Jobs Scraper
Scrape remote jobs from Remotive by keyword or category: company, region, salary, tags and plain-text descriptions. $2.00 per 1,000 jobs.
Multi-ATS Jobs Scraper (Greenhouse, Lever, Ashby)
Scrape open jobs from Greenhouse, Lever and Ashby boards. Get the title, location, department, posted date, description and apply link. $3.00 per 1,000.
LinkedIn Jobs Scraper
Scrape public LinkedIn jobs by keyword, location, URL or ID. Filter by date, workplace type and experience. Full descriptions. $0.80 per 1,000 jobs.
BuiltIn Jobs Scraper
Scrape Built In tech jobs: salary, all locations, skills, seniority, exact posted date. No login, no API key. $0.81 per 1,000.
Where this tool sits
- Categories
- Job Market Scrapers
- Platforms
- Indeed
Indeed Jobs Scraper: job cards with salary, benefits and the apply link, from 11 country sites
Type a job title and a place, pick which Indeed site to search, and get one row per listing: title, company, location, salary where Indeed shows one, the benefits list, a remote flag, the employer rating and a direct apply URL.
These are the search-result cards, not the full job page. The description you get is the short excerpt Indeed prints under the title, and salary is missing on plenty of listings because the employer never posted one.
| Input | A keyword, an optional location, and one of 11 country sites |
| Output | One row per job card |
| Ceiling | 1,000 jobs per run |
| Account needed | None, and no Indeed login |
| Price | $4.00 per 1,000 jobs, flat on every plan |
💼 What Indeed Jobs Scraper does
It runs the search you would type into Indeed yourself and reads the results out of the job-card data the page ships with, so the fields come back structured instead of scraped out of HTML. It pages through the results ten at a time until it has your number or the results run out.
Eleven country sites are covered: the US, UK, Canada, Germany, France, Australia, India, the Netherlands, Spain, Italy and Ireland. Picking the country changes which Indeed site is searched, which changes the jobs, the currency and the wording.
You get salary when Indeed has one, either the posted figure or Indeed's own estimate, in whatever form the site printed it. Benefits, job type and the remote flag come from the tags on the card.
📥 What you give it
{
"query": "software engineer",
"location": "Seattle, WA",
"country": "us",
"maxItems": 50
}
| Field | Default | What it is |
|---|---|---|
query | required, box starts at software engineer | The job title or keywords. Same box you would use on the site. |
location | none | A city, a state, or remote. Leave it blank to search the whole country. |
country | us | Which Indeed site: us, uk, ca, de, fr, au, in, nl, es, it or ie. |
maxItems | 50 | How many jobs to collect, up to 1,000. Results come in pages of ten, so you may land a few over a round number. |
notionConnector | none | Optional. Write every job into your own Notion as well as the dataset. Authorise the connector once in Settings, then pick it here. |
notionParentId | none | Optional. The Notion data source ID to write into. Leave blank and the pages are created privately in your workspace. |
proxyConfiguration | Apify's default | Optional, and best left alone. It is here so a run can go out through your own servers if you need that. |
📤 What you get back
A real row from a recent run:
{
"ok": true,
"jobId": "31feffb7b93ec4d7",
"title": "Software Development Engineer I - Early Career (2027 Starts)",
"company": "Blue Origin",
"location": "Seattle, WA",
"salary": "$101,405.00 - $154,871.85 a year",
"jobTypes": ["Full-time"],
"benefits": ["Dental insurance", "Stock options", "401(k) matching", "Paid time off", "..."],
"remote": false,
"postedText": "19 days ago",
"snippet": "Troubleshoot and fix software issues at multiple levels, including both server-side and client side. Experience developing and testing real-time embedded…",
"companyRating": 3,
"companyReviewCount": 224,
"url": "https://www.indeed.com/viewjob?jk=31feffb7b93ec4d7"
}
The benefits list above is cut short; a generous employer can have a dozen entries.
| Field | What it is |
|---|---|
jobId | Indeed's own job key. Stable, so use it to dedupe across runs. |
salary | The text as Indeed printed it, posted figure or Indeed estimate. null when neither exists, which is common. |
postedText | Relative wording like 19 days ago, straight from the card. Indeed does not publish a real date here, so there is none to give you. |
remote | True when the card carries a remote tag, when the listing has a remote location, or when the location text says remote. |
snippet | The excerpt under the title, with the markup stripped. It is not the full job description. |
companyRating, companyReviewCount | The employer's star rating out of five and how many reviews it came from. null when the company has no reviews. |
url | A direct viewjob link on the country site you searched. |
🧾 Reading the output
Two kinds of row can land in your dataset.
| Row | How to spot it | Charged |
|---|---|---|
| A job | ok: true and a jobId | yes |
| A diagnostic | ok: false and an errorCode | no |
A diagnostic row is never billed as a job, and a run that finds nothing writes exactly one of them.
| Code | What it means |
|---|---|
BAD_INPUT | query was empty. Fill it in; location can stay blank. |
NO_RESULTS | The search ran and matched nothing. Widen the keywords or drop the location. |
BLOCKED | Indeed would not serve the results this time. Run it again in a few minutes. |
RATE_LIMITED | Indeed asked for a slower pace. Re-run with a smaller maxItems. |
SERVER_ERROR | Indeed answered with a server error. Usually passes on its own. |
NETWORK | The run could not reach Indeed at all. |
The default table view hides most fields, including errorCode, so a run with no jobs looks like one blank line. Switch the dataset to All fields or export as JSON to read it.
If Indeed stops serving pages partway, the run keeps the jobs it already collected and stops there rather than throwing them away.
▶️ How to run it
1. Open Indeed Jobs Scraper and click Try for free. 2. Type into Keywords / job title, for example registered nurse. 3. Put a city or remote into Location, or leave it blank for the whole country. 4. Pick your Country, set Max jobs, then click Start. 5. Download the dataset as JSON, CSV or Excel, or read it from the Apify API.
💰 How much does it cost?
$4.00 per 1,000 jobs, which is $0.004 each. Flat on every Apify plan, no volume tiers.
You pay per job row delivered. Duplicates are dropped before they reach you, and diagnostic rows are never billed as jobs, so a search that matches nothing does not put any jobs on your bill.
💡 What people use it for
- Tracking which companies are hiring for a role in one city, run weekly and deduped on
jobId. - Building a salary picture for a title across several countries, using the same keyword on each
site.
- Feeding a job board or a newsletter with fresh listings and the apply link already attached.
- Filtering on the
remoteflag and the benefits list to shortlist the listings worth reading in
full.
🚧 What it does not do
- Card data only. No full job description, no requirements list, no application form. Follow
url for the rest.
- Salary is often missing. Plenty of employers post no figure, and Indeed's estimate is not
always there either. Expect null on a good share of rows.
postedTextis relative, not a date. Indeed publishes "19 days ago" and nothing more precise,
so the actor cannot hand you a timestamp it was never given.
- The page language is US English whichever country site you pick, so some labels read in
English even on the German or French site.
- One search per run. Several titles means several runs, or a scheduled run per title.
- The cursor stops at 1,000. Indeed does not page deeper than that on a search, so narrow the
keywords rather than raising the number.
- No company profiles, salaries pages or reviews. Only the jobs list.
- An employer with no reviews has no rating, which shows as
nullrather than zero.
🧭 Which jobs scraper do you need?
| If you want | Use |
|---|---|
| Indeed search results with salary and apply links | This one |
| Jobs straight off company career sites, across many hiring systems | Multi-ATS Jobs Scraper |
| Google's aggregated jobs feed | Google Jobs Scraper |
| Startup roles with equity ranges | Wellfound Jobs Scraper |
| German-speaking markets | XING Jobs Scraper or StepStone Jobs Scraper |
❓ Questions people ask
Do I need an Indeed account? No. Nothing to log in to and nothing to apply for.
Can I get the full job description? Not from this actor. The snippet is the card excerpt, and url takes you to the full posting.
Why does one search return fewer jobs than I asked for? Either the search genuinely has fewer matches, or Indeed stopped handing out further pages. You are charged for what arrived.
Can I search several countries at once? Not in one run. Run it once per country with the same keyword, then join the results on jobId.
Can I schedule it? Yes. Weekly with the same query works well, and jobId makes deduping across runs straightforward.
Is scraping job listings legal? These are public listings on public search pages. They can still carry personal data, which GDPR and similar laws cover, so have a reason for collecting it. Apify's write-up on scraping and the law is a good starting point, and we are not lawyers.
🆘 If something breaks
Open the Issues tab on the actor page. Send the run ID, the keyword and the country you picked. The errorCode on the diagnostic row usually names the problem on its own.