Indeed Scraper avatar

Indeed Scraper

Pricing

from $3.00 / 1,000 results

Go to Apify Store
Indeed Scraper

Indeed Scraper

Scrapes Indeed job listings by search query, location, and filters, with optional full job details.

Pricing

from $3.00 / 1,000 results

Rating

0.0

(0)

Developer

Anyx Solutions

Anyx Solutions

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

18 days ago

Last modified

Share

Collect Indeed job listings by query, location, and filters — with optional full job descriptions.

Search Indeed the way you do in the browser and get the results back as clean, structured data. Paste ready-made Indeed search URLs or just type a query and location, apply date and sort filters, and export job title, company, location, salary, posting age, and an optional full job description to JSON, CSV, or Excel.

⚡ Quick start

{
"query": "software engineer",
"location": "New York",
"maxItems": 10
}

🧩 Input

FieldTypeRequiredDefaultDescription
startUrlsarraynoIndeed search URLs to scrape (e.g. https://www.indeed.com/jobs?q=software+engineer&l=New+York).
querystringnoJob title or keywords. Used when no search URL is provided, or as a fallback.
locationstringnoLocation to search in, e.g. New York or Remote.
datePostedstringnoanyany, past-24h, past-3-days, past-week, or past-2-weeks.
sortBystringnorelevancerelevance or recent.
radiusintegernoDistance from the location, in miles.
scrapeJobDetailsbooleannofalseOpen each job page to collect the full description. Slower and partly blocked by Indeed — see the FAQ.
maxItemsintegerno10Max jobs per search URL / query.
proxyConfigurationobjectno{ "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }Proxy settings.

Provide either startUrls or a query / location — at least one is required.

📤 Output

Each dataset item is a single job listing. Every item carries the fields shown on the search results card. With scrapeJobDetails enabled, descriptionText and descriptionHtml are filled in as well — and stay null for any job whose page Indeed declined to serve, so no listing is ever dropped.

Fields

FieldTypeDescription
jobKeystringIndeed's unique identifier for the job.
titlestringJob title.
companystringHiring company name.
locationstringJob location.
salarystringSalary text, when shown.
jobTypesarrayEmployment types (e.g. Full-time).
postedAtstringHow recently the job was posted.
snippetstringShort description preview from the search card.
isRemotebooleanWhether the job is flagged remote.
jobUrlstringPublic Indeed job URL.
descriptionTextstringFull job description as plain text.
descriptionHtmlstringFull job description as HTML.
searchUrlstringThe search this job came from.

💡 Use cases

  • Build and refresh a job board for a niche or region.
  • Track hiring trends, salary ranges, and demand for specific roles.
  • Feed structured job data into recruiting, sourcing, or market-research pipelines.
  • Monitor competitors' open roles over time.

❓ FAQ

  • Do I need a proxy? Yes. Indeed uses aggressive anti-bot protection; the Actor defaults to Apify residential proxies for reliable results.
  • Can I scrape a specific search? Paste the Indeed search URL from your browser into startUrls and the Actor will reproduce it.
  • Why is scrapeJobDetails off by default? Indeed protects individual job pages far more tightly than search pages, so a share of detail requests are refused however the Actor is proxied. With the option off, every run is fast and returns a complete list. Turn it on when you need descriptions and accept that some will come back empty — the listing itself is still returned.
  • How many jobs can I get per search? The scraper paginates through Indeed's result pages until it reaches maxItems or runs out of results (Indeed typically exposes a few hundred per search). For very large needs, also run multiple narrower searches (by title, location, radius, or date) to widen coverage.

🔗 More scrapers by Anyx

🤝 Anyx Solutions

We build custom scrapers and data-extraction pipelines.