Indeed Jobs Scraper: Salaries, Companies & 62 Countries
Pricing
from $0.05 / 1,000 job saveds
Indeed Jobs Scraper: Salaries, Companies & 62 Countries
Scrape Indeed jobs in 62 countries from $0.05 per 1,000. Indeed's own salary data, full descriptions, company size, revenue and ratings, apply links. Date, job type, remote and level filters. No 1,000-result limit, no login. Export to CSV, Excel or JSON.
Pricing
from $0.05 / 1,000 job saveds
Rating
0.0
(0)
Developer
Epic Scrapers
Maintained by CommunityActor stats
1
Bookmarked
10
Total users
4
Monthly active users
4 days ago
Last modified
Categories
Share
Indeed Jobs Scraper: jobs, salaries and company data from 62 Indeed sites
Indeed Jobs Scraper turns any Indeed job search into a spreadsheet. You get every job Indeed shows for your search, with the full description, Indeed's own salary data, the employer's profile (size, revenue, CEO, website, rating) and the direct apply link. Search any of Indeed's 62 country sites, filter by date, job type, remote work and experience level, and collect thousands of jobs per search.
- Salaries as numbers, straight from Indeed.
salaryMin,salaryMax, currency and pay period come from Indeed's structured pay data, not from guessing at text. When a job has no pay data, the actor looks for a salary in the description. - 62 countries. United States, United Kingdom, Canada, Australia, Germany, France, India, Japan, Brazil and 53 more Indeed sites, each with local salaries and currencies.
- No 1,000-result limit. Indeed stops every search at about 1,000 jobs. This actor continues the search in posting-date windows, so a broad search returns several thousand unique jobs.
- Filters that Indeed applies itself. Date posted, job type, remote or hybrid and experience level are applied by Indeed, so every saved job matches and you never pay for jobs that get thrown away.
- Company data on every job. Employer name, Indeed profile, logo, website, industry, employee count, revenue, CEO, headquarters and rating, without extra requests.
- From $0.05 per 1,000 jobs. No subscription, no Indeed account, no proxy setup. Export to JSON, CSV, Excel or Google Sheets, or use the API.
What can you do with Indeed Jobs Scraper?
| Goal | How |
|---|---|
| Salary benchmarking | Search a role in several cities or countries and compare salaryMin and salaryMax by salaryType. |
| Recruiting and sales leads | Find companies hiring for a role, with companyWebsite, companyEmployees, companyRevenue and companyCeo. |
| Job market and labor research | Count jobs by occupations, normalizedTitle, location or skill (attributes) over time. |
| Daily job alerts and monitoring | Schedule a search with fromDays: 1 and get only new jobs every day. |
| Job boards and aggregators | Feed full descriptions, locations with coordinates, and apply links into your own site. |
| Competitor hiring intelligence | Search company:Name to see which roles a competitor is hiring for and where. |
| AI job matching | Give an AI model the descriptions, skills and salaries to match candidates to jobs. |
How it compares
| What you need | Indeed Jobs Scraper | Typical Indeed scrapers |
|---|---|---|
| Jobs per search | Several thousand (continues past Indeed's ~1,000 limit) | Up to ~1,000 |
| Countries | 62 Indeed sites | Often the US only, or a few markets |
| Salary | Indeed's own numbers: min, max, currency, period | Often only the text, such as "$20 an hour" |
| Filters | Date, job type, remote, hybrid, level, all together | Some, often applied after scraping |
| Company size, revenue, CEO | On every job, no extra cost | Varies |
| Indeed search syntax | title:, company:, "exact", -exclude | Varies |
| Price | From $0.05 per 1,000 jobs | $0.05 to $5 per 1,000 jobs |
Indeed doesn't offer a public job search API: its Publisher API is closed to new users. This actor uses the same data Indeed's own mobile app shows and gives it to you as clean, structured rows.
Quick start
- Click Try for free and sign in to Apify. The free plan's monthly credit covers tens of thousands of jobs.
- Enter a Search query, such as
software engineer, and a Location, such asSan Francisco, CA. - For a first run, keep Max results at
50. - Click Start. When the run finishes, open the Output tab and export the data.
{"query": "software engineer","location": "San Francisco, CA","maxResults": 50}
The country is detected from the location. To choose it yourself, set Country, for example GB for uk.indeed.com.
What data can you extract?
Every row is one job:
| Group | Fields |
|---|---|
| Job | jobKey, title, normalizedTitle, jobUrl, applyUrl, isIndeedApply, descriptionText, descriptionHtml (optional), jobType, experienceLevel, isRemote, isHybrid, attributes, occupations |
| Salary | salary.salaryText, salary.salaryMin, salary.salaryMax, salary.salaryCurrency, salary.salaryType (hourly, daily, weekly, monthly, yearly), salary.salarySource |
| Company | companyName, companyUrl, companyLogoUrl, companyHeaderUrl, companyWebsite, companyIndustry, companyEmployees, companyRevenue, companyCeo, companyHeadquarters, companyDescription, rating |
| Location | location.city, location.state, location.postalCode, location.streetAddress, location.country, location.countryCode, location.latitude, location.longitude, formatted addresses |
| Timing | postedAt, datePublished, age, postedToday, expired |
| Hiring | isUrgentHire, isHighVolumeHiring, source, referenceNumber |
| Run | market, locale, language, searchQuery, searchLocation, scrapedAt |
In a test search for registered nurses in Houston (100 jobs), 58 had a salary, 97 had an Indeed company profile, 84 had the employee count, 81 the CEO and 82 the company website.
Search tips
Use Indeed's search syntax
The Search query accepts the same syntax as Indeed's search box:
| Query | Finds |
|---|---|
data engineer | Jobs mentioning both words |
"data engineer" | The exact phrase |
title:(data engineer) | Both words in the job title |
title:("data engineer" or "data scientist") | Either phrase in the title |
nurse -travel | Nurse jobs without the word "travel" |
company:Google | Jobs at a company |
Collect more than 1,000 jobs
Indeed stops each search at about 1,000 jobs. Set Max results above 1,000, or to 0 for everything, and the actor continues the search in posting-date windows, newest first, until it has your number or every matching job. A nationwide search for nurse returned 2,500 unique jobs in about 70 seconds. Above 1,000 results the jobs come newest first, whatever the sort setting.
Search outside the US
Pick a Country, or enter a location and let the actor detect it. Write the query in the site's language for the best results (Softwareentwickler on de.indeed.com, エンジニア on jp.indeed.com). Salaries come in the local currency. The radius is in miles on the US and UK sites and in kilometres elsewhere, as on Indeed.
Supported Indeed sites: United States, United Kingdom, Canada, Australia, India, Ireland, New Zealand, Singapore, Malaysia, Philippines, South Africa, Nigeria, Pakistan, Hong Kong, United Arab Emirates, Saudi Arabia, Qatar, Kuwait, Bahrain, Oman, Egypt, Germany, Austria, Switzerland, France, Belgium, Luxembourg, Morocco, Italy, Spain, Mexico, Argentina, Chile, Colombia, Peru, Ecuador, Uruguay, Venezuela, Costa Rica, Panama, Netherlands, Brazil, Portugal, Poland, Czech Republic, Hungary, Romania, Greece, Turkey, Sweden, Norway, Denmark, Finland, Japan, South Korea, Taiwan, China, Thailand, Vietnam, Indonesia, Israel and Ukraine.
Scrape specific jobs
Paste Indeed job links (from any Indeed site) or 16-character job keys into Job URLs or job keys. Each job is fetched from its own country's site, so its salary comes back in the right currency. You can use this with or without a search.
Monitor new jobs with scheduled runs
Run the same search every day and get only the jobs posted since the last run.
1. Save your input as a task
Set up a search with Sort by Date and Posted within (days) 1, then click Save as a new task.
2. Schedule the task
In Apify Console, go to Schedules, click Create new, choose how often to run, and add your task. See Schedules and How to create a schedule.
Watch how to schedule an Actor:
| Use case | Frequency | Cron expression | Posted within |
|---|---|---|---|
| Daily job alerts | Daily | 0 7 * * * | 1 |
| Weekly hiring report | Weekly | 0 7 * * 1 | 7 |
| Fast-moving roles | Twice a day | 0 7,19 * * * | 1 |
3. Send the results where you need them
Connect Google Sheets, Slack, email, Make, Zapier or n8n in the task's Integrations tab:
Every row has jobKey, so you can drop jobs you have already seen when combining runs.
Input reference
| Field | Type | Default | Effect |
|---|---|---|---|
query | String | Empty | Job title, skill or company, with Indeed's search syntax. Either query or urls is required. |
location | String | Empty | City, state, region or postal code. Empty searches the whole country. |
country | String | Detect | Two-letter code of the Indeed site, such as US, GB, DE. Empty: detected from location, or the US. |
maxResults | Integer | 50 | Maximum jobs from the search. Above 1,000 the search continues in date windows. 0 means every job. |
sort | String | "RELEVANCE" | "RELEVANCE" or "DATE" (newest first). |
fromDays | Integer | 0 | Only jobs posted in the last N days. 0 means any date. |
radius | Integer | 25 | Distance around location, in miles (US, UK) or kilometres (other sites). |
jobType | String | Any | "fulltime", "parttime", "contract", "temporary", "internship" or "perdiem". |
remote | String | Any | "remote" or "hybrid". |
level | String | Any | "no_experience", "entry_level", "mid_level" or "senior_level". Jobs without a level tag are left out. |
urls | Array of strings | Empty | Indeed job links or job keys, fetched in addition to the search. |
searchCompanyInfo | Boolean | false | Look up employers by name for the few jobs Indeed doesn't link to a company profile. One request per new company name. |
includeDescriptionHtml | Boolean | false | Add descriptionHtml with the original formatting. |
Ready-to-run examples
New remote jobs from the last 24 hours
{"query": "product designer","remote": "remote","sort": "DATE","fromDays": 1,"maxResults": 500}
Salary benchmark for one role across the UK
{"query": "title:(data analyst)","country": "GB","jobType": "fulltime","maxResults": 1000}
Open the Salaries view and compare salaryMin and salaryMax for rows where salaryType is yearly.
Entry-level jobs in Toronto
{"query": "marketing","location": "Toronto, ON","level": "entry_level","radius": 50,"maxResults": 200}
Every nurse job posted this week in Texas
{"query": "registered nurse","location": "Texas","fromDays": 7,"maxResults": 0}
What a competitor is hiring for
{"query": "company:Stripe","maxResults": 300}
Analyze the results with ChatGPT or Claude
Export the dataset as CSV (the Salaries or Companies view keeps it small) and attach it to a chat with an AI assistant. Some prompts to start with:
Salary report. "These are Indeed jobs for one role. Using only rows with salaryType yearly, give the median salaryMin and salaryMax by location.city, and list the five best-paying employers."
Skills in demand. "Count how often each value in attributes appears. List the 20 most requested skills and the job titles that ask for them most."
Sales leads. "Group these jobs by companyName. For each company with three or more openings, give companyWebsite, companyEmployees, companyIndustry and the roles it is hiring for."
The dataset is also available through the Apify API and integrations such as Make, Zapier and n8n, so you can feed it into an automated workflow. AI agents can run this actor through the Apify MCP server.
Output
Results go to the run's default dataset. Use the views Overview, Salaries, Companies, or Apply links & hiring signals, or export everything as JSON, CSV, Excel, XML or HTML.
This is a real row from a registered nurse search in Houston, TX on October 2, 2026, with the description and attributes shortened:
{"jobKey": "804720bae170b72f","title": "Full - Time Home Infusion RN - Admissions RN","normalizedTitle": "registered nurse - admissions","jobUrl": "https://www.indeed.com/viewjob?jk=804720bae170b72f","applyUrl": "https://optioncare.wd1.myworkdayjobs.com/NavenHealth/job/Houston-TX/Full---Time-Home-Infusion-RN---Admissions-RN_R37166","isIndeedApply": true,"companyName": "Option Care Enterprises, Inc.","companyUrl": "https://www.indeed.com/cmp/Naven-Health,-Inc","companyLogoUrl": "https://d2q79iu7y748jz.cloudfront.net/s/_squarelogo/256x256/5cc75714ec4231478b1f60a3cc0612b9","companyWebsite": "https://navenhealth.com/","companyEmployees": "1,001 to 5,000","companyRevenue": "Decline to state","companyCeo": "Tim Kingas, Vice President of Operations","companyHeadquarters": "Sarasota, FL","companyDescription": "Naven Health is one of the largest home infusion nursing networks in the country with more than 1,600 infusion nurses providing exceptional care throughout all 50 states.","rating": { "rating": 4.2, "count": 71 },"location": {"countryCode": "US","country": "United States","state": "TX","city": "Houston","postalCode": "77338","streetAddress": "123 West Main Street","formattedAddressShort": "Houston, TX","formattedAddressLong": "Houston, TX 77338","latitude": 29.99817,"longitude": -95.269394},"isRemote": false,"isHybrid": false,"jobType": ["Full-time"],"experienceLevel": ["Entry level"],"attributes": ["CPR Certification", "Nursing", "Care plan evaluation", "Staff supervision"],"occupations": ["Healthcare Occupations","Patient Care Nursing Occupations","Nursing Occupations","Registered Nurses"],"salary": {"salaryText": "$40.78 - $67.97 an hour","salaryType": "hourly","salaryMin": 40.78,"salaryMax": 67.97,"salaryCurrency": "USD","salarySource": "COMPENSATION_FIELD"},"descriptionText": "Delivering an exceptional infusion experience, everywhere. Delivering on our unyielding commitment, always.\n\nNaven Health is a nationwide home infusion nursing…","datePublished": "2026-10-01","postedAt": "2026-10-01T18:44:42.057Z","age": "19 hours ago","postedToday": true,"expired": false,"isUrgentHire": false,"isHighVolumeHiring": false,"source": "Naven Health","referenceNumber": "JOB_POSTING-3-97465","language": "en","market": "US","locale": "en-US","searchQuery": "registered nurse","searchLocation": "Houston, TX","scrapedAt": "2026-10-02T14:03:08.720Z"}
Notes on fields
jobUrlis the job's page on Indeed.applyUrlis where Indeed sends applicants: the employer's career site, or the Indeed page for jobs with Indeed Apply (isIndeedApply).salaryisnullwhen neither Indeed's pay data nor the description has a salary.salarySourcesays where it came from:COMPENSATION_FIELD(Indeed's pay data),ESTIMATED(Indeed's estimate) orDESCRIPTION(found in the text).jobTypeandexperienceLeveluse the same English labels on every Indeed site.attributeshas all of Indeed's tags for the job (skills, benefits, schedules, education) in the site's language.companyNameis the name on the job ad. The other company fields come from the employer's Indeed profile, which can belong to a parent company or brand.postedAtis when the job appeared on Indeed, in UTC.postedTodaymeans posted in the last 24 hours.ratingis the employer's overall Indeed rating and its number of reviews.- Missing values are
null. Every row hasscrapedAtin UTC.
FAQ
Why did I get fewer jobs than Max results?
Your search has fewer matching jobs. Filters, a small radius or a narrow query all reduce results, and experience level leaves out jobs Indeed hasn't tagged. The log shows how many jobs Indeed returned. Try a broader query or a larger radius.
How many jobs can I get?
As many as Indeed has for your search. Below 1,000, a run reads them page by page; above that, it continues in posting-date windows. Set Max results to 0 for everything, and set a maximum cost per run if you want a ceiling.
How fast is it?
Each page of 100 jobs takes 1–4 seconds, so 1,000 jobs take about 20–40 seconds. A 2,500-job nationwide search took about 70 seconds.
Do I need an Indeed account, an API key or proxies?
No. The actor doesn't log in and handles connections and retries itself.
Is there an official Indeed API for job listings?
Indeed's Job Search (Publisher) API is closed to new users. This actor uses the data Indeed's mobile app shows and returns it as structured rows.
Why are some salaries missing?
Many employers don't publish pay. When Indeed has no pay data for a job, the actor looks for a salary in the description. In our US tests, 55–60% of jobs had a salary; it varies by role and country.
Can I scrape Indeed company reviews or resumes?
No. This actor collects job listings and the employer profile shown with them.
Is it legal to scrape Indeed?
The actor collects publicly visible job listings and company information, and no personal data about job seekers. You are responsible for how you use the data, including Indeed's terms and laws such as GDPR.
Cost
This actor uses pay-per-event pricing: you pay per job saved, and the price falls on higher Apify plans. There's no subscription and no monthly fee for the actor.
| Apify plan | Per 1,000 jobs |
|---|---|
| Free | $0.10 |
| Starter | $0.08 |
| Scale | $0.06 |
| Business and up | $0.05 |
Each run also has a start fee of $0.001. Filters are applied by Indeed, so filtered jobs are never charged. Set a maximum cost per run; the actor stops cleanly when it's reached and keeps everything collected so far. The Pricing tab always shows the current prices.
Support
Report problems or request features in the Issues tab. Include the run ID, the input and what you expected. We read every issue.
This actor is not affiliated with or endorsed by Indeed, Inc. or Recruit Holdings. "Indeed" is a trademark of Indeed, Inc.