Indeed Jobs Scraper avatar

Indeed Jobs Scraper

Pricing

from $1.67 / 1,000 request sents

Go to Apify Store
Indeed Jobs Scraper

Indeed Jobs Scraper

New & reliable: cheap $1K+ Indeed jobs for just $2 across 62 countries. Get advanced filters, detailed job data, and a free AI match score for every job. Export to Google Sheets and pay per request.

Pricing

from $1.67 / 1,000 request sents

Rating

5.0

(4)

Developer

Hamas Jan

Hamas Jan

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

2

Monthly active users

2 hours ago

Last modified

Share

Extract structured job listings from Indeed — title, salary, company rating, remote status, benefits, and more — across 62 country domains. Unlike every other Indeed scraper on Apify, this one includes free AI-powered match scoring: the AI reads your inputs and automatically ranks every job 0–100 for relevance, so you spend zero time manually sifting through irrelevant postings.

Why use this scraper?

  • Free AI match scoring. No other Indeed scraper on Apify offers this feature. Set a minimum match score and only genuinely relevant jobs will be saved. AI matching runs on our infrastructure at no extra cost. You only pay for scraping requests.

  • 62 countries supported. Search for jobs across the US, UK, Japan, Brazil, UAE, Nigeria, and many more countries.

  • Simple and predictable pricing. Pay per request instead of per job or per month. With the default filters, around 2 dollars can get you approximately 1000 jobs.

  • Google Sheets export with zero setup. No API keys or OAuth required. Simply share your sheet with one email address and results will be added automatically.

  • Built in filtering. Exclude specific companies or jobs containing unwanted keywords such as clearance required or unpaid. You can also limit the number of results per company, automatically remove duplicates, and skip expired listings.

  • Two ways to search. Enter plain keywords and let the scraper create the Indeed search for you, or provide your own Indeed search URL. If you provide a URL with Indeed salary, date, or job type filters, those filters will automatically take priority.

  • Duplicate safe across runs. Provide job URLs from previous runs and the scraper will automatically skip jobs that have already been 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