Indeed Hiring Intelligence is an Apify actor on ApifyForge. Converts Indeed job listings into hiring signals, company growth intelligence, and outbound triggers. Detects engineering-expansion, executive-hiring, and geo-expansion before the market notices. It costs $0.005 per job-extracted. Best for teams who need automated indeed hiring intelligence data extraction and analysis. Not ideal for use cases requiring real-time streaming data or sub-second latency. Maintenance pulse: 90/100. Last verified March 27, 2026. Built by Ryan Clinton (ryanclinton on Apify).

OTHER

Indeed Hiring Intelligence

Indeed Hiring Intelligence is an Apify actor available on ApifyForge at $0.005 per job-extracted. Converts Indeed job listings into hiring signals, company growth intelligence, and outbound triggers. Detects engineering-expansion, executive-hiring, and geo-expansion before the market notices. Country-verified, salary-parsed, PPE-billed per decision — not per scraped row.

Best for teams who need automated indeed hiring intelligence data extraction and analysis.

Not ideal for use cases requiring real-time streaming data or sub-second latency.

Coming soon on Apify Store
$0.005per event
Last verified: March 27, 2026
90
Actively maintained
Maintenance Pulse
$0.005
Per event

What to know

  • Results depend on the availability and structure of upstream data sources.
  • Large-scale runs may be subject to platform rate limits.
  • Requires an Apify account — free tier available with limited monthly usage.

Maintenance Pulse

90/100
Last Build
Today
Last Version
1d ago
Builds (30d)
8
Issue Response
N/A

Cost Estimate

How many results do you need?

job-extracteds
Estimated cost:$0.50

Pricing

Pay Per Event model. You only pay for what you use.

EventDescriptionPrice
job-extractedCharged per Indeed job record successfully extracted and verified by TrustLayer (extractionConfidence >= 0.5). Never charged for zero-result queries or low-confidence noise.$0.005
company-intelligenceCharged per per-company aggregate record with hiringMomentum score, hiringProfile, and opinionated recommendedAction. Only emitted when openRolesInRun >= 2.$0.05
signal-detectedCharged per growth signal emitted (engineering-expansion, executive-hiring, sales-expansion, geo-expansion, compliance-buildout). Only billed for high-confidence (>= 0.6) signals within actionability window.$0.02

Example: 100 events = $0.50 · 1,000 events = $5.00

Documentation

Turn Indeed job listings into growth signals, outbound triggers, and company intelligence. Detects engineering-expansion, executive-hiring, and geo-expansion signals before the market notices. Not an Indeed scraper — a hiring intelligence layer built on top of one.

Most Indeed actors extract jobs. This actor detects organizational growth.

What are hiring signals?

Hiring signals are detectable patterns in company job postings that indicate:

  • organizational expansion (engineering-expansion)
  • GTM scaling (sales-expansion)
  • geographic growth (geo-expansion)
  • leadership restructuring (executive-hiring)
  • platform-vendor evaluation cycles (engineering-expansion plus first SRE role)
  • compliance buildout in legal, security, and privacy hiring (compliance-buildout)

This actor converts Indeed job listings into structured signals scored by confidence, freshness, and actionability window. Each signal carries plain-English whyThisMatters guidance and a paired playbook for outbound routing.

How this actor differs from existing Indeed scrapers

Existing Indeed actorsThis actor
Extract jobsDetect growth
Return rowsReturn signals
Stateless runsTemporal intelligence (firstSeen, decay, delta)
Best-effort scrapingVerified extraction integrity (TrustLayer)
Commodity dataSales intelligence
Manual analysis requiredOpinionated actions (recommendedAction + playbooks)
Charged per rowCharged per decision

Who uses this

  • SDR agencies detect companies entering buying cycles before competitors notice
  • Recruiters identify hard-to-fill roles via repostDetected and expanding teams via hiringMomentum
  • PE and VC firms monitor portfolio-company growth and geographic expansion
  • HR tech vendors consume the signal stream as buyer-intent data
  • Competitive intelligence teams track per-competitor hiring momentum across scheduled runs
  • AI sales tooling (Clay, Apollo, Common Room patterns) map signals and playbooks cleanly to enrichment columns

