Indeed Ai Scraper
Pricing
from $1.67 / 1,000 request sents
Indeed Ai Scraper
Scrape Indeed job listings with titles, companies, salaries, locations, apply links, and more. Each job gets a free AI match score so you can focus on the most relevant roles, export straight to Google Sheets, and pay per request.
Pricing
from $1.67 / 1,000 request sents
Rating
5.0
(3)
Developer
Hamas jan
Maintained by CommunityActor stats
0
Bookmarked
4
Total users
2
Monthly active users
6 hours ago
Last modified
Categories
Share
Extract structured job listings from Indeed — title, salary, company rating, remote status, benefits, and apply links — across 62 country domains. Unlike every other Indeed scraper on Apify, this one includes free AI-powered match scoring: describe what you're looking for and every job gets ranked 0–100 for relevance, so you spend zero time manually reading through irrelevant postings.
Why use this scraper?
- 🤖 Free AI match scoring — no other Indeed scraper on Apify does this. Set a minimum match score and only genuinely relevant jobs get saved. AI matching runs on our infrastructure and costs nothing extra — you only ever pay for scraping requests.
- 🌍 62 countries supported — from the US and UK to Japan, Brazil, UAE, and Nigeria — more country coverage than any comparable Indeed scraper.
- 💰 Simple, predictable pricing — pay per request, not per job or per month. Roughly $2 gets you ~1,000 jobs with default filters (see the cost breakdown below).
- 📊 Google Sheets export with zero setup — no API keys, no OAuth flow. Share your sheet with one email address and results land there automatically.
- 🎯 Built-in filtering — skip specific companies, skip jobs containing keywords you don't want (e.g. "clearance required," "unpaid"), cap results per company to keep your dataset diverse, and automatically de-duplicate and skip expired listings.
- 🔗 Two ways to search — type plain keywords and let the scraper build the Indeed search for you, or paste your own Indeed search URL (with Indeed's native salary/date/job-type filters already applied) and it takes priority automatically.
- 🔁 Duplicate-safe across runs — feed in job URLs from previous runs and the scraper will skip anything it already collected.
How it works
You only need to fill in one of two things:
- Keywords — enter job titles like
Python DeveloperorSales Manager, pick a country and location, and the scraper builds the Indeed search for you. - Your own Indeed search URL — if you've already set filters on Indeed (salary range, job type, date posted) that aren't exposed in the input form, copy that URL in instead. It overrides the keyword fields.
Set how many jobs you want, hit Start, and export as JSON, CSV, Excel, or straight to Google Sheets.
Input example — keyword search
{"search_keywords": "Python Developer\nBackend Engineer","search_country": "us","search_location": "Austin, TX","date_filter": "7","max_jobs": 100,"ai_matching_enabled": true,"min_match_percentage": 60}
Input example — your own Indeed URL
{"start_urls": ["https://www.indeed.com/jobs?q=data+analyst&l=New+York%2C+NY&salaryType=%2480%2C000&fromage=7"],"max_jobs": 200,"save_unique_only": true}
Why turn on AI matching (default on)
Without AI Matching, you get every job that matches your search terms on Indeed — the same broad, noisy result set you'd get browsing the site yourself. You'd still have to review each listing to determine whether it's actually relevant.
With AI Matching, every job is scored from 0–100 based on how well it matches your search keywords. Set min_match_percentage, and only jobs that meet or exceed that threshold are saved.
AI Matching is free — it runs on our side and never adds to your request count or bill. You only pay for the scraping requests themselves. Since irrelevant jobs are filtered out early, tighter matching can also result in a leaner, cheaper dataset overall.
What's in each job record
| Field | Description |
|---|---|
id | Indeed's unique job ID |
url | Direct link to the job posting |
positionName | Job title |
company | Company name |
companyIndeedUrl | Link to the company's Indeed profile |
location | Job location |
salary | Salary or pay range, if listed |
jobType | Full-time, part-time, contract, etc. |
isRemote | Remote / Hybrid / In-Person |
description | Full job description (plain text) |
descriptionHTML | Full job description (HTML) |
postedAt | Relative post time (e.g. "3 days ago") |
postingDateParsed | Exact posting date/time |
applyType | "Easy Apply" (Indeed) or "CS Apply" (external site) |
externalApplyLink | Direct apply link on the company's own site, when available |
benefits | Listed benefits (health insurance, 401k, etc.) |
rating | Company's overall Indeed rating |
reviewsCount | Number of company reviews |
isExpired | Whether the listing has expired |
jobMatch | AI match score 0–100, when AI matching is enabled |
scrapedAt | Timestamp of extraction |
searchInput | The country, location, and keyword that found this job |
Sample output
{"id": "4a925aff5a7e3ea6","positionName": "Backend Engineer","company": "Acme Robotics","location": "Austin, TX","salary": "$110,000 - $145,000 a year","jobType": "Full-time","isRemote": "Hybrid","applyType": "CS Apply","externalApplyLink": "https://careers.acmerobotics.com/job/4521","rating": 4.1,"reviewsCount": 322,"isExpired": false,"jobMatch": 87,"postedAt": "2 days ago","scrapedAt": "2026-08-10T09:14:00.000Z"}
Pricing — how much does it cost to scrape Indeed with this actor?
Billing is pay per event — a small flat fee per run, plus a charge for each request the scraper makes. No subscriptions, no minimum commitments.
| Event | Price | When it's charged |
|---|---|---|
| Actor run started | $0.005 | Once per run, regardless of size |
| Request sent | $0.0017 | Once for every search-results page and every individual job-detail page fetched |
You're billed per request, not per saved job — this is deliberate. Charging per result would hide the real cost of strict filtering; charging per request means the price you see is the work the scraper actually did.
| Spend | Approx. requests | Approx. jobs (default filters) |
|---|---|---|
| $2 | ~1,200 | ~1,000 |
| $10 | ~6,000 | ~5,000 |
| $50 | ~30,000 | ~25,000 |
Why request count isn't the same as job count: The scraper only requests a job's detail page after that job has passed your filters at the search-results stage — but finding enough passing jobs can mean checking more candidates than you end up keeping. Concretely:
- A high
min_match_percentagemeans more candidate jobs get scored and discarded before one clears the bar. - A strict
per_company_jobscap means the scraper has to keep searching past jobs from companies that already hit their cap. - A long
ignore_relatedkeyword list orignore_companieslist means more candidates get checked and rejected.
With default (loose) filters, the ratio stays close to 1.2 requests per saved job — that's where the "$2 ≈ 1,000 jobs" estimate comes from. The tighter you filter, the more that ratio can rise, since you're paying for the search work, not just the keepers.
AI matching itself never adds requests or cost — scoring happens after a job is already fetched, so filtering by min_match_percentage alone doesn't multiply your request count the way search-side filters (company caps, keyword exclusions) can.
Exporting to Google Sheets
- Open your Google Sheet.
- Click Share and add
python-api@indeed-leads-467810.iam.gserviceaccount.comas an Editor. - Paste your sheet's URL into
google_sheet_url.
No API keys, no OAuth screen, no service account setup on your end.
Use cases
- Job seekers — pull every listing matching your target role and let AI match scoring surface the best fits first
- Recruiters & staffing agencies — track open roles across clients or competitors, filtered to exclude noise (staffing agency reposts, irrelevant seniority levels)
- Market & salary research — aggregate salary ranges by role, region, and company at scale across 62 countries
- Lead generation — identify actively hiring companies as warm outbound targets
- Career coaches — monitor postings for clients and filter out anything that doesn't match their criteria
FAQ
Is it legal to scrape Indeed? This scraper only extracts data that's publicly visible on Indeed's job listing pages — the same information any visitor sees without logging in. It doesn't access private data or bypass authentication. You're responsible for ensuring your specific use complies with Indeed's Terms of Service and any data-protection laws (GDPR, CCPA) that apply to your use case — if in doubt, consult a lawyer.
How much does it cost to scrape 1,000 Indeed jobs? Around $2 with default filters, since pricing is pay-per-request (roughly 1,200 requests per 1,000 saved jobs). Stricter filters (high match score threshold, strict per-company caps) will use more requests per saved job.
What countries does this scraper support?
62 Indeed domains, including the US, UK, Canada, Australia, Germany, France, India, Japan, Brazil, UAE, Nigeria, and more. Set search_country or use start_urls with any country-specific Indeed domain.
Does it get salary data?
Yes — the salary field returns Indeed's listed or estimated pay range when the employer or Indeed provides one. Not every listing includes salary data; this depends on what Indeed itself has.
What makes this different from other Indeed scrapers? Free AI match scoring is unique to this actor — every job is scored against your search keywords so you can filter by relevance, not just keyword presence. It also covers more countries (62) than comparable scrapers and includes no-auth Google Sheets export.
Can I filter by remote jobs only?
Yes, via the isRemote field in your downstream filtering, or by including "remote" in your search location/keywords so Indeed's own results are pre-filtered.
How do I avoid re-scraping jobs I already have?
Paste previously-collected job URLs into processed_job_urls — the scraper extracts the job IDs and skips anything already processed.
Is there a free plan limit? Yes — free Apify plan users are capped at 100 jobs per run. Upgrade your Apify plan for higher volumes.
Keywords: indeed scraper, indeed jobs scraper, indeed job api, scrape indeed, job listings scraper, salary data scraper, AI job matching, job market research, indeed salary data, remote jobs scraper