π₯ Indeed Jobs Scraper API/Keyword or URL/No Login (/w EMAILS)
Pricing
from $1.25 / 1,000 results
π₯ Indeed Jobs Scraper API/Keyword or URL/No Login (/w EMAILS)
Indeed jobs + company-leads scraper β search by keyword or URL. Returns salaries, GPS, full descriptions, the resolved external/ATS apply URL, and employer firmographics (CEO, revenue, industry, website) plus optional contact-email enrichment. Clean flat output; hard maxJobs cap.
Pricing
from $1.25 / 1,000 results
Rating
4.6
(6)
Developer
Muhamed Didovic
Maintained by CommunityActor stats
19
Bookmarked
249
Total users
29
Monthly active users
6.6 hours
Issues response
a day ago
Last modified
Categories
Share
π₯ Indeed Jobs Scraper β Search by Keyword or URL [Bypass the 25-job limit]
Search Indeed two ways β type a keyword + country (no URL needed) or paste any Indeed search URL β and get the full result set, not just the first page. This scraper bypasses Indeed's ~25-jobs-per-page cap and returns clean, structured data: salaries, company ratings, full descriptions, GPS coordinates, company profiles, and the real external apply URL (resolved past Indeed's redirect to the employer's own site / ATS).
π‘ One actor, both modes β fill the keyword fields, paste URLs, or both. Related scrapers: Rental version β memo23/apify-indeed-cheerio Β· Keyword-only version β memo23/apify-indeed-cheerio-keywords-ppr Β· Company reviews β memo23/apify-indeed-reviews-ppr
Why use this scraper
- Two ways to search. Type a keyword + country (no URL building required), or paste a real Indeed search URL β both honor every Indeed filter and return the complete result set.
- Every filter. Keyword, location, radius, date posted, posted-by, remote, job type, experience level, minimum salary, sort β set them as fields or bring them in your URL.
- Gets ALL results. Indeed caps a normal search at ~25 jobs per page; this actor pulls the complete result set via deep discovery.
- Resolved external apply URL (optional). For jobs that redirect off Indeed, it follows the redirect chain and returns the final employer/ATS apply URL β rare among Indeed scrapers and invaluable for recruiters and lead-gen.
- Rich company profile. CEO, revenue, industry, website, founding year, employee count, rating and review count.
- Region auto-expansion. A country/region search (e.g.
Scotland,Texas) is automatically fanned out into per-city searches and deduplicated β typically 2β5Γ more unique jobs. - Clean output by default. One flat, tidy row per job (β120 named fields) β ready for CSV / Excel. The raw nested model is available if you prefer it.
- Honest limits.
maxJobsis a hard cap β you are never charged for more rows than you ask for, even with region expansion on.
Two ways to search
Option A β by keyword (no URL needed)
Fill in Positions / keywords + Country, and optionally narrow by location, radius, date posted, job type, remote, experience level, or minimum salary. That's it β the actor builds the search for you.
Option B β by URL
- Go to indeed.com (or your country's Indeed, e.g.
uk.indeed.com). - Search for a role and apply any filters you want (date, remote, salary, job typeβ¦).
- Copy the URL from the address bar and paste it into Start URLs.
Use either mode β or both at once. Every filter is honored and you get the complete result set, well past page one.
Supported inputs
Search by keyword
| Input | What it does |
|---|---|
| Positions / keywords | The role or keywords to search (e.g. registered nurse, python developer) |
| Country | Indeed country domain β 60+ supported |
| Location | City, state/region, or postal code |
| Radius | Miles around the location |
| Date posted | Any time / last 24 h / 3 / 7 / 14 days |
| Posted by | Employer, staffing agency, or both |
| Job type | Full-time, part-time, contract, temporary, internship (multi-select) |
| Remote work | Remote or hybrid |
| Experience level | Entry / mid / senior |
| Minimum salary | Filter to a salary floor, in the country's currency |
| Sort | Relevance, or date (newest first) β ideal for daily runs |
Search by URL
| Input | What it does |
|---|---|
| Start URLs | One or more Indeed search (or individual job) URLs β every filter in the URL is honored |
Options (both modes)
| Input | What it does |
|---|---|
| Expand to cities | Fan a country/region search into per-city searches for 2β5Γ more results (default on) |
| Strict keyword match | Keep only jobs whose title/description match your keyword (drops Indeed's sponsored/related padding) |
| One job per company | Return at most one job per employer β unique companies only |
| Resolve external apply URL | Follow redirects to the real employer/ATS apply link (off by default) |
| Include company details | Add the full company profile (CEO, revenue, industry, websiteβ¦) |
| Enrich with company emails | Best-effort contact email from the company's own website (experimental) |
| Only external jobs | Keep only jobs that apply on an external site |
| Flatten output | Clean flat top-level fields (default) vs the raw nested API model |
| Max jobs | Hard cap on the number of results returned and charged |
Use cases
- Recruiting & sourcing β live openings with the direct apply URL and company profile.
- Lead generation β companies actively hiring, enriched with industry, size, website, and (optionally) a contact email.
- Salary benchmarking β structured salary ranges with currency and pay period.
- Job boards & aggregators β a fresh, deduplicated feed of postings.
- Market & talent research β hiring demand by role, location, and seniority over time.
How it works
- Your search β built from the keyword fields or your Start URLs (and, with expansion, its per-city variants) β is loaded via Indeed's mobile endpoints.
- The actor pulls the full result set, beyond the first page.
- Each job is opened for full detail β description, salary, company, ratings, location/GPS.
- If enabled, it resolves the external apply URL by following Indeed's redirect chain.
- Results are deduplicated by job key, capped at
maxJobs, and written to the dataset (flat by default, or the raw nested model).
Input configuration
Set inputs in the visual Input tab, or pass JSON via the API.
Search by keyword:
{"position": "registered nurse","country": "United States","location": "Texas","datePosted": "7","jobType": ["FULLTIME"],"sort": "date","maxJobs": 200}
Search by URL:
{"startUrls": [{ "url": "https://www.indeed.com/jobs?q=software+engineer&l=Remote&fromage=3" }],"includeCompanyDetails": true,"expandToCities": true,"maxJobs": 1000}
Output overview
Each row is one job β clean and flat by default (set flattenOutput: false for the raw nested model). You get the job, its parsed salary, the company and its profile, the location with coordinates, and apply links. A live sample is always available on the actor's Output tab after any run.
Key output fields
| Field | Description |
|---|---|
positionName / normTitle | Job title |
company | Employer name |
salary, salaryMin, salaryMax, salaryType, currency | Parsed compensation |
jobType | Full-time / Part-time / Contract / β¦ |
remote | Remote flag |
location, city, countryCode, postalCode, latitude, longitude | Where the job is |
datePublished, dateOnIndeed | When it was posted |
jobDescription, jobDescriptionHtml | Full description (text + HTML) |
requirements, benefits | Parsed requirements & benefits |
companyHeaderRating, reviewsCount | Employer rating & review count |
companyDetailsCeoName, companyDetailsRevenue, companyDetailsIndustry, companyDetailsWebsite, companyDetailsEmployeesCount, companyDetailsFoundedYear | Company profile (with includeCompanyDetails) |
externalApplyUrl, externalApplyLink | Resolved external/ATS apply URL (with resolveExternalApplyUrl) |
url, jobUrl | Canonical Indeed listing URL |
FAQ
Do I need to build a URL? No. Just fill Positions / keywords + Country (Option A) and the actor builds the search for you. Prefer to paste a ready-made Indeed URL? Use Start URLs (Option B). Either works.
How many jobs can I get per search? The full result set the search exposes β this actor is built specifically to get past the ~25-per-page cap.
Do all Indeed filters work? Yes. Whether you use the keyword fields or paste a URL, every filter (date, remote, salary, job type, experience level, posted-by, sortβ¦) is applied exactly as on Indeed.
I searched a whole country/region β will it find more than the first page shows? Yes. With Expand to cities on (default), a region search is fanned out into per-city searches and deduplicated, typically yielding 2β5Γ more unique jobs.
If I set Max jobs, could I be charged for more?
No. maxJobs is a hard cap β the actor stops at exactly that many results and never pushes or charges beyond it, even with region expansion on.
Why do I see a few jobs that don't match my keyword? Indeed injects sponsored and related jobs into every result page. Enable Strict keyword match to drop them.
Can I export to CSV / Excel? Yes β via Apify's dataset export (JSON, CSV, Excel) or the API.
Support
- Report an issue
- Request a customization or a private API (no Apify fee, usage only): muhamed.didovic@gmail.com
- Need a different site scraped? Email me: muhamed.didovic@gmail.com
Explore more of my scrapers
- Indeed Jobs Scraper β Search by Keyword (no URL needed)
- Indeed Comprehensive Crawler
- Indeed Company Reviews Scraper
β οΈ Disclaimer
This scraper collects only publicly available job data from Indeed. It does not access private, gated, or personal data, and is intended for lawful purposes such as recruitment, market research, and analytics. You are responsible for using the scraped data in compliance with Indeed's terms and applicable laws (including data-protection regulations).
Keywords: indeed scraper, indeed jobs scraper, scrape indeed, search indeed by keyword, indeed keyword scraper, indeed url scraper, bypass 25 job limit, indeed api, job scraper, job listings, salaries, company data, remote jobs, recruitment data, lead generation, ATS apply url, job board feed.