Indeed Ai Scraper avatar

Indeed Ai Scraper

Pricing

from $1.67 / 1,000 request sents

Go to Apify Store
Indeed Ai Scraper

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

Hamas jan

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

2

Monthly active users

6 hours ago

Last modified

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:

  1. Keywords — enter job titles like Python Developer or Sales Manager, pick a country and location, and the scraper builds the Indeed search for you.
  2. 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.

{
"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

FieldDescription
idIndeed's unique job ID
urlDirect link to the job posting
positionNameJob title
companyCompany name
companyIndeedUrlLink to the company's Indeed profile
locationJob location
salarySalary or pay range, if listed
jobTypeFull-time, part-time, contract, etc.
isRemoteRemote / Hybrid / In-Person
descriptionFull job description (plain text)
descriptionHTMLFull job description (HTML)
postedAtRelative post time (e.g. "3 days ago")
postingDateParsedExact posting date/time
applyType"Easy Apply" (Indeed) or "CS Apply" (external site)
externalApplyLinkDirect apply link on the company's own site, when available
benefitsListed benefits (health insurance, 401k, etc.)
ratingCompany's overall Indeed rating
reviewsCountNumber of company reviews
isExpiredWhether the listing has expired
jobMatchAI match score 0–100, when AI matching is enabled
scrapedAtTimestamp of extraction
searchInputThe 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.

EventPriceWhen it's charged
Actor run started$0.005Once per run, regardless of size
Request sent$0.0017Once 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.

SpendApprox. requestsApprox. 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_percentage means more candidate jobs get scored and discarded before one clears the bar.
  • A strict per_company_jobs cap means the scraper has to keep searching past jobs from companies that already hit their cap.
  • A long ignore_related keyword list or ignore_companies list 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

  1. Open your Google Sheet.
  2. Click Share and add python-api@indeed-leads-467810.iam.gserviceaccount.com as an Editor.
  3. 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