Indeed Jobs Scraper - Salaries, Company Data & Descriptions
Pricing
from $6.15 / 1,000 results
Indeed Jobs Scraper - Salaries, Company Data & Descriptions
Indeed jobs scraper and job postings API. Search Indeed by keyword, location, country, job type, remote, salary and date. Get full job descriptions, parsed salary data, benefits, skills, company profiles (CEO, revenue, size) and apply URLs across 15 countries. No login or API key. JSON, CSV, Excel.
Pricing
from $6.15 / 1,000 results
Rating
5.0
(1)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
15 hours ago
Last modified
Categories
Share
Indeed Jobs Scraper - Salaries, Company Data & Descriptions
Here is one real result, with the fields the actor returns:
{"jobId": "1869108ab3292b8a","title": "Private Duty Nursing RN/LVN - Round Rock, $1,000 sign on bonus","company": "Strive Health Services, LLC","companyId": "5f25398974d5e0cc","location": "Round Rock, TX","city": "Round Rock","state": "TX","country": "us","postalCode": null,"isRemote": false,"jobLocationType": "remote","employmentType": ["Part-time","Full-time"],"salaryText": "$26 - $39 an hour","salaryMin": 26,"salaryMax": 39,"salaryPeriod": "hourly","salaryCurrency": "USD","salaryEstimated": false,"occupationalCategory": "Registered Nurses, Licensed Practical Nurses","skills": ["Critical & Intensive Care","Home Health"],"qualifications": ["RN License or LVN License","RN License or LVN License (Required)","Work authorization (Required)"],"shift": ["Night shift","Day shift","Overnight shift"],"schedule": ["Night shift","Day shift","Monday to Friday","3x12","4x12","Weekends as needed","Rotating weekends","5x8","Holidays","Overnight shift"],"benefits": ["Referral program","Health insurance","Paid time off","Vision insurance","Dental insurance","Life insurance","Paid holidays","Flexible schedule"],"description": "Strive Health Services, LLC is a family owned and operated homecare agency located in Georgetown, TX. With a focus in Private Duty Nursing, Strive employs Registered Nurses and Licensed Vocational ...","companyRating": 3.9,"companyReviewCount": 35,"companyLogo": "https://d2q79iu7y748jz.cloudfront.net/s/_squarelogo/256x256/197282525b65bc02a71a3883235ccb45","companyCeo": "Sierrah Edmonds","companyFoundedYear": 2017,"companyIndustry": "Healthcare","companyRevenue": null,"companySize": "1 to 51","companyHeadquarters": "Georgetown, TX","companyWebsite": "https://www.strivehs.com","companyDescription": "Strive Health Services, LLC is a family owned and operated licensed homecare agency specializing in Private Duty Nursing since ...","relativeDate": "19 days ago","postedDate": "2026-08-05T05:00:00.000Z","validThrough": null,"isExpired": false,"isUrgentlyHiring": false,"isNewJob": false,"easyApply": true,"directApply": true,"applyType": "easy_apply","sponsored": true,"isStaffingAgency": false,"jobKey": "1869108ab3292b8a","url": "https://www.indeed.com/viewjob?jk=1869108ab3292b8a","indeedUrl": "https://www.indeed.com/viewjob?jk=1869108ab3292b8a","companyUrl": "https://www.indeed.com/cmp/Strive-Health-Services-1","applyUrl": "https://www.indeed.com/applystart?jk=1869108ab3292b8a&from=jobsearch","externalApplyUrl": null,"latitude": null,"longitude": null,"searchInput": "registered nurse | Austin, TX","observedAt": "2026-08-25T20:16:46.164Z","error": null}
The most complete Indeed scraper and job postings API for extracting Indeed jobs data at scale, with no login and no API key. It returns every field a posting exposes, including the full job description as text and HTML, salary data parsed into salaryMin, salaryMax, salaryPeriod and salaryCurrency, benefits, skills, qualifications, shift and schedule, the occupational category, the apply URL, and an optional full company profile (CEO, founded year, industry, company size, headquarters and website) for recruiting and talent-sourcing workflows. It gives you the widest set of input filters of any Indeed scraper: keyword and location lists, 15 country sites, direct search and job URLs, job type, experience level, remote or onsite, minimum salary, date posted, radius, company and staffing filters.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- How we compare
- Quickstart
- Input reference
- Output reference
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
The actor searches Indeed for one or more keywords across one or more locations, in any of 15 country sites, applies the filters you pass, and writes one normalized record per posting. You can also paste direct Indeed search, company or job URLs. Search results already carry title, company, location, salary parsed into numbers, company rating and review count, posting date and a snippet. With withDetails on (default), each posting is opened to add the full description, employment type, benefits, skills, qualifications, shift, schedule, occupational category, apply URL and expiry.
Two optional enrichments reuse the details fetch: scrapeCompanyDetails adds the employer profile (CEO, revenue, industry, founded year, company size, headquarters, website), and resolveApplyUrl follows Indeed's apply redirect to the employer or ATS site. Three AI add-ons (job summary, skills and seniority, salary estimate) are available on paid Apify plans and are billed only when they produce output. No login, cookies or API key are required.
How we compare
Objective comparison against the most-installed direct Indeed scrapers on the Apify Store. Figures are the adoption and list prices shown on each actor's Store page at the time of writing and can change.
| Capability | This actor (scrapers_lat) | misceres/indeed-scraper | curious_coder/indeed-scraper | memo23/apify-indeed | dataharbor/indeed-scraper |
|---|---|---|---|---|---|
| Keyword + location search | Yes (multi keyword and multi location) | Yes | Yes | URL only | Yes |
| Direct search / job URLs | Yes (both) | Yes | No | Yes (URL driven) | Yes |
| Country sites | 15 | Many | Many | via URL | Many |
| Job type filter | Yes | No | No | via URL | No |
| Experience level filter | Yes | No | No | via URL | No |
| Remote / onsite filter | Yes | No | No | via URL | No |
| Minimum salary filter | Yes | No | No | No | No |
| Date posted filter | Yes | No | Yes | via URL | Yes (max age) |
| Radius filter | Yes | No | Yes | via URL | No |
| Company filter | Yes | No | No | No | No |
| Staffing-agency flag / exclude | Yes | No | No | No | Yes |
| Parsed salary min/max/currency | Yes | Yes | Yes | Yes | Yes |
| Full description | Yes | Yes | Yes | Yes | Yes |
| Benefits | Yes | With option | Yes | Yes | With option |
| Skills / qualifications | Yes | No | Yes | Yes | Partial |
| Shift / schedule | Yes | No | Partial | Partial | No |
| Occupational category | Yes | No | Yes | No | No |
| Company profile (CEO, revenue, size, founded) | Yes (opt-in) | No | Partial (CEO) | Yes | With option |
| External apply URL resolved | Yes (opt-in) | With option | Yes | Yes | With option |
| AI summary / skills / salary estimate add-ons | Yes | No | No | No | No |
| Description as HTML and text | Yes (both) | Text | Text | Text | Text |
| Valid fields per record | 70+ | ~30 | 40+ | 40+ | ~30 |
| No charge on failed or empty runs | Yes | Varies | Varies | Varies | Varies |
| Pricing model | Pay per result | Pay per result | Monthly rental + usage | Monthly rental + usage | Pay per result |
Where competitors win, stated honestly:
- Price. misceres lists about 3.00 USD per 1,000 results and curious_coder about 0.73 USD per 1,000. Our pay-per-result price is higher. If raw cost per row is your only concern, they are cheaper.
- Adoption. misceres (tens of thousands of users) and curious_coder (thousands) have far more installs and reviews than this actor. We are newer.
- Results from a single query. Indeed gates pagination past the first organic page for anonymous traffic, so one keyword plus location returns roughly one page of jobs. Scrapers built on heavier or authenticated infrastructure can return more rows from a single query. We offset this by letting you pass many keywords and locations in one run, plus direct URLs, and we never silently truncate.
- Coordinates. We return
latitudeandlongitudeonly when the posting exposes them, so they are frequently null. Some competitors surface coordinates more consistently.
Where we win: the widest set of input filters (job type, experience, remote, salary, company, date, radius, direct URLs and multi-search together), the largest set of valid output fields in a single record, opt-in company profile and AI add-ons, and no charge on failed or empty runs.
Quickstart
Open the actor, paste this into the input, and press Run.
{"keyword": "software engineer","location": "New York","country": "us","maxJobs": 25,"withDetails": true,"scrapeCompanyDetails": true}
Multi-search and direct URLs in one run:
{"keywords": ["registered nurse", "physical therapist"],"locations": ["Austin, TX", "Dallas, TX"],"country": "us","jobType": "fulltime","fromDays": "7","maxJobs": 100,"jobUrls": ["https://www.indeed.com/viewjob?jk=1869108ab3292b8a"]}
Input reference
| Field | Type | Required | Description |
|---|---|---|---|
keyword | string | one of keyword/keywords/searchUrls/jobUrls | Job search keyword, for example "software engineer". |
keywords | array | No | Several keywords in one run. Each is combined with each location. |
location | string | No | City, state, region or postal code. Empty searches the whole country. |
locations | array | No | Several locations in one run. |
country | string | No | Indeed country site: us, uk, ca, au, de, es, mx, br, fr, it, nl, in, ie, sg, nz. |
searchUrls | array | No | Direct Indeed search or company jobs URLs. |
jobUrls | array | No | Direct Indeed job posting URLs (viewjob?jk=...). |
maxJobs | integer | No | Maximum postings across all searches. Free accounts capped at 10 per run. |
withDetails | boolean | No | Open each posting for full detail. Default true. |
sort | string | No | relevance (default) or date. |
fromDays | string | No | Posted within 1, 3, 7 or 14 days. |
jobType | string | No | fulltime, parttime, contract, temporary or internship. |
experienceLevel | string | No | entry_level, mid_level or senior_level. |
remote | string | No | remote, hybrid or onsite. |
radius | integer | No | Miles from the location, max 100. |
salaryMin | integer | No | Drop jobs whose disclosed salary is below this. Unknown-salary jobs kept. |
company | string | No | Only keep jobs whose company name contains this text. |
uniqueCompanies | boolean | No | At most one job per company. |
excludeStaffingAgencies | boolean | No | Drop staffing and recruiting agency postings. |
scrapeCompanyDetails | boolean | No | Add the employer profile (CEO, revenue, industry, founded, size, HQ, website). |
resolveApplyUrl | boolean | No | Resolve the external employer or ATS apply URL. |
withJdSummary | boolean | No | Paid AI add-on. 2 to 3 sentence job summary. |
withSkills | boolean | No | Paid AI add-on. Skills and seniority from the description. |
withSalaryEstimate | boolean | No | Paid AI add-on. Salary estimate when none is disclosed. |
Output reference
| Field | Type | Description |
|---|---|---|
jobId, jobKey | string | Indeed job identifier. |
title | string | Job title. |
company | string | Employer name. |
companyId | string | Encrypted Indeed company id. |
location, city, state, postalCode, country | string | Location parts. |
isRemote, jobLocationType | boolean, string | Remote flag and work setting. |
employmentType | array | Full-time, Part-time, Contract, etc. |
salaryText | string | Salary as shown on Indeed. |
salaryMin, salaryMax | number | Parsed salary bounds. |
salaryPeriod, salaryCurrency | string | Pay period and ISO currency. |
salaryEstimated | boolean | True when the salary is an Indeed estimate. |
occupationalCategory | string | Occupational taxonomy for the role. |
skills | array | Skills / attributes. |
qualifications | array | Qualifications and requirements. |
shift, schedule | array | Shift and schedule attributes. |
benefits | array | Employer benefits. |
description | string | Full job description text. |
descriptionHtml | string | Full job description as sanitized HTML. |
companyRating, companyReviewCount | number | Indeed employer rating and reviews. |
companyLogo | string | Employer logo URL. |
companyCeo, companyRevenue, companyIndustry, companyFoundedYear, companySize, companyHeadquarters, companyWebsite, companyDescription | string, number | Company profile (with scrapeCompanyDetails). |
relativeDate, postedDate | string | Relative and ISO posting date. |
validThrough, isExpired | string, boolean | Application deadline and expiry. |
isUrgentlyHiring, isNewJob, sponsored | boolean | Posting flags. |
easyApply, directApply, applyType | boolean, string | Indeed Apply support and apply type. |
isStaffingAgency | boolean | Heuristic staffing / recruiting flag. |
url, indeedUrl | string | Indeed posting URL. |
companyUrl | string | Indeed company page URL. |
applyUrl | string | Indeed apply URL. |
externalApplyUrl | string | Employer or ATS apply URL (with resolveApplyUrl). |
latitude, longitude | number | Coordinates when exposed. |
searchInput | string | The keyword/location or URL that produced this record. |
observedAt | string | Scrape timestamp. |
Run via API and CLI
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~indeed-jobs-scraper/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"keyword":"software engineer","location":"New York","country":"us","maxJobs":25,"withDetails":true}'
$apify call scrapers_lat/indeed-jobs-scraper --input '{"keyword":"registered nurse","location":"Austin, TX","scrapeCompanyDetails":true}'
Fetch results
$curl "https://api.apify.com/v2/acts/scrapers_lat~indeed-jobs-scraper/runs/last/dataset/items?token=YOUR_TOKEN&format=json"
Export the dataset as JSON, CSV or Excel from the run's Storage tab or the API.
Billing and limits
- Pay per result. You are billed the
resultevent once per returned job, plus thedetailsevent once per posting when the full detail is fetched. - No charge on failure. Failed or empty runs return no billable results. Error rows are written without billing.
- Free preview. Free Apify accounts are capped at 10 results per run. Upgrade for unlimited.
- Spend cap. Set
maxTotalChargeUsdon the run. The actor stops emitting billable results once the cap is reached. - Add-ons. AI add-ons are opt-in, disabled for free accounts, and billed only when they produce output. Company profile and apply-URL resolution reuse the details fetch and add no separate charge.
FAQ and troubleshooting
How many jobs do I get per keyword? Indeed gates pagination past the first organic page for anonymous traffic, so expect roughly one page per keyword plus location. Add more keywords, locations or direct URLs to widen coverage. The actor never silently truncates.
Why are some company profile fields null? Only employers that publish that information on Indeed expose it. Small or unclaimed companies often have no CEO, revenue or founded year listed, so those fields are honestly null.
Why is a salary sometimes missing? Many employers do not disclose pay. When Indeed shows an estimate, salaryEstimated is true.
Do I need a proxy or login? No. Anti-bot handling and proxying are built in. You never configure a proxy, provide cookies or manage an API key.
Can I use this as an Indeed jobs API? Yes. Run it on demand or on a schedule through the Apify API and pull the results as JSON, CSV or Excel. It works as a job listings API and job postings data feed for recruiting, talent sourcing, salary benchmarking and market research, without an official Indeed API key.
Which countries are supported? United States, United Kingdom, Canada, Australia, Germany, Spain, Mexico, Brazil, France, Italy, Netherlands, India, Ireland, Singapore and New Zealand.
More scrapers at scrapers.lat
Explore the full catalog of company, jobs, finance and web data scrapers at scrapers.lat.
This actor is not affiliated with, endorsed by, or sponsored by Indeed. It collects publicly available information only. Use the data in compliance with applicable laws and terms.
