Indeed Hiring Signals Scraper avatar

Indeed Hiring Signals Scraper

Pricing

from $2.00 / 1,000 job or hiring signals

Go to Apify Store
Indeed Hiring Signals Scraper

Indeed Hiring Signals Scraper

Scrape public Indeed job search results for hiring signals. Extract job listings and aggregate company-level hiring signals (open roles, titles, locations) for cold email and lead gen triggers.

Pricing

from $2.00 / 1,000 job or hiring signals

Rating

0.0

(0)

Developer

Harsh

Harsh

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

What does Indeed Hiring Signals Scraper do?

Indeed Hiring Signals Scraper turns public Indeed job search results into structured hiring signals you can use for cold email, outbound, and lead generation. Search for roles like SDR, sales development, account executive, or growth marketer, then get clean job rows plus optional company-level aggregates (openRolesCount, titles, locations, signal: "hiring").

Run it on the Apify platform for API access, scheduling, integrations (Make, Zapier, n8n), proxy rotation, and monitoring—no browser farm to maintain.

Ideal trigger for campaigns in the style of Nick Abraham-style autopilot outbound: companies hiring SDRs often need lead gen help.

Why use Indeed Hiring Signals Scraper?

  • Cold email triggers — Target companies actively hiring SDRs, BDRs, AEs, or growth roles.
  • Agency / freelancing pipeline — Spot teams scaling sales and pitch outbound, RevOps, or creative services.
  • Market research — Track which titles and locations are heating up for a niche.
  • Enrichment workflows — Pipe company + jobUrl into Clay, Instantly, Smartlead, or your CRM.
  • Fast HTTP scraping — Cheerio-based (no full browser) with multi-selector fallbacks and graceful block handling.

How to use Indeed Hiring Signals Scraper

  1. Open the Actor on Apify and click Try for free.
  2. Enter one or more queries (e.g. SDR, account executive).
  3. Optionally set locations (United States, Remote, New York, NY).
  4. Set maxJobsPerQuery (per query × location pair).
  5. Keep proxy enabled for best reliability against Indeed rate limits.
  6. Run the Actor and download the dataset as JSON, CSV, Excel, or HTML.

Input

See the Input tab for the full form. Main fields:

FieldTypeDescription
queriesstring[]Job keywords (required). Example: ["SDR", "sales development"]
locationsstring[]Locations. Empty string = nationwide. Default: ["United States"]
maxJobsPerQueryintegerCap per query×location (default 50)
maxConcurrencyintegerConcurrent HTTP requests (default 3)
maxRequestRetriesintegerRetries per request (default 3)
requestDelayMsintegerUsed to derive rate limiting (default 1000)
proxyConfigurationobjectApify Proxy settings
emitCompanySignalsbooleanAlso emit aggregated company_signal rows (default true)

Example input:

{
"queries": ["SDR", "sales development", "account executive", "growth marketer"],
"locations": ["United States", "Remote"],
"maxJobsPerQuery": 25,
"maxConcurrency": 3,
"requestDelayMs": 1000,
"proxyConfiguration": { "useApifyProxy": true },
"emitCompanySignals": true
}

Output

Each dataset item is either a job or a company_signal. You can download the dataset in various formats such as JSON, HTML, CSV, or Excel. The run also writes JOBS.csv and SUMMARY.md to the default key-value store.

Job record

{
"type": "job",
"title": "Sales Development Representative",
"company": "Acme SaaS",
"companyUrl": "https://www.indeed.com/cmp/Acme-SaaS",
"location": "Austin, TX",
"salary": "$55,000 - $70,000 a year",
"jobType": "Full-time",
"descriptionSnippet": "Outbound SDR role focusing on B2B SaaS lead generation.",
"jobUrl": "https://www.indeed.com/viewjob?jk=abc123def456",
"postedAt": "2 days ago",
"query": "SDR",
"locationQuery": "United States",
"scrapedAt": "2026-07-20T12:00:00.000Z",
"error": null
}

Company signal record

{
"type": "company_signal",
"company": "Acme SaaS",
"openRolesCount": 2,
"titles": ["Account Executive", "Sales Development Representative"],
"locations": ["Austin, TX", "New York, NY"],
"signal": "hiring",
"scrapedAt": "2026-07-20T12:00:00.000Z",
"error": null
}

Data table

FieldDescription
typejob or company_signal
titleJob title
companyEmployer name
companyUrlIndeed company page when available
locationJob location text
salarySalary snippet from search results
jobTypeFull-time / Part-time / Contract / etc.
descriptionSnippetShort snippet from the SERP
jobUrlPublic Indeed job URL
postedAtRelative or absolute posted time
querySearch query that found the job
locationQueryLocation used in the search
openRolesCount(signal) Distinct open roles for company
titles(signal) Distinct titles
locations(signal) Distinct locations
signalAlways hiring for aggregates
scrapedAtISO timestamp
errorError message when a row partially failed

How much does it cost to scrape Indeed hiring signals?

Pay-per-event (PPE): $0.002 per dataset item (each job or company_signal row), plus a tiny Actor-start fee.

Examples (compute/proxy extra on platform usage):

Jobs + signalsApprox. PPE result cost
100 rows~$0.20
1,000 rows~$2.00
10,000 rows~$20.00

Apify Free plan includes monthly free usage; paid plans unlock higher limits and residential proxies for harder targets.

Tips for better hiring signals

  • Use role-intent queries: SDR, BDR, "sales development", "account executive", "growth marketer", "demand generation".
  • Pair with geo filters your ICP cares about (Remote, metro areas, or country).
  • Keep maxConcurrency low (1–5) and enable Apify Proxy RESIDENTIAL — Indeed often blocks datacenter IPs with HTTP 403.
  • Prefer company_signal rows for prioritization: sort by openRolesCount and outreach the busiest hiring teams first.
  • Deduplicate is automatic by Indeed job key (jk) across pages and queries.

FAQ, disclaimers, and support

Is scraping Indeed legal?
You are responsible for complying with Indeed’s Terms of Service, applicable laws, and robots.txt. Use data ethically (e.g. B2B outreach), and do not collect personal data beyond what is publicly listed for legitimate business purposes.

Why do I get zero results?
Indeed frequently returns HTTP 403 or captchas to datacenter IPs. Use Apify Proxy with RESIDENTIAL groups (default), lower concurrency, and increase requestDelayMs.

Does this scrape full job descriptions?
This Actor focuses on search-result hiring signals (title, company, location, salary snippet, snippet text). It does not visit every job detail page, which keeps runs faster and cheaper for outbound triggers.

Need a custom solution?
Open an issue on the Actor’s Issues tab, or contact the developer for custom lead gen / enrichment workflows.