Indeed Job Scraper
Pricing
from $2.80 / 1,000 results
Indeed Job Scraper
Scrape Indeed jobs from 65 countries with no login or cookies. Get title, company, salary, benefits, skills, apply link and description from search links or keywords. Bulk input, date filters, auto proxy switching. Export JSON, CSV or Excel for recruiting and market research.
Pricing
from $2.80 / 1,000 results
Rating
0.0
(0)
Developer
Data Minds
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
18 hours ago
Last modified
Categories
Share
Indeed Job Scraper is an Apify Actor and Indeed job scraper that extracts job listings from 62 Indeed country sites: title, company, salary, workplace type, benefits, skills, apply link and full description. Paste Indeed search links or type job titles, add filters, and export JSON, CSV or Excel. From $0.0028 per job ($2.80 per 1,000) on the Gold plan; $0.004 on the Free plan. ๐ Try it free
What can Indeed Job Scraper do?
- ๐ Scrape Indeed jobs in bulk - add many search links, job titles and locations in one run, with duplicates removed.
- ๐ Cover 62 countries - pick the Indeed country site for phrases; links keep their own country.
- ๐ฐ Extract Indeed salary data - listed pay plus yearly and hourly equivalents, and a pay range read from the posting text when none is listed.
- ๐ Filter by workplace type - keep remote, hybrid or on-site jobs, plus job type, seniority and apply method.
- ๐ข Add company data - size, revenue, industry, website and logo when Indeed shows them.
- ๐ Get the full job description - as plain text, HTML or both.
- ๐ Find fresh postings - limit results to the last N days or hours and sort newest first.
- ๐ Export and automate - JSON, CSV, Excel, API, schedules and webhooks.
What data can I extract from Indeed?
| Field | Description |
|---|---|
๐ท title, normalizedTitle, id | Job title, normalized title and job ID. |
๐ข companyName, companyDetails | Employer name and profile: industry, employee range, revenue, CEO, website, logo, social links, claimed flag. |
๐ formattedLocation, location, jobLocationCity, jobLocationState | Place text and an object with city, state, country, postal code, coordinates and address. |
๐ต salary, salaryText, salaryAnnualMin, salaryAnnualMax, salaryHourlyMin, salaryHourlyMax | Pay range, readable pay text, and yearly and hourly equivalents. |
๐งพ salarySource, salaryFlag, descriptionSalary, payTypes | Where the pay came from, a wide-range flag, pay found in the text, and pay types such as bonus or tips. |
๐ workplaceType, workplaceSource | Remote, hybrid or on-site, and where that was read from. |
๐ jobTypes, workSchedule, shifts, seniority | Full-time, part-time and similar types, schedule, shifts and level. |
๐ experience, education, skills, certifications, requirements | Requirements and skills tagged on the job. |
๐ benefits, socialInsurance, attributes, occupations | Benefits offered, insurance benefits, all job tags and occupations. |
๐ jobUrl, originalApplyUrl, viewJobLink, companyOverviewLink, applyType, jobSourceName | Job link, apply link, relative link, company page, apply method and source name. |
๐ jobDescription, jobDescriptionHTML | Full description as text and as HTML. |
๐
postedAt, publishedAt, pubDate, ageHours, expirationDate, expired | Posting dates, age in hours and expiry. |
๐ฅ urgentlyHiring, highVolumeHiring, isRepost | Hiring flags and repost flag. |
๐งญ searchQuery, searchLocation, country, matchedSearches, scrapedAt, language, trackingKey | Which search found the job, country, language and collection time. |
Fields Indeed does not show for a job are empty. Some fields depend on the options you choose, for example company details and description formats.
What can you do with the data from Indeed?
๐ฏ Salary benchmarking
- Add your job titles to
urlsand your cities tolocations. - Turn on
requireSalaryand setminSalaryto compare yearly pay. - Export the salary columns to Excel and compare ranges.
๐ผ Recruiting and competitor hiring tracking
- Put competitor names in
includeCompanies. - Set
postedWithinDaysto 7 andsortBytodate. - Schedule the run weekly and review new postings and hiring trends.
๐ Job market research and skills demand
- Search a role in several
countryvalues. - Keep
outputFieldstotitle,skills,seniorityandsalaryAnnualMin. - Count skills and levels to study labor market analysis questions.
๐ค Job data for AI
- Leave
includeDescriptionTexton. - Use
workplaceTypesto focus on remote jobs. - Feed the job posting data into your own dataset or model.
How do I use Indeed Job Scraper?
- Open Indeed Job Scraper on Apify and click Try for free.
- Add Indeed search links or job titles to Indeed links or job searches (
urls). - Add
locationsand choose acountryif you typed job titles. - Set Max jobs (
count) and any filters such aspostedWithinDaysorworkplaceTypes. - Click Start and wait for the run to finish.
- Open the Output or Dataset tab and export JSON, CSV or Excel.
How much does it cost to scrape Indeed?
Indeed Job Scraper uses pay-per-event pricing: you pay for each job saved to the dataset, and platform usage is billed in addition.
| Plan | Price per job | Per 1,000 jobs |
|---|---|---|
| ๐ Free | $0.004 | $4.00 |
| ๐ฅ Bronze | $0.0036 | $3.60 |
| ๐ฅ Silver | $0.0032 | $3.20 |
| ๐ฅ Gold, Platinum and Diamond | $0.0028 | $2.80 |
Each run also pays one start event of $0.00005 per GB of memory, minimum one. The default memory is 1,024 MB (1 GB), so a run pays 1 start event = $0.00005.
Example: 500 jobs on the Free plan cost 500 x $0.004 = $2.00, plus the $0.00005 start event.
Is scraping Indeed free?
Indeed Job Scraper is not free: you pay per saved job at the rates above, and the table shows each plan's price. You can set a maximum spend per run on Apify, and the run stops cleanly when the limit is reached. Set Max jobs to control the size of a test run.
How much does Indeed Job Scraper cost per 1,000 results?
1,000 jobs cost $4.00 on the Free plan, $3.60 on Bronze, $3.20 on Silver, and $2.80 on Gold, Platinum and Diamond. Platform usage is billed in addition, and each run adds a $0.00005 start event. Only jobs saved to the dataset are counted for the per-job price.
Input
Only urls is required. It takes Indeed search links, company page links or plain job phrases, and you can mix them. Links keep their keywords, place, radius, sort, posted-date and job-type settings. Single job pages are not supported; use a search link instead.
| Field | Type | Required | Description | Default / example |
|---|---|---|---|---|
urls | array | Yes | Indeed search links (any country site), company page links, or job titles. | ["data analyst"] |
queries | array | No | Extra job titles; each is combined with every location. | [] |
locations | array | No | City, state, region or postal code. Empty searches the whole country. | [] |
country | string | No | Indeed country site used for phrases (62 countries). | us |
radiusKm | integer | No | Distance around each location, 0 to 2000 km. | 25 |
postedWithinDays | integer | No | Only jobs posted in the last N days. | none |
postedWithinHours | integer | No | Only jobs from the last N hours; wins over days. | none |
sortBy | string | No | relevance or date. | relevance |
count | integer | No | Maximum jobs to save in total; empty collects everything. | prefill 10 |
deepSearch | boolean | No | Reach more jobs on big searches. | true |
minSalary, maxSalary | number | No | Yearly pay bounds in local currency; jobs without pay are skipped. | none |
requireSalary | boolean | No | Keep only jobs that show pay. | false |
jobTypes | array | No | For example Full-time, Contract, Internship. | [] |
workplaceTypes | array | No | remote, hybrid, onsite. | [] |
seniority | array | No | Entry level, Mid-level, Senior level. | [] |
applyType | string | No | any, indeed_apply or external. | any |
titleIncludes, titleExcludes | array | No | Keep or drop jobs by words in the title. | [] |
descriptionIncludes, descriptionExcludes | array | No | Keep or drop jobs by words in the description. | [] |
includeCompanies, excludeCompanies | array | No | Keep or drop jobs by company name. | [] |
includeDescriptionText, includeDescriptionHtml | boolean | No | Include the description as text or HTML. | true |
includeCompanyDetails | boolean | No | Include company profile data. | true |
fetchFullDetails | boolean | No | Fill fields that are empty in the first result, such as the repost flag. | true |
salaryFromDescription | boolean | No | Read a clearly stated pay range from the text when no structured pay exists. | true |
outputFields | array | No | Top-level field names to keep. Empty keeps all. | [] |
concurrency | integer | No | Parallel connections, 1 to 8. | 4 |
maxRetries | integer | No | Retries per failed request, 0 to 10. | 3 |
timeoutSec | integer | No | Seconds to wait for each response, 5 to 300. | 45 |
maxScanned | integer | No | Safety stop on jobs examined, including filtered-out ones. | 200000 |
apiKey | string | No | Optional secret value; leave empty unless support gave you one. | none |
proxyConfiguration | object | No | Optional connection settings. | default |
{"urls": ["https://www.indeed.com/jobs?q=registered+nurse&l=Austin%2C+TX&fromage=7","data analyst"],"locations": ["Austin, TX"],"country": "us","radiusKm": 25,"postedWithinDays": 7,"sortBy": "date","count": 10,"workplaceTypes": ["remote", "hybrid"],"requireSalary": true,"includeDescriptionText": true}
Output
Each job is one row in the Apify Dataset, saved as soon as it is ready. The Output tab has separate tables: overview, salary, company, location, job details, benefits (one row per benefit), description, apply links and search info. Export JSON, CSV, Excel, XML or HTML from the Dataset tab or through the API. Values below are fake examples.
{"id": "abc123example","title": "Data Analyst","normalizedTitle": "data analyst","companyName": "Example Company","formattedLocation": "Austin, TX","location": {"city": "Austin","state": "Texas","countryName": "United States","postalCode": "00000","latitude": 30.0,"longitude": -97.0},"salary": { "min": 70000, "max": 90000, "type": "YEAR", "currencyCode": "USD" },"salaryText": "70,000-90,000 USD per year","salaryAnnualMin": 70000,"salaryAnnualMax": 90000,"salarySource": "listed","workplaceType": "hybrid","jobTypes": ["Full-time"],"seniority": "Mid-level","skills": ["SQL", "Excel"],"benefits": [{ "key": "example1", "label": "Health insurance" }],"applyType": "external","jobUrl": "https://www.indeed.com/viewjob?jk=abc123example","originalApplyUrl": "https://example.com/apply","companyOverviewLink": "https://www.indeed.com/cmp/example-company","companyDetails": {"name": "Example Company","industry": "Information Technology","employeeRange": "1,001 to 5,000","websiteUrl": "https://example.com"},"postedAt": "2026-10-10T08:00:00Z","ageHours": 48.0,"isRepost": false,"searchQuery": "data analyst","searchLocation": "Austin, TX","country": "US","matchedSearches": ["'data analyst' @ Austin, TX"],"scrapedAt": "2026-10-12T08:00:00Z"}
A summary record named SUMMARY is saved in the key-value store with counts such as jobs saved, jobs billed, searches, rows examined, filtered-out jobs, pages, failed pages, notes and duration.
Notes and limitations
- Fields Indeed does not publish for a job come back empty or as empty lists.
- Pay is read from the posting text only when
salaryFromDescriptionis on; those rows saysalarySourceisdescription. minSalaryandmaxSalaryskip jobs without pay.countlimits the total jobs saved across all searches.- Single job pages are not accepted as input.
- Results can differ from what you see in a browser, because location, date and country choices change what Indeed returns.
- Very large searches may not return every job; narrow the location or phrase to reach more.
FAQ
Is it legal to scrape Indeed?
Indeed Job Scraper collects publicly available job listings that any visitor can see. Legality depends on your country, your use of the data and the site's terms; GDPR and CCPA may apply. This is not legal advice; read Apify's guide to scraping legality and ask a lawyer if unsure.
Do I need an Indeed account, cookies or an API key to scrape Indeed?
No. Indeed Job Scraper needs no Indeed login and no cookies, so you can scrape Indeed without login. The optional access key field is for a value provided by support and can stay empty. You only need an Apify account to run the Actor, start it from the Console and download your results.
How many Indeed jobs can I scrape per run?
Set Max jobs (count) to the number you need, or leave it empty to collect everything the searches return. A safety stop, maxScanned, ends the run after 200,000 jobs examined by default. You can also set a maximum spend per run on Apify to control cost.
Can I export Indeed jobs to CSV or Excel?
Yes. Every run saves a dataset that you can export from the Dataset tab as JSON, CSV, Excel, XML or HTML, so you can export Indeed jobs to CSV or Excel, or open them in Google Sheets. The same data is available through the API, and outputFields lets you keep only the columns you want.
Can I schedule runs, use webhooks or integrations?
Yes. Apify lets you schedule Indeed Job Scraper to run daily or weekly for job monitoring, trigger webhooks when a run finishes, and connect results to tools such as Make, n8n or Zapier. Combine postedWithinDays with a schedule to collect only recent postings and track hiring trends.
Can I use Indeed Job Scraper with the Apify API or an MCP server?
Yes. You can start runs, read the dataset and manage schedules with the Apify API, and connect the Actor to AI tools through an MCP server. The Indeed jobs API alternative works the same way as any Apify Actor; see the Apify API documentation for details.
Why am I getting fewer jobs than expected?
Filters remove jobs before they are saved, and the run log lists how many were filtered out. Check requireSalary, minSalary, workplaceTypes and the title or description filters, widen the postedWithinDays window, and keep deepSearch on. Very large searches may need a narrower location or phrase.
Indeed Job Scraper not working?
First check your input: urls needs at least one Indeed search link or job phrase, and single job pages are not supported. Then read the run log for the message. If the problem continues, open the Issues tab of this Actor with your run link and input, and the maintainers will look into it.
Related Actors
| Actor | Use it to |
|---|---|
| ๐ Workday Jobs Scraper | Turn Workday careers portals into a clean job dataset with titles, companies, locations, salaries, skills and descriptions. |
| ๐ Website Lead Intelligence | Turn company website addresses into scored leads with emails and named decision-makers, for example for employers found in your Indeed data. |
Support and disclaimer
Found a bug or need a feature? Open an issue in the Issues tab. For custom solutions, integrations or questions, contact hello.dataminds@gmail.com. Indeed Job Scraper is independent and not affiliated with Indeed; trademarks belong to their owners. It collects publicly available data, and you are responsible for complying with applicable laws and the site's terms.
Last updated: 2026-10-17