Indeed Jobs Scraper: Salary, Remote & Skills, 23 Countries
Pricing
from $3.00 / 1,000 job results
Indeed Jobs Scraper: Salary, Remote & Skills, 23 Countries
Scrape Indeed jobs by keyword and location in 23 countries. Each job comes with salary already split into min/max/period plus annual pay, a remote/hybrid/onsite flag, skills, benefits and full description. No login, no duplicates, pay only for jobs saved.
Pricing
from $3.00 / 1,000 job results
Rating
0.0
(0)
Developer
Tidy Data Labs
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
11 days ago
Last modified
Categories
Share
Scrape Indeed job listings by keyword and location and get data you can use straight away: salary already split into min / max / period / currency with annual pay, a remote / hybrid / onsite flag, job type, benefits, a skills list, posting date, full description and job URL. Works on 23 Indeed country sites.
$3 per 1,000 jobs, residential proxy included. You pay only for unique jobs saved to your dataset, never for duplicates or failed pages.
Why use this Indeed scraper?
- Salary you can sort and average. Indeed shows pay as text like "$33 - $48 an hour" or "£30,000 a year". You get
salaryMin: 33,salaryMax: 48,salaryPeriod: "hour", plussalaryMinAnnual: 68640, so hourly and yearly jobs sit on one scale. - Remote, hybrid or onsite in one field. Filter remote jobs with
workArrangement = "remote"instead of searching descriptions. - Skills and benefits as lists. Count the skills employers ask for, or compare benefits across companies.
- Clean, flat records. One row per job with the same fields every time, ready for CSV, Excel, Google Sheets or a database.
- Built to keep running. Each search runs in a fresh browser session on residential proxy, results are de-duplicated, and the run stops on its own when new searches stop finding new jobs.
- Spend caps you control. Set Max results or a maximum charge per run, and the actor stops cleanly at the limit.
What Indeed shows vs. what you get
| On Indeed | In your dataset |
|---|---|
| $33 - $48 an hour | salaryMin 33, salaryMax 48, salaryPeriod "hour", salaryCurrency "USD", salaryMinAnnual 68640, salaryMaxAnnual 99840 |
| "This position is remote and can be located anywhere within the Continental US" (in the description) | workArrangement "remote" |
| Requirements buried in a long description | skills ["SQL", "Tableau", "Power BI", "Forecasting", ...] |
| Just posted | postedAt "2026-10-02T05:00:00.000Z" |
| Benefits section | benefits ["Health insurance", "401(k) matching", "Paid parental leave", ...] |
What does Indeed Jobs Scraper do?
Type in what you'd type into Indeed's search boxes (for example "nurse" in "Austin, TX"), choose how many jobs you want and how recent they should be, and the actor returns one structured record per job. It's built for:
- Salary benchmarking: compare pay across roles, cities and companies without re-parsing pay text yourself.
- Labor-market and skills research: see which skills, licenses and certifications employers ask for.
- Job boards and aggregators: feed fresh listings into your own site, newsletter or alerts.
- Recruiting and sales intelligence: track which companies are hiring, for what, and where.
It reads only Indeed's public, logged-out search and job pages. It never logs in and collects no data about job seekers.
What data does it extract?
| Field | Example |
|---|---|
title | Registered Nurse (RN) – Mobile IV Therapy |
company, companyRating | United Airlines, 3.9 |
location, city, state, postalCode, country | Austin, TX |
salaryText (as shown) | $22 - $36 an hour |
salaryMin, salaryMax, salaryPeriod, salaryCurrency | 22, 36, hour, USD |
salaryMinAnnual, salaryMaxAnnual | 45760, 74880 |
salarySource | indeed / parsed / llm |
workArrangement | remote / hybrid / onsite |
jobType, jobTypes | Full-time, [Full-time, Part-time] |
benefits | [Health insurance, 401(k), Paid time off] |
postedAt, postedRelative | 2026-10-04T05:00:00Z, "Just posted" |
shortDescription, description | first 300 characters, full plain text |
skills | [BLS Certification, RN License, Patient monitoring, …] |
easyApply, isSponsored, urgentlyHiring | true / false |
jobUrl | https://www.indeed.com/viewjob?jk=… |
How to scrape Indeed jobs
- Click Try for free.
- Enter Keywords and Location, pick the Indeed country site, and set Max results and Posted within (days).
- Click Start. Download the results as JSON, CSV, Excel or HTML, or pull them through the Apify API.
Input example
{"keywords": "data analyst","location": "Chicago, IL","countryDomain": "www.indeed.com","maxResults": 200,"postedWithinDays": 7}
More input examples
Remote jobs only, last 3 days:
{ "keywords": "python developer", "location": "Remote", "maxResults": 300, "postedWithinDays": 3 }
UK jobs, any date:
{ "keywords": "registered nurse", "location": "Manchester", "countryDomain": "uk.indeed.com", "maxResults": 200, "postedWithinDays": 0 }
Fast, card-only results (title, company, location, salary; no full description):
{ "keywords": "warehouse associate", "location": "Dallas, TX", "maxResults": 500, "fetchDetails": false }
Output example
{"jobKey": "08f32bd70b67b819","title": "Pediatric Private Duty Nurse (LVN/RN)","company": "Private Household/Agency","location": "Georgetown, TX 78626","salaryText": "$22 - $36 an hour","salaryMin": 22,"salaryMax": 36,"salaryPeriod": "hour","salaryCurrency": "USD","salaryMinAnnual": 45760,"salaryMaxAnnual": 74880,"salarySource": "indeed","workArrangement": "onsite","jobType": "Full-time","jobTypes": ["Full-time", "Part-time"],"postedAt": "2026-10-04T05:00:00.000Z","skills": ["CPR Certification", "BLS Certification", "RN License", "Pediatrics", "Tube feeding"],"jobUrl": "https://www.indeed.com/viewjob?jk=08f32bd70b67b819"}
How is salary normalized?
- Indeed's own structured pay when the posting has it (
salarySource: "indeed"). - Otherwise a built-in parser reads the displayed text in many formats: ranges, "from"/"up to",
Ksuffixes,£ € ₹and other currencies, European45.000 €and Indian5,00,000number formats, hourly/daily/weekly/monthly/yearly (salarySource: "parsed"). - Optional AI enrichment (off by default): turn on AI enrichment with Claude and add your own Anthropic API key. Claude then fills in pay that appears only in the description, remote/hybrid hints and extra skills (
salarySource: "llm"). This runs on your Anthropic account at roughly $0.002 per job with Claude Haiku.
Annualized values assume 2,080 hours, 260 days, 52 weeks or 12 months per year.
How much does it cost to scrape Indeed?
The actor uses pay-per-result pricing: $0.003 per job saved ($3 per 1,000). Platform usage, including the residential proxy, is included in that price. The Apify free plan's monthly credit covers about 1,500 jobs.
To cap your spend, set Max results or a maximum charge per run in the run options. The actor stops cleanly when it reaches either limit.
How many results can I get?
Indeed shows logged-out visitors only the first page of results for any search. To get past that, the actor runs several first-page searches that slice your query in different ways (newest first, by distance, job type and experience level) and removes duplicates. A typical city-level search returns 100–400 unique jobs. Broad national searches return more. The run stops by itself once new searches stop turning up new jobs, so you never pay for duplicates.
For larger collections, run several searches with narrower keywords or locations.
Tips
- Use residential proxy (the default). Indeed blocks datacenter IPs.
- Turn off Fetch full job details for faster, cheaper-to-run searches when you only need the title, company, location and salary.
- Set Location to
Remoteto search remote jobs. - Schedule the actor daily with Posted within = 1 to build a running feed of new jobs.
Guides
Guide 1: Build a salary benchmark for a role and city
- Set Keywords to the role (for example
data analyst) and Location to the city. - Set Max results to
300and Posted within (days) to30. - Download the dataset as CSV or Excel. Use
salaryMinAnnualandsalaryMaxAnnualto compare hourly and yearly postings on the same scale, andworkArrangementto compare work arrangements.
{"keywords": "data analyst","location": "Chicago, IL","maxResults": 300,"postedWithinDays": 30}
Guide 2: Get a daily feed of new jobs
- Set your keywords and location, and set Posted within (days) to
1. - Save the input as a task and add a daily Schedule in Apify Console.
- Connect it to Google Sheets, Slack or email from the Integrations tab, so new postings arrive automatically each morning.
Guide 3: Compare the job market across countries
Pick another Indeed country site (for example uk.indeed.com or ca.indeed.com) and run the same keywords. Salaries are normalized to min/max per period in each run, so you can compare ranges between markets after converting currency.
Guide 4: Research which skills employers ask for
Keep Fetch full job details on. Each job includes a skills list taken from the description. Count the most common skills across a few hundred postings to see what employers want for a role.
Run it from code (API)
Replace YOUR_APIFY_TOKEN with your token from Console > Settings > API & Integrations. This call runs the actor and returns the results in one request:
curl -X POST "https://api.apify.com/v2/acts/tidydata-labs~indeed-jobs-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"keywords":"nurse","location":"Austin, TX","maxResults":50}'
You can do the same with the apify-client package for Python or JavaScript, or connect the actor to Make, Zapier, n8n, Google Sheets or a webhook from the Integrations tab.
Is it legal to scrape Indeed?
This actor collects only publicly available job postings that anyone can see without an account, and it does not collect personal data about job seekers. Job postings can still contain personal details, such as a recruiter's name, so make sure your use of the data complies with GDPR, CCPA and other applicable laws. Read Apify's blog post on the legality of web scraping for more.
Integrations and API
Connect the results to Google Sheets, Slack, Zapier, Make, Airtable or a webhook, or call the actor from code with the Apify API and the Python or JavaScript client.
Feedback
Found a bug or need a field that's missing? Open an issue on the Issues tab. We usually reply within a day.