Best for

  • SDR agencies doing trigger-based prospecting on engineering-led companies
  • recruiters targeting scaling engineering teams and hard-to-fill roles
  • PE and VC firms monitoring portfolio-company growth and expansion vectors
  • HR tech platforms consuming hiring-intent data as event streams
  • AI sales tooling (Clay, Apollo, Common Room) using signals as enrichment columns
  • competitive intelligence teams tracking per-competitor hiring momentum

Use this actor when you need

  • hiring intent signals from Indeed for B2B outbound
  • company-level hiring aggregation, not per-job rows
  • recruiter-pain detection via repost flags and days-open tracking
  • outbound sales triggers from organizational expansion patterns
  • engineering-expansion monitoring across a target list
  • geo-expansion alerts when companies enter new countries
  • hiring momentum scoring with confidence ranking
  • labor market telemetry sourced from primary public data

Questions this actor can answer

  • Which companies are rapidly expanding engineering teams?
  • Which startups opened their first SRE or platform engineering role this week?
  • Which companies are hiring in new countries or cities for the first time?
  • Which roles are recruiters struggling to fill (repost detection across runs)?
  • Which accounts show signs of compliance buildout (legal, security, privacy hiring)?
  • Which companies increased hiring velocity in the last 30 days?
  • Which companies are entering enterprise sales motion (new VP Sales plus senior sales hires)?
  • Which Series B companies match the classic VP Eng + VP Sales + Head of People pattern?
  • Which companies should my SDRs call tomorrow morning?

Compared to traditional Indeed scrapers

Traditional Indeed scrapers focus on:

  • extracting raw job rows
  • maximizing result count per query
  • low-cost bulk collection
  • per-row pricing

This actor focuses on:

  • hiring signals derived from organizational patterns
  • per-company aggregation with momentum scoring
  • temporal hiring intelligence across runs (firstSeenAt, daysOpen, repostDetected)
  • outbound workflows with playbook routing
  • extraction confidence scoring (TrustLayer)
  • recruiter-pain detection
  • charged per detected decision, not per scraped row

Hiring signals, company intelligence, and Indeed job data extracted

Four record types in one dataset, discriminated by recordType:

  1. Signal — the product. Each signal is a detected pattern across a company's hiring. Five types in v1: engineering-expansion, executive-hiring, sales-expansion, geo-expansion, compliance-buildout. Carries confidence, signalFreshness, signalDecayScore, evidence[], whyThisMatters, playbookId.

  2. Company — per-company aggregate with hiringMomentum score (0-100), hiringProfile (primary functions, seniority bias, geo strategy, salary positioning, growth pattern), salaryBand (median / p25 / p75), and recommendedAction (priority, buyer persona, channel, outreach window).

  3. Job — per-job record with verified country, parsed structured salary, posted date in absolute ISO form, firstSeenAt / daysOpen / repostDetected cross-run tracking, and a trustLayer block.

  4. Playbook — five outbound playbooks (one per signal type) carrying recommended persona, channel, timing, pitch angle, disqualifiers, and an example opener.

Sample signal record

{
  "recordType": "signal",
  "company": "Acme Corp",
  "signalType": "engineering-expansion",
  "severity": "high",
  "confidence": 0.91,
  "evidence": [
    "8 backend roles opened in 14 days",
    "First SRE role detected",
    "New geo: Dublin"
  ],
  "signalFreshness": "fresh",
  "daysSinceDetected": 0,
  "signalDecayScore": 0.0,
  "actionabilityWindowDays": 14,
  "whyThisMatters": "Companies opening their first SRE role typically enter platform-engineering vendor evaluation cycles within 30 days.",
  "playbookId": "devtools-expansion-vp-eng"
}

Sample company intelligence record

