Skip to content

Indeed Scraper

Try for free

Scrape public Indeed job listings by title and location, or from search and company URLs. Returns the title, company, salary, description, and apply link.

💼 Indeed Scraper

Search public Indeed jobs by title and location, or paste Indeed search, company, and job URLs, and get clean rows with the title, company, salary, job type, rating, full description, and apply link. No login, 60+ country sites, and $3.50 per 1,000 job listings.

✨ Why use Indeed Scraper?

  • 🔓 No account needed — reads public job pages only.
  • 🌍 60+ Indeed country sites — pick the country, or paste a URL from any Indeed domain.
  • 🔗 Three ways to search — position and location, a search URL with filters, a company jobs page, or a single job URL.
  • 🧾 Rich rows — salary text, job type, experience level, company rating, plain and HTML descriptions, and the external apply link.
  • 🏢 Optional company details — website, description, logo, and employee range at no extra request.
  • 🧹 Duplicate control — skip jobs already saved by another search in the same run.
  • 💸 Simple pricing — one price per listing.

🎯 Use cases

  • 🧲 Lead generation — find companies that are hiring for a role in your market.
  • 💵 Salary benchmarking — compare posted pay across employers and cities.
  • 👀 Competitor hiring watch — monitor a company's jobs page on a schedule.
  • 📈 Labor market research — count and sample openings by title, region, and job type.
  • 🗂️ Job boards and aggregators — feed fresh listings into your own site.

🚀 How to use

  1. Enter a Position and Location, pick a Country, or paste Indeed URLs into Start URLs.
  2. Set Max job listings per search.
  3. Optionally switch on company details or leave duplicates filtered.
  4. Click Start and wait for the run to finish.
  5. Export JSON, CSV, or Excel from the Output tab.

📥 Input

FieldKeyWhat it does
PositionpositionJob title or keywords, for example web developer.
LocationlocationCity, postal code, or region. Blank searches the whole country.
CountrycountryIndeed site for a title and location search, for example US, GB, DE.
Start URLsstartUrlsSearch URLs, company jobs URLs, or single job URLs.
Max job listings per searchmaxItemsPerSearchCap for the position search and for each start URL. Default 10.
Scrape company detailsparseCompanyDetailsAdds companyInfo to each row.
Save only unique job listingssaveOnlyUniqueItemsSkips a job already saved earlier in the run. Default on.
Proxy configurationproxyConfigurationDatacenter by default. Residential if Indeed blocks the search.
{
  "position": "web developer",
  "location": "San Francisco",
  "country": "US",
  "startUrls": [
    { "url": "https://www.indeed.com/cmp/Google/jobs" }
  ],
  "maxItemsPerSearch": 10,
  "parseCompanyDetails": false,
  "saveOnlyUniqueItems": true,
  "proxyConfiguration": {
    "useScrapelyProxy": true,
    "scrapelyProxyGroups": ["DATACENTER"]
  }
}

Filters that are part of a search URL (date posted, job type, experience, remote or hybrid, radius) are applied to that URL. The position search and each start URL run separately, and the cap applies to each.

📤 Output

One dataset row per job.

FieldDescription
positionName, id, urlJob title, Indeed job key, and listing link.
company, companyIndeedUrlEmployer name and its Indeed page.
locationJob location as shown on Indeed.
salarySalary text exactly as Indeed prints it.
jobType, jobSetting, experienceLevelEmployment type, workplace setting, and level when listed.
rating, reviewsCountCompany rating and review count (0 if none).
externalApplyLinkEmployer apply link when available.
postingDateParsed, scrapedAtPosting and scrape timestamps.
description, descriptionHTMLFull job text, plain and HTML.
searchInput / urlInputWhat produced the row: a position search or a start URL.
companyInfoWebsite, description, logo, and employee range, only when requested.
{
  "positionName": "Web Applications Developer",
  "salary": "$122,667.11 - $159,467.24 a year",
  "jobType": ["Full-time"],
  "jobSetting": null,
  "experienceLevel": ["Mid-level"],
  "company": "Partnership HealthPlan of California",
  "companyIndeedUrl": "https://www.indeed.com/cmp/Partnership-Healthplan-of-California",
  "location": "Fairfield, CA 94534",
  "rating": 3.2,
  "reviewsCount": 91,
  "url": "https://www.indeed.com/viewjob?jk=2d1bea3a3366c1d6",
  "id": "2d1bea3a3366c1d6",
  "postedAt": null,
  "postingDateParsed": "2026-09-17T09:31:32.643Z",
  "description": "Overview:\n\nTo design, develop, and test client server and web applications at PHC. ..."
}

(Trimmed: the apply link, scrapedAt, descriptionHTML, and the long description are shortened or removed.) postedAt is null; use postingDateParsed.

💰 Pricing

You pay $0.0035 per job listing, which is $3.50 per 1,000 listings. A search that finds nothing returns one notice row, which is billed as one result. Platform usage (compute and proxy) is billed on top.

Worked example: a 10-job search is 10 × $0.0035 = $0.035 in result fees plus a small compute charge of about $0.007, around $0.043 in total on the default datacenter proxy.

❓ FAQ

Is it legal to scrape Indeed?

The actor reads only publicly visible job listings. You are responsible for using the data in line with Indeed's terms and applicable law.

Do I need an Indeed account or my own proxy?

No account. Datacenter proxy is the default and is built in.

What if a search finds nothing?

A position, location, or URL that matches nothing saves no row and costs nothing. The run status says which inputs found nothing, and the OUTPUT record lists them under failedInputs with the reason.

Can I scrape one company's jobs?

Yes. Use a URL like https://www.indeed.com/cmp/Google/jobs in Start URLs.

Which countries work?

The country menu covers the public Indeed sites such as the United States, United Kingdom, Canada, Germany, and India. A start URL uses the site in its own address.

Can I schedule it or use the API?

Yes. Schedule runs in the console or start them and read the dataset through the API. If you are moving from another Indeed scraper with the same input names, the same input works here.

⚠️ Limits

  • Public listings only. No login and no access to private applications.
  • A field missing on the page is null (or 0 for rating and review count).
  • Salary is the text Indeed shows, including estimated pay when Indeed prints it.
  • Indeed shows at most about 600 to 750 jobs for one search, even when it reports more. The run stops cleanly there and says so in the status. For more jobs, add several searches (by city, filter or company URL); duplicates across searches are removed.
  • Large jobs take about 2 to 2.5 minutes per 1,000 jobs because each page of 100 results is a separate request.
  • Run time includes worker startup, so a 10-job run typically takes several seconds to about 15 seconds.
  • Indeed changes its site over time, which can cause occasional gaps.

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.