Skip to content

Indeed Jobs Scraper

Try for free

Scrape public Indeed job listings, salaries, locations, and company details from a job title and a location.

💼 Indeed Jobs Scraper

Turn an Indeed search into a clean spreadsheet of job listings. Give it a job title and a place, or paste Indeed links, and get one row per job with pay, location, the full description, and the company profile Indeed already publishes. No account, no browser, and it costs a fraction of a cent per job.

✨ Why use Indeed Jobs Scraper?

  • 💵 Very cheap — $0.01 per 1,000 saved jobs, plus normal platform usage.
  • 🔓 No login — it reads public search results and job pages only.
  • 🏢 Company data included — name, profile link, logo, industry, size, revenue, CEO, website, and rating.
  • 💰 Pay and benefits — salary range, currency, and pay period when Indeed shows one, plus benefits, job type, and occupation labels.
  • 🌍 60+ Indeed country sites — pick the country with one field.
  • 🔗 Search or direct links — type a title and location, or paste search and job URLs.

🎯 Use cases

  • 🧑‍💼 Recruiting — pull every software job in one city into a shortlist.
  • 📊 Salary research — compare posted pay and company ratings across a search.
  • 📈 Hiring trends — watch a role and location for listings from the last 1, 3, 7, or 14 days.
  • 🗂️ Job boards — fill a catalog with listings that are already public.
  • 🏭 Competitor tracking — see which roles a company is hiring for and how it describes them.

🚀 How to use

  1. Enter a Job title (for example software engineer) and a Location (a city, region, postal code, or remote).
  2. Choose the Country of the Indeed site and set Maximum jobs.
  3. Optional: set Date posted, or paste Indeed URLs into Indeed URLs instead.
  4. Click Start and wait for the run to finish.
  5. Export the dataset as JSON, CSV, or Excel, or read it through the API.

📥 Input

FieldTypeWhat it does
titlestringWords you would type into Indeed, such as a job title or a skill.
locationstringCity, region, postal code, or remote.
countrystringIndeed site to search, for example us, uk, de, ca. Default us.
startUrlsarrayIndeed search or job URLs. When set, title and location are ignored.
limitintegerHow many jobs to save in total, 1 to 10,000. Default 10.
datePostedstringKeep jobs posted in the last 1, 3, 7, or 14 days. Empty means any date.
proxyConfigurationobjectDatacenter proxy by default. Change the group only if Indeed blocks it.
{
  "title": "software engineer",
  "location": "Austin, TX",
  "country": "us",
  "limit": 10,
  "datePosted": "7",
  "proxyConfiguration": {
    "useScrapelyProxy": true,
    "scrapelyProxyGroups": ["DATACENTER"]
  }
}

A job link works too. A date filter still applies to a search URL that does not already set one.

{ "startUrls": [{ "url": "https://www.indeed.com/viewjob?jk=a42605a4cbd7ea31" }], "limit": 1 }

📤 Output

Each dataset row is one job.

FieldDescription
key, url, jobUrl, refNumIndeed job id, Indeed link, external apply link, reference number.
title, languageJob title and listing language.
datePublished, dateOnIndeed, expirationDate, expiredPosting and expiry dates.
isUrgentHire, isHighVolumeHiring, isRepost, isLatestPostListing flags.
locationCountry, region, city, postal code, latitude, and longitude.
employerCompany name, profile URL, description, industry, size, revenue, CEO, website, logo, rating.
parentEmployerParent company name and profile URL.
baseSalarymin, max, unitOfWork, and currencyCode when published.
jobTypes, benefits, occupations, attributesLabels Indeed attaches to the listing (keyed by Indeed's internal codes).
descriptionFull description as text and html.

Real item from a test run (trimmed):

{
  "key": "a42605a4cbd7ea31",
  "url": "https://www.indeed.com/viewjob?jk=a42605a4cbd7ea31",
  "title": "Software Development Engineer II, Silicon Scan & Fleet Diagnostics, Machine Learning Accelerator Technology Team",
  "jobUrl": "https://www.amazon.jobs/jobs/10577153/software-development-engineer-ii-silicon-scan--fleet-diagnostics-machine-learning-",
  "refNum": "10577153",
  "datePublished": "2026-10-08T05:00:00.000Z",
  "dateOnIndeed": "2026-10-13T16:52:40.649Z",
  "expired": false,
  "isUrgentHire": false,
  "isHighVolumeHiring": true,
  "language": "en",
  "location": {
    "countryCode": "US",
    "admin1Code": "TX",
    "city": "Austin",
    "latitude": 30.26715,
    "longitude": -97.74306
  },
  "employer": {
    "name": "Amazon Web Services",
    "companyPageUrl": "https://www.indeed.com/cmp/Amazon-Web-Services-05cb4ad1",
    "revenue": "more than $10B (USD)",
    "corporateWebsite": "https://aws.amazon.com/careers/why-aws/",
    "ratingsCount": 643,
    "ratingsValue": 3.4
  },
  "parentEmployer": { "name": "Amazon.com", "companyPageUrl": "https://www.indeed.com/cmp/Amazon.com" },
  "jobTypes": { "CF3CP": "Full-time" },
  "benefits": { "EY33Q": "Health insurance", "SENX8": "401(k) matching" },
  "occupations": { "5NN53": "Software Development Occupations" },
  "baseSalary": { "min": 143700, "max": 194400, "unitOfWork": "YEAR", "currencyCode": "USD" },
  "description": { "text": "...", "html": "..." }
}

💰 Pricing

$0.01 per 1,000 jobs, which is $0.00001 per saved job. Platform usage is billed on top at standard rates: compute is $0.30 per GB-hour and datacenter proxy is $1 per GB.

Worked example: a 10-job search cost about $0.0023 in total in our billing test. Nearly all of that is the run's start-up compute, so larger limits cost very little more per job. Jobs Indeed does not return are not charged. The run stops at your limit or at the run's maximum charge.

❓ FAQ

Is it legal to scrape Indeed? The actor reads only public listings. You are responsible for using the data in line with Indeed's terms and local privacy law.

Do I need an Indeed account or my own proxy? No. It does not log in, and datacenter proxy is built in.

How many jobs can I get? Up to 10,000 per run in total. Indeed itself stops showing results after about 600 to 1,000 jobs per search (a nationwide "nurse" search ends near 600), so for bigger pulls add several searches or URLs (for example one per city). Duplicate jobs across searches are saved once.

Why is a field empty? Indeed leaves pay, CEO, or ratings off many listings. Empty strings, null, and zeros mean Indeed did not publish that value.

Can I scrape a single job URL? Yes. Use a viewjob?jk= link or an Indeed /job/ link in startUrls. Links to other hosts are skipped and the run continues.

Can I schedule it or use the API? Yes, both. Start runs and read the dataset through the API, or use schedules in the console.

⚠️ Limits

  • limit accepts 1 to 10,000 jobs in total. The default is 10.
  • Indeed shows at most about 600 to 1,000 results per search. When a search runs out, the run ends with a status message saying so; split big pulls into several searches or URLs.
  • If a later results page fails, jobs already saved stay in the dataset.
  • Short runs have a fixed start-up time of several seconds. We measured about 8 to 10 seconds for a 10-job search.
  • attributes, benefits, jobTypes, and occupations are keyed by Indeed's internal codes, so read the values, not the keys.
  • Pay, CEO, rating, and similar fields appear only when Indeed publishes them.
  • Only Indeed hosts are supported.

Related actors

G2
4.7/5
Excellent
Trustpilot

The internet is full of data.
Start owning yours.

Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.

No credit card. No setup calls.