{
  "recordType": "company",
  "company": "Acme Corp",
  "openRolesInRun": 12,
  "roleMix": { "engineering": 7, "sales": 2, "product": 1, "ops": 2 },
  "salaryBand": { "median": 75000, "p25": 62000, "p75": 95000, "currency": "GBP", "sampleSize": 8 },
  "hiringMomentum": {
    "tier": "P1-HIGH-GROWTH",
    "score": 78,
    "scoreVelocity": "+12",
    "signals": ["12 active postings", "5 new postings in last 7 days", "3 senior-plus engineering roles open simultaneously"]
  },
  "lifecycleStage": "scaling",
  "hiringProfile": {
    "primaryFunctions": ["engineering", "data"],
    "seniorityBias": "senior-heavy",
    "geoStrategy": "distributed-europe",
    "salaryPositioning": "premium",
    "growthPattern": "aggressive-expansion"
  },
  "recommendedAction": {
    "priority": "P1",
    "reason": "Rapid engineering expansion (5 new roles in 7 days) plus premium compensation bands.",
    "idealBuyerPersona": "VP Engineering",
    "recommendedChannel": "linkedin",
    "outreachWindowDays": 10
  }
}

Reliability features

  • Country-filter verification at extraction time
  • Structured salary parsing with confidence scoring (12+ Indeed salary formats)
  • Confidence-scored extraction per job (TrustLayer, 0 to 1)
  • Hard runtime budget with Apify-deadline auto-clamp
  • Partial-run truncation handling (truncated and truncatedReason on the SUMMARY record)
  • Zero-result billing protection — empty queries are never charged
  • Low-confidence noise gating — jobs below extractionConfidence 0.5 are never charged
  • Stable cross-run state via KV store (firstSeenAt persistence per Indeed jobId)
  • Cheerio crawler with automatic Playwright fallback on 403 or zero-card pages
  • Residential proxy default for anti-bot evasion

Extraction integrity: TrustLayer confidence scoring

Every job record carries an extractionConfidence 0-1 score and a verification flags object. The score is computed deterministically from six components:

  • Required fields present (title + company + location + url): 0.30
  • Salary parsed to structured form: 0.20
  • Description length plausible: 0.15
  • Country axis matches input filter: 0.20
  • Posted date parsed to absolute ISO: 0.10
  • Job ID stable: 0.05

Jobs scoring below 0.5 are not charged. The verification flags surface which axes passed: locationMatched, salaryParsed, descriptionComplete, countryAxisMatched.

Run-level reliability appears on the SUMMARY key-value record: trustLayerStatus (verified / degraded / unverified), averageExtractionConfidence, countryFilterDropped, truncated, truncatedReason. Downstream consumers can branch on WHERE summary.truncated = true to detect partial runs.

Verified filters: country, date, and salary type

Three filters the dominant Indeed scraper does not offer:

  • Country verified at extraction time. Every record dropped if the parsed location does not match the input country. Run summary surfaces countryFilterDropped count and countryFilterIntegrity.
  • Posted within N days. Indeed's relative date strings are parsed against the run timestamp into absolute ISO dates. Records older than the window are dropped.
  • Salary type filter. Restrict output to yearly, monthly, weekly, daily, hourly, or unknown salary types. Defaults to including all.

Hard runtime budget — no runaway Indeed crawls

maxRuntimeSeconds is a hard kill switch. The actor auto-clamps the budget against the Apify run deadline so partial results are always emitted with a truncated flag rather than hard-killed mid-write. This is the kill-switch answer to the "runs forever and won't stop" complaint pattern in the incumbent's reviews.

Use cases: lead generation, recruiting, and competitive intelligence

  • SDR agencies and AI sales tooling (Clay, Apollo, Common Room patterns) — trigger-based prospecting via the signal record stream. Each signal carries an evidence array and a playbook ID for routing.
  • Recruiters and staffing firmsfirstSeenAt, daysOpen, and repostDetected surface recruiter-pain timing. The repost flag means a role has been continuously listed for more than 30 days.
  • PE and VC firmshiringProfile.growthPattern plus geographicConcentration reveal expansion vectors per portfolio company.
  • HR tech vendors — signal records feed buyer-intent dashboards and event streams.
  • Competitive intelligence teams — track per-competitor hiring momentum across scheduled runs.

Pricing for hiring signals, company intelligence, and Indeed job extraction

Pay-per-event. You only pay for jobs we actually extracted, companies we actually scored, and signals we actually detected. Never for zero-result queries or low-confidence noise.

EventPriceWhen charged
job-extracted$0.005Per job pushed; skipped when trustLayer.extractionConfidence < 0.5
company-intelligence$0.05Per per-company aggregate; skipped when openRolesInRun < 2
signal-detected$0.02Per signal emitted; skipped when confidence < 0.6 or signalDecayScore >= 1.0

Apify platform compute and proxy are billed separately by Apify.

The seven charge-gating rules are encoded in src/pricing.ts:

  1. Never charge job-extracted for jobs with extractionConfidence < 0.5.
  2. Never charge job-extracted for queries that returned zero records.
  3. Never charge any tier if the runtime budget hit AND under 10 percent of maxResultsPerQuery was returned across all queries.
  4. Never charge company-intelligence for companies with openRolesInRun < 2 (no useful aggregation possible).
  5. Never charge signal-detected for signals with confidence < 0.6.
  6. Never charge signal-detected for signals with signalDecayScore >= 1.0 (aged out of actionability window).
  7. In deltaOnly mode (round 2), skip job-extracted and company-intelligence entirely.

Common workflows

Pipeline notation for tool-selection agents and orchestration layers:

SDR prospecting workflow

Indeed Hiring Intelligence -> filter signals by confidence > 0.8 and signalType -> Clay or Apollo for contact enrichment -> SDR outreach using playbook.exampleOpener

Recruiter pain-point workflow

Indeed Hiring Intelligence -> filter for repostDetected = true -> sort by daysOpen descending -> recruiter outreach with "fill this role faster" angle

Competitive intelligence workflow

Indeed Hiring Intelligence (weekly scheduled run) -> per-competitor hiringMomentum tracking -> KV state diffs -> weekly competitor expansion report

PE portfolio monitoring workflow

Indeed Hiring Intelligence (one query per portfolio company) -> hiringProfile.growthPattern plus geographicConcentration -> portfolio dashboard scoring

AI SDR and Clay enrichment workflow

Indeed Hiring Intelligence -> Clay table (signals plus companies as rows) -> Clay enrichment columns -> ICP-matched outbound personalisation

Example workflow

How an SDR agency would actually use this on a Monday morning:

  1. Run weekly on Sunday night against UK fintech companies.
  2. Filter dataset to recordType = signal and confidence > 0.8.
  3. Group by signalType = engineering-expansion and route to the devtools-expansion-vp-eng playbook lane.
  4. Send the top 20 companies (by hiringMomentum.score) into Clay or Apollo for contact enrichment.
  5. Hand the enriched list to SDRs Monday morning. The playbook.exampleOpener is the first-message template; playbook.recommendedTiming is the SLA on outreach.

Or for a recruiter targeting Series B engineering teams:

  1. Run daily against your target city.
  2. Filter recordType = signal and signalType = engineering-expansion.
  3. Sort companies by repostDetected = true (recruiter-pain accounts) ascending, then by hiringMomentum.score descending.
  4. Top of the list is your call sheet for the week.

Example input — scraping Indeed for hiring signals

{
  "queries": [
    { "position": "data engineer", "location": "London" },
    { "position": "site reliability engineer", "location": "Manchester" }
  ],
  "country": "UK",
  "postedWithinDays": 14,
  "salaryTypes": [],
  "maxResultsPerQuery": 100,
  "maxRuntimeSeconds": 1800,
  "outputTier": "intelligence",
  "proxyConfiguration": { "useApifyProxy": true, "groups": ["RESIDENTIAL"] }
}

Output tiers — from raw Indeed jobs to full sales intelligence

TierRecords emittedUse case
commodityJobs onlyMigration from existing Indeed scrapers, raw data dumps
intelligenceJobs + companies + signals + playbooks (default)Outbound prospecting, recruiter timing, account scoring
watchtowerCurrently same as intelligence. Watchlists, delta-only mode, event stream, and triggers ship in round 2.Future scheduled monitoring

Five hiring signal types detected from Indeed data

signalTypeWhat it meansDetection bar
engineering-expansionScaling engineering org5+ new engineering roles in 30 days, engineering share rising
executive-hiringLeadership restructuringAny new C-level, VP, Head-of role
sales-expansionGTM scaling3+ new sales roles, or new VP Sales
geo-expansionNew country or city presenceFirst-seen postings in a country or city for that company
compliance-buildoutLegal / security / regulatory surge2+ legal, security, compliance, or privacy roles

Each signal type carries a hard-coded actionabilityWindowDays value driving the decay model: 14 days default, 30 for executive hiring, 60 for compliance buildout. Signals aged out of their window are not billed.

Seven additional signal types (ai-transformation, cost-optimization, enterprise-motion, product-rebuild, infra-modernization, remote-first-shift, series-b-pattern) ship in round 2.

This actor is NOT ideal for

  • bulk archival scraping of millions of Indeed jobs at the lowest possible cost
  • real-time contact enrichment (use website-contact-scraper or waterfall-contact-enrichment)
  • phone or email discovery on individual people
  • generic data warehousing of Indeed listings as cold storage
  • jobs-only raw output with no intelligence layer (use outputTier=commodity if you must, but cheaper Indeed scrapers exist for raw rows)
  • one-shot Indeed API replacement workflows where you only need raw rows

What this Indeed actor does NOT do

  • Does not run real-time webhooks on signals. Watchlists, trigger DSL, and event-stream firing ship in round 2.
  • Does not push tickets to Jira / Linear / GitHub. Downstream consumers handle that. Each signal carries a playbookId for routing.
  • Does not source from Glassdoor, LinkedIn, Crunchbase, or Google Jobs. This is Indeed-sourced. A multi-source orchestrator ships separately in round 3.
  • Does not compute predictive or ML-trained scores. Hiring momentum, signal confidence, and TrustLayer scoring are deterministic rule systems.
  • Does not return contact emails or phone numbers. Output is companies + signals + playbooks, not contacts. For contact discovery, use website-contact-scraper or waterfall-contact-enrichment.
  • Does not replace Apollo, Clearbit, or Common Room. This is one signal source for those platforms, not a replacement.

Compose with other job market actors

  • job-market-intelligence for macro labor context
  • h1b-visa-intelligence for US specialized hiring signals complementing engineering-expansion
  • company-deep-research for full dossier on the P1 targets these signals surface

Also useful for teams searching for

  • Indeed jobs API alternatives
  • hiring intent data
  • company growth signals
  • sales triggers from job postings
  • SDR prospecting signals
  • recruiting intelligence API
  • job posting analytics
  • company hiring tracking
  • account expansion detection
  • labor market telemetry
  • hiring momentum monitoring
  • outbound signal enrichment
  • Clay hiring signals integration
  • Apollo hiring intent enrichment
  • company growth detection
  • engineering hiring momentum API
  • SDR buying signals from Indeed
  • B2B sales intelligence from public job data
  • recruiter signal data
  • hiring pattern detection

Stable enum vocabulary and output schema

recordType: job / company / signal / playbook / error. signalType: engineering-expansion / executive-hiring / sales-expansion / geo-expansion / compliance-buildout. severity: low / medium / high. signalFreshness: fresh (0-7 days) / recent (8-21) / aging (22-60) / stale (60+). hiringMomentum.tier: P1-HIGH-GROWTH (75+) / P2-EXPANDING (55-74) / P3-STEADY (35-54) / P4-QUIET (under 35). recommendedAction.priority: P1 / P2 / P3 / P4. recommendedChannel: linkedin / email / phone / multi-channel. failureType: invalid-input / parse-error. trustLayerStatus: verified / degraded / unverified.

These enums are additive and stable within v1. New values may be introduced; existing values will not be renamed or repurposed.

Last verified: March 27, 2026

Ready to try Indeed Hiring Intelligence?

This actor is coming soon to the Apify Store.

Coming soon