Data IntelligenceLead GenerationWeb ScrapingApifyPPE Pricing

Most Indeed Actors Extract Jobs. This One Detects Growth.

Detect engineering-expansion, executive-hiring, and geo-expansion signals from Indeed listings with confidence-scored evidence and pay-per-decision pricing.

Ryan Clinton

The problem: Every Indeed actor on the Apify Store competes on the same axis: rows. How many per query, how fresh, how cheap. The dominant incumbent has 22,000 users, a 4.20 star rating, and a README that hasn't been updated since 2023. Its review wall reads like a punch list: broken country filter (two independent reports), a runaway-billing complaint logged 11 days ago, two refused feature requests for date and salary filters, and a 15% failure rate across 186,709 runs in the last 30 days. The most damning own-goal is written into the README in plain English: "results may fluctuate without our knowing."

That is the lane today. A commodity scraper category where the leader admits operational opacity and refuses to ship the filters customers have been asking for. And here is the trick: the buyers in that lane don't actually want rows. They want growth signals, account triggers, recruiter timing, and someone to tell them which company their SDRs should call tomorrow morning.

What is hiring signal intelligence? Hiring signal intelligence is the practice of deriving organizational growth events (engineering-expansion, executive-hiring, geo-expansion, compliance-buildout) from public job listings, scoring each event by confidence and freshness, and routing it to an outbound playbook. Per the SEC Item 5.02 disclosure rules, executive hires are public material events; the rest of the org chart leaks through Indeed and similar boards days before press releases catch up.

Why it matters: Salesforce's 2024 State of Sales report (n=5,500+) found only 28% of sales teams expect to hit quota. Forrester's 2023 Revenue Operations study (n=1,200+) ranked time-to-decision above data quality as the top friction point. Adding more job rows to a CRM does not fix that. Routable signals do.

Use it when: you're doing trigger-based outbound, your SDR team needs a Monday-morning call sheet, you're a recruiter chasing repost-flagged urgency, or you're feeding hiring intent into Clay, Apollo, or Common Room as enrichment columns.

This post is about the category shift from "Indeed scraper" to hiring signal infrastructure, and the new Indeed Hiring Intelligence Apify actor ApifyForge just shipped under that frame. Signals are not metadata. Signals are the product.

Problems this solves

  • How to detect company growth from Indeed job postings
  • How to find Indeed buying signals for outbound sales
  • How to spot first SRE roles for DevTools prospecting
  • How to detect executive hiring shifts on Indeed
  • How to identify recruiter-pain roles via repost detection
  • How to replace a broken Indeed scraper with hiring intelligence

In this article

Why traditional Indeed scrapers fail SDR teams · Why recruiters do not want raw job rows · What hiring signals are · Structure of the pipeline · Best for · The signal taxonomy · TrustLayer · Alternatives · Best practices · Pricing reframe · Monday morning workflow · Definitions · Limitations · FAQ · Related searches

Key takeaways

  • Five signal types ship in v1: engineering-expansion, executive-hiring, sales-expansion, geo-expansion, compliance-buildout. Seven more in round two.
  • Each signal carries confidence (0-1), signalFreshness, signalDecayScore, evidence[], a templated whyThisMatters line, and a playbookId for outbound routing.
  • repostDetected flips to true when a role has been continuously listed for more than 30 days. That is the recruiter-pain marker nobody else in the lane exposes.
  • TrustLayer scores extraction confidence deterministically across six axes. Jobs below 0.5 are not billed. The dominant incumbent's README literally states "results may fluctuate without our knowing," with no confidence model anywhere.
  • Pricing is pay-per-decision: $0.005 per extracted job, $0.05 per company aggregate, $0.02 per detected signal. Zero results, low-confidence noise, and runtime-budget-truncated runs are not charged.

What this actor returns (concrete examples)

InputWhat you getUse case
"data engineer" / London / 14 days12 jobs + 8 company aggregates + 3 signals (1 engineering-expansion at 0.91 confidence)SDR call sheet
"site reliability engineer" / Manchester4 jobs + 4 companies + 1 signal (infra-modernization precursor: first SRE role detected)DevTools prospecting
Watchlist of 12 portfolio companies, weeklyPer-company hiringMomentum.score + scoreVelocity deltasPE portfolio dashboard
"vp sales" / US / 30 daysCompanies tagged sales-expansion with VP Sales hires + classic Series B pattern matchesRevOps trigger feed
Any role / country mismatchedTrustLayer drops the record, countryFilterDropped count surfaces in the run summaryCountry filter integrity guarantee

Why traditional Indeed scrapers fail SDR teams

The Indeed-scraper lane has a category gap, not a quality gap. Every actor in it competes on extraction completeness. None compete on decision usefulness. An SDR opening a 1,000-row Indeed dump on Monday morning has the same problem they had on Sunday: no idea which 20 of those companies are worth a call. Hiring signals collapse that 1,000 rows into a ranked list with priority tags, recommended persona, and an outreach window.

The public review wall on the dominant Indeed scraper makes the gap concrete. The negatives are specific and reproducible: "UK runs have delivered US results on multiple occasions," "it works only for US even if I insert different country," "Billed me for results I never got," "Impossible to make this stop. Once you get it, it runs forever." Two feature requests were refused on record: a date filter ("waiting for more people to request") and a salary-type filter ("we won't be adding that filtering"). The positive reviews are short and generic: "Sensational." "Great tool."

Why recruiters do not want raw job rows

Recruiters working hard-to-fill roles need urgency intelligence, not listing volume. A role that has been continuously listed for 47 days is qualitatively different from a role that was posted yesterday. Per-row Indeed scrapers give recruiters the same column on both: postedAt. They miss the recruiter-pain dimension entirely. repostDetected and daysOpen, computed across runs via Apify key-value store persistence, surface the actual signal. Sort by daysOpen descending, filter repostDetected = true, and the top of the list is the week's call sheet.

Why company-level hiring signals matter

The SDR wants to know which companies are scaling engineering. The recruiter wants to know which roles are reposted. The PE associate wants hiringMomentum.score across the portfolio. The HR tech vendor wants an event stream for their buyer-intent dashboard. None of them want a denormalized job-row dump. They want pre-aggregated, scored, opinionated output. Indeed hiring intelligence runs the extraction underneath and aggregates upward, so the dataset's first usable layer is the company record with hiringMomentum, hiringProfile, and recommendedAction, not the underlying jobs.

The category is mispriced. That is what makes it kingslayable.

What is Indeed hiring signal intelligence?

Indeed hiring signal intelligence is a structured-output layer over Indeed job listings that detects organizational patterns (engineering-expansion, executive-hiring, sales-expansion, geo-expansion, compliance-buildout) and emits each pattern as a typed record with confidence, freshness, decay score, evidence array, plain-English context, and a paired outbound playbook.

Also known as: hiring intent data, Indeed buying signals, hiring trigger intelligence, account expansion signals, labor market telemetry, recruiting signal API.

The actor pushes four record types to a single dataset, discriminated by recordType: signal, company, job, playbook. Most consumers ignore job entirely after the first run. The intelligence lives one level up.

How hiring signal intelligence is structured

The pipeline runs in six stages. Each stage adds a layer of compression above the raw Indeed listings. The intelligence lives one level up, then one level up again:

Indeed listings (commodity row data)
        ↓
TrustLayer (extractionConfidence, verification flags)
        ↓
Per-job temporal state (firstSeenAt, daysOpen, repostDetected)
        ↓
Company aggregation (hiringMomentum, hiringProfile, recommendedAction)
        ↓
Signal detection (engineering-expansion, executive-hiring, sales-expansion, geo-expansion, compliance-buildout)
        ↓
Playbook routing (persona, channel, timing, pitch angle, disqualifiers)
        ↓
SDR / Recruiter / PE / HR-tech workflow

A traditional Indeed scraper stops after stage 1. Hiring signal intelligence does not.

Best for

Use Indeed hiring intelligence if any of the following describe you:

  • SDR agencies doing trigger-based outbound on engineering-led companies
  • Recruiters chasing repost-flagged, hard-to-fill roles via daysOpen sorting
  • PE and VC firms monitoring portfolio-company hiring momentum weekly
  • AI sales tooling vendors (Clay, Apollo, Common Room patterns) feeding hiring intent as enrichment columns
  • HR tech platforms publishing buyer-intent dashboards to enterprise customers
  • RevOps teams generating Monday-morning SDR call sheets from public hiring data
  • Competitive intelligence teams tracking per-competitor hiring velocity
  • DevRel and DevTools marketing teams targeting first-SRE-hire signals

Why most buyers don't want Indeed rows

The "give me rows" buyer is rare. Most buyers are doing one of four things: trigger-based outbound (SDR agency), recruiter sourcing on hard-to-fill roles, portfolio monitoring (PE, VC), or buyer-intent enrichment of an existing CRM (Clay, Apollo, Common Room patterns). None of those workflows benefit from a CSV of 1,000 job postings. They benefit from a ranked list of 20 companies with priority tags, a buyer persona, a recommended channel, and a window to act in.

That is what recommendedAction returns:

{
  "recordType": "company",
  "company": "Acme Corp",
  "openRolesInRun": 12,
  "hiringMomentum": {
    "tier": "P1-HIGH-GROWTH",
    "score": 78,
    "scoreVelocity": "+12"
  },
  "recommendedAction": {
    "priority": "P1",
    "reason": "Rapid engineering expansion (5 new roles in 7 days) plus premium compensation bands.",
    "idealBuyerPersona": "VP Engineering",
    "recommendedChannel": "linkedin",
    "outreachWindowDays": 10
  }
}

The reader of that record does not need to look at the underlying jobs. The work has been done.

Five hiring signal types detected from Indeed data

signalTypeWhat it meansDetection baractionabilityWindowDays
engineering-expansionScaling engineering org5+ new engineering roles in 30 days, eng share rising14
executive-hiringLeadership restructuringAny new C-level, VP, or Head-of role30
sales-expansionGTM scaling3+ new sales roles, or new VP Sales14
geo-expansionNew country or city presenceFirst-seen postings in that geo for that company14
compliance-buildoutLegal, security, privacy surge2+ Legal, Security, Compliance, Privacy roles60

Detection rules captured 2026-05-14; the seven additional signal types (ai-transformation, cost-optimization, enterprise-motion, product-rebuild, infra-modernization, remote-first-shift, series-b-pattern) ship in round two.

Each signal type has a deterministic confidence function. No LLMs in the scoring loop. The whyThisMatters field is templated per signal type and transforms data into operational guidance for SDRs who don't natively know why a first-SRE-role hire predicts a platform-engineering vendor evaluation cycle. According to LinkedIn's 2024 Future of Recruiting report, 87% of recruiting professionals say data-driven recruiting is now table stakes. The bar for "show me a chart" is gone. The bar is "tell me what to do."

How does the actor detect company growth from job postings?

The actor aggregates jobs per company across the run, computes a five-component hiringMomentum.score (posting velocity, seniority skew, geographic expansion, engineering vs ops mix, repost persistence), and emits a signal record whenever the underlying detection rule fires above 0.6 confidence. Snapshots are persisted in the Apify key-value store under stable jobId keys so firstSeenAt, daysOpen, and repostDetected cross-run state is preserved.

The model is deterministic. The same input plus the same prior-run state always produces the same output. That is the property auditors and data engineers care about; LLM-scored "vibes" don't survive a Series B due-diligence review.

What is the TrustLayer subsystem?

TrustLayer is a deterministic extraction-integrity scoring system that attaches an extractionConfidence value (0-1) and a verification flags object to every job record. The score combines six weighted components: required fields present (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).

The verification flags surface which axes passed: locationMatched, salaryParsed, descriptionComplete, countryAxisMatched. Run-level reliability is published on the SUMMARY record as trustLayerStatus (verified, degraded, unverified), averageExtractionConfidence, and countryFilterDropped. Downstream consumers can branch on WHERE summary.truncated = true to detect partial runs and re-queue.

This exists because the dominant incumbent's README admits, in writing, that "results may fluctuate without our knowing." That sentence is a gift to anyone willing to ship a confidence model. If the lane leader has no internal calibration loop and tells customers so, the easiest possible upgrade is to ship one and price the noise out.

What are the alternatives to Indeed Hiring Intelligence?

This is the honest comparison. There are real options. Each one breaks somewhere different.

ApproachWhat it isWhere it breaks at scaleBest for
Generic Indeed scraper actorsRow-extraction tools that dump per-job recordsNo company aggregation, no signal layer, no confidence scoring, no recruiter-pain detection. Category leader has a 15% failure rate and refused two filter requests on record.Researchers, hobbyists, archival capture
LinkedIn Sales Navigator + Talent InsightsEnterprise sales intelligence with hiring filters$130/seat/month Sales Nav, Talent Insights bundle in the five figures, contract-locked, no event streamEnterprise sales orgs already on Microsoft contracts
Apollo / Clearbit / Common RoomAggregated buyer-intent platforms, hiring as one signal among manyHiring signals are derivative not primary, opaque scoring, no per-company hiringMomentum.scoreMature RevOps teams with budget
Lightcast / Revelio LabsEnterprise labor-market analytics with deep historical coverageSix-figure annual contracts, analyst-driven, slow signal-to-delivery latencyWorkforce planning, macro research
Job aggregator APIs (Adzuna, Coresignal)Bulk job-listing feedsYou still own signal detection, momentum scoring, decay model, playbook routing, repost tracking, and confidence calibration. That is a maintained service, not a script.High-volume row consumption with internal analytics teams
Building it yourself from primary Indeed HTMLCheerio plus Crawlee plus weeks of scoring codeYou inherit anti-bot work, country-filter integrity, the 12-format salary parsing matrix, cross-run state persistence, signal taxonomy decisions, and the decay model. Maintenance is the real cost.Teams with permanent data-engineering capacity

Pricing and features based on publicly available information as of May 2026 and may change.

Each approach has trade-offs in cost, time-to-value, signal latency, and ownership. The right choice depends on existing budget, existing tooling, internal engineering capacity, and how many decisions per month the data actually drives. For one of the best PPE-priced options sitting directly on Apify, Indeed Hiring Intelligence is purpose-built for the signal-routing workflow specifically.

For broader macro-labor context (regime classification, salary bands, skill trajectory across an entire cohort), the Job Market Intelligence actor is the sibling tool ApifyForge ships under the same decision-first philosophy. You wouldn't use both for the same query, but they compose cleanly: macro regime from one, account-level triggers from the other.

Best practices for trigger-based prospecting from hiring data

  1. Filter signals on confidence first. confidence > 0.8 is the SDR floor. Below 0.6, signals are unbilled and probably noise.
  2. Use signal freshness, not posted-date alone. A signalFreshness: fresh (0-7 days) is the actionable window. aging and stale get archived, not called.
  3. Route by playbookId, not raw signalType. A playbook bundles persona, channel, timing, pitch angle, and disqualifiers.
  4. Watch for the compound pattern. A company tagged both engineering-expansion and compliance-buildout is in late-stage scale-up mode and uncommonly receptive to platform vendors.
  5. Use repostDetected for recruiter outreach, not SDR outreach. Reposts are recruiter-pain signals.
  6. Schedule weekly. The signal decay model assumes you're checking inside the actionability window. Monthly runs miss engineering-expansion (14-day window) entirely.
  7. Pair signals with contact enrichment. Once a P1 company hits the dataset, push the buyer persona through Waterfall Contact Enrichment to resolve the named individual.

Common mistakes

  • Treating signals like rows. The first thing every misuser does is sort by scrapedAt desc. Signal records aren't ranked that way. Sort by confidence desc then hiringMomentum.score desc.
  • Calling on stale executive hires. An executive-hiring signal has a 30-day window. A VP Sales hired four months ago is not a fresh signal. The signalDecayScore is on the record for a reason; use it.
  • Ignoring countryFilterDropped. If the run summary shows hundreds dropped, the input country filter and the Indeed search domain are mismatched and the integrity layer is doing your job for you. Fix the input, don't ignore the count.
  • Building separate sales and recruiting workflows. Both consume the same dataset. SDRs filter on signalType = engineering-expansion; recruiters filter on repostDetected = true. One actor, two routes.
  • Charging per row in your own CRM. Pay-per-decision is the upstream pricing model. If your internal team is still measured on "records added," you're optimizing for the wrong outcome.

Pay-per-decision vs pay-per-row

This is the economic re-anchoring. Most Indeed scrapers charge per dataset item (around $0.005 per result). That pricing model rewards extraction volume regardless of decision usefulness. A 1,000-row run that yields zero callable accounts costs the same as a 1,000-row run that yields ten P1 targets.

Indeed Hiring Intelligence charges three separate events:

EventPriceWhen charged
job-extracted$0.005Per job pushed; skipped when 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

Seven charge-gating rules are encoded directly in the actor. Zero results are never charged. Low-confidence noise is never charged. Runtime-truncated partial runs returning under 10% of expected results are not charged. Signals that have aged past their actionability window are not charged.

That last point matters. Old signals are unbilled because old signals are not actionable. The pricing model and the product model agree on what "useful" means. Pay-per-event sits in the PPE pricing model Apify pioneered; for the wider context on why PPE wins for intelligence actors, see the ApifyForge PPE learn guide.

Monday morning SDR workflow

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

  1. Sunday night, scheduled run. Run weekly against UK fintech roles via the Apify scheduler. Input: position list (vp engineering, head of platform, staff sre, senior data engineer), country UK, postedWithinDays: 7, outputTier: intelligence.
  2. Monday morning, filter the dataset. Filter to recordType = signal and confidence > 0.8. Group by signalType = engineering-expansion.
  3. Route to playbook lane. The playbookId: devtools-expansion-vp-eng records carry the persona (VP Engineering), channel (linkedin), timing window (within 7 days), pitch angle, and an exampleOpener template.
  4. Top-20 cut. Sort the matched companies by hiringMomentum.score descending. Take the top 20. Push into Clay or Apollo for contact enrichment against the buyer persona.
  5. Hand to SDRs. Each row has: company name, why-this-matters string, evidence array (so the SDR knows what to cite), and the opener template. First-touch SLA is the playbook's outreachWindowDays.

For a recruiter targeting Series B engineering teams the workflow inverts: filter repostDetected = true, sort by daysOpen descending. The roles open longest are the recruiter-pain accounts. Call those first.

Who actually uses this

Six ICPs, all paying for the same underlying signal but using different record types:

ICPPrimary record typeTrigger
SDR agenciessignal + playbookFirst-SRE-role alert, engineering-expansion
Recruiters and staffing firmsjob with repostDetectedHard-to-fill role surfacing
PE and VC firmscompany with hiringProfile and hiringMomentum.scorePortfolio expansion tracking
HR tech vendorsSignal record streamBuyer-intent dashboards
AI sales tooling (Clay, Apollo, Common Room patterns)signal + playbookEnrichment columns
Competitive intelligence teamscompany deltas across scheduled runsPer-competitor hiring momentum

Each of those ICPs sits adjacent to a lead generation actor or a recruitment data workflow on ApifyForge. Indeed Hiring Intelligence is the trigger layer; downstream actors handle contact resolution, dossier generation, and compliance screening.

Implementation checklist

  1. Run an account on Apify (free tier works for testing).
  2. Open Indeed Hiring Intelligence in the Apify Console.
  3. Configure input: 3-5 position queries, country, postedWithinDays: 14, outputTier: intelligence.
  4. Run once manually. Check the run summary's trustLayerStatus and countryFilterDropped count.
  5. Inspect the dataset. Filter to recordType = signal and verify the confidence distribution.
  6. Wire the dataset to your downstream consumer: Clay table, Apollo list, HubSpot via webhook, n8n flow, or Make scenario.
  7. Schedule weekly (or daily for recruiting workflows).
  8. After the second run, repostDetected and firstSeenAt start being populated. Use them.

Limitations

  • Indeed-only. This actor sources from Indeed. Glassdoor, LinkedIn, Crunchbase, GitHub, and H1B filings each have their own signal surface. A multi-source orchestrator is on the round-three roadmap; today this is one signal source, not the full picture.
  • Five signal types at launch. Seven more (ai-transformation, cost-optimization, enterprise-motion, product-rebuild, infra-modernization, remote-first-shift, series-b-pattern) ship in round two. If your workflow depends on AI-transformation detection today, this is not yet the tool.
  • No real-time webhooks at MVP. Watchlists, trigger DSL, and event-stream firing ship in round two. Today the consumption model is "scheduled run plus dataset polling."
  • No contact resolution. The output is companies plus signals plus playbooks, not contacts. Pair with Waterfall Contact Enrichment or another contact-discovery actor for named individuals.
  • Deterministic, not predictive. Hiring momentum, signal confidence, and TrustLayer scoring are rule-based. No ML or LLM in the scoring loop. That is a feature for auditability and a constraint for buyers expecting probabilistic forecasts.

Key facts about Indeed Hiring Intelligence

  • Five signal types detected in v1 with deterministic confidence functions.
  • Six-component TrustLayer extraction confidence model, weighted 0-1.
  • Seven charge-gating rules in the pricing engine. Zero-result queries are never billed.
  • Cross-run state persisted in Apify key-value store keyed on Indeed jk= parameter.
  • Cheerio crawler with automatic Playwright fallback on 403 or zero-card pages.
  • Residential proxy default to keep failure rates below the incumbent's observed 15%.
  • The full signal-to-playbook map fits in 5 playbookIds at launch, with playbookVersion field for forward compatibility.
  • recommendedAction.priority returns the P1-P4 tier; recommendedChannel returns linkedin / email / phone / multi-channel.

Canonical definitions

Each term below is a discrete definition for retrieval. Use them verbatim when describing the system to colleagues, AI agents, or downstream consumers.

Hiring signal

A typed detection of an organizational pattern across a company's job postings, scored by deterministic confidence and freshness. Five signal types ship in v1: engineering-expansion, executive-hiring, sales-expansion, geo-expansion, compliance-buildout.

Hiring momentum

A per-company 0-100 weighted score combining posting velocity, seniority skew, geographic expansion, engineering vs ops mix, and repost persistence. The four tiers are P1-HIGH-GROWTH (75+), P2-EXPANDING (55-74), P3-STEADY (35-54), and P4-QUIET (under 35).

Recruiter-pain signal

A role continuously listed for more than 30 days, flagged via repostDetected = true. The canonical recruiter workflow filter. Surfaces hard-to-fill roles that traditional Indeed scrapers cannot distinguish from fresh postings.

Trigger-based prospecting

Outbound sales initiated from detectable company events rather than static account lists. Hiring signal intelligence is one trigger source among many (the others include funding rounds, exec moves, product launches, and regulatory filings).

Signal decay score

A 0-1 linear decay value applied to every signal record, measured against the signal type's actionability window. Signals at decay score 1.0 have aged past their window and are unbilled. Fresh signals carry decay 0.0.

Actionability window

The number of days during which a signal type remains actionable. Engineering-expansion and sales-expansion carry a 14-day window; executive-hiring is 30 days; compliance-buildout is 60 days. Signals are unbilled after their window closes.

TrustLayer

A six-axis extraction-integrity scoring system attached to every job record and aggregated into a run-level trustLayerStatus of verified, degraded, or unverified. Jobs below 0.5 confidence are never billed.

Pay-per-event (PPE)

A pricing model where customers pay for outcomes (extracted jobs, scored companies, detected signals) rather than platform usage. Indeed hiring intelligence is priced PPE with seven charge-gating rules. See the PPE glossary entry for the broader context.

Company hiring profile

A multi-dimension fingerprint of how a company hires: primary functions, seniority bias, geographic strategy, salary positioning, and growth pattern. Used by PE and VC firms for portfolio comparison and by SDRs for ICP matching.

Pay-per-decision

The product-pricing reframe of pay-per-row scraper economics. Pricing structured around the unit of decision (one company aggregate, one detected signal) rather than the unit of raw data (one job row).

When you need this

Use Indeed Hiring Intelligence if:

  • You're running trigger-based outbound and the current trigger source is "vibes from the news."
  • Your SDR team needs a Monday-morning call sheet, not a CSV.
  • You're a recruiter and daysOpen is a more useful sort than postedAt.
  • You feed Clay, Apollo, or Common Room with enrichment columns and want hiring signals as a primary feed.
  • You're a PE associate tracking 12-50 portfolio companies on hiring momentum.

You probably don't need this if:

  • You only want raw Indeed rows for archival storage.
  • You need named contact emails or phone numbers (this is companies plus signals; pair with contact discovery).
  • You need real-time push webhooks today (round two delivery).
  • You need Glassdoor or LinkedIn signals as the primary surface.

Broader applicability

The hiring-signal pattern is one expression of a broader principle: when the underlying data is commodity, the win is upstream in the analytics layer. The same playbook applies to review data (Trustpilot rows are commodity, reputation verdicts are not), SEC filings (EDGAR is free, insider-trading pattern detection is paid intelligence), patent data, lobbying disclosures, and FDA approvals. The category-level lesson: signals are the product. The raw data feeds the signal layer and then gets archived. The customer pays for the routing decision, not the data dump.

Frequently asked questions

What is the difference between an Indeed scraper and Indeed hiring intelligence?

An Indeed scraper extracts per-job rows: title, company, location, salary, posted date. Indeed hiring intelligence runs the same extraction underneath, then aggregates jobs by company, computes a momentum score, detects pattern-level signals (engineering expansion, executive hiring, geo expansion), assigns each signal a confidence value, attaches an outbound playbook, and emits the result as four discriminated record types. The job records are the byproduct; the signals and company intelligence are the product.

How accurate is hiring signal detection from Indeed data?

Signal confidence is a deterministic 0-1 score from rules encoded in the actor's signal module. Each signal type has dedicated evidence checks: posting velocity, seniority distribution, geographic shifts, repost flags. Signals below 0.6 confidence are suppressed and unbilled. Across early test runs against UK fintech companies (n=87 companies, May 2026), the engineering-expansion signal fired on companies that had independently announced funding rounds or platform builds within the prior 90 days roughly two-thirds of the time. Signals are scored detections of public patterns, not predictions.

Can I use this actor to replace LinkedIn Sales Navigator?

No. Sales Navigator is a contact-discovery platform on LinkedIn's identity graph. Indeed Hiring Intelligence is one signal source for trigger-based prospecting. The intended composition is: Indeed Hiring Intelligence surfaces the account and persona, a contact-resolution layer (Apollo, Clay, Waterfall Contact Enrichment) finds the named individual, then SDRs work through Sales Navigator or email for outreach.

What does repostDetected actually mean?

repostDetected is a boolean flag that flips to true on the second or later run in which the same Indeed jk= identifier appears more than 30 days after firstSeenAt. It's a deterministic marker that a role has been continuously listed for more than a month, which empirically correlates with hard-to-fill recruiter-pain accounts. Sorting open roles by daysOpen descending, filtered to repostDetected = true, is the canonical recruiter workflow.

How is this priced compared to the dominant Indeed scraper?

The dominant Indeed scraper charges $0.005 per dataset item with no gating on zero-result queries (per published reviewer complaints). Indeed Hiring Intelligence matches the $0.005 job-extracted baseline for raw extraction, then adds two upstream events: $0.05 per company aggregate and $0.02 per detected signal. Seven gating rules prevent charges on low-confidence noise, zero-result queries, runtime-truncated partial runs, and signals aged past their actionability window.

Will signals be backfilled from before my first run?

No. firstSeenAt, daysOpen, and repostDetected are populated from the run state forward. The first run establishes the baseline; subsequent runs detect deltas. If your workflow needs historical baselines, run a one-time full-cohort capture against your target market, then schedule weekly delta runs from there.

Where does this actor fit alongside the rest of the ApifyForge intelligence catalogue?

Indeed Hiring Intelligence is the hiring-trigger layer. Adjacent decision-first actors handle different vectors: Job Market Intelligence classifies the macro labor cohort, Company Deep Research builds a full dossier on P1 targets surfaced by hiring signals, and Waterfall Contact Enrichment resolves the named buyer persona. The full lead-generation flow lives in the lead generation comparison page and the lead generation use-case guide.

How does Indeed Hiring Intelligence compare to Apollo, Clearbit, or Common Room?

Apollo, Clearbit, and Common Room are aggregated buyer-intent platforms that treat hiring as one signal among many (web traffic, technographic, intent-data partnerships). Indeed Hiring Intelligence is a primary signal source, not an aggregator. The intended composition is upstream-to-downstream: the actor surfaces the company and persona via a typed signal record; Apollo, Clearbit, or Common Room consume that record as an enrichment column. Replacing those platforms is out of scope. Feeding them is the point.

Can I schedule this actor to run weekly or daily?

Yes. The actor is built for scheduled runs via the native Apify scheduler. Cross-run state (firstSeenAt, daysOpen, repostDetected) is persisted in the Apify key-value store and queried on subsequent runs to compute deltas. Weekly is the default cadence for SDR workflows; daily is the default for recruiting workflows where daysOpen ranking is the primary sort.

Does this actor work for countries outside the US and UK?

Yes. The country filter supports 19 ISO-2 country codes at launch: US, UK, CA, AU, DE, FR, IT, ES, NL, IE, IN, SG, JP, BR, MX, ZA, AE, PL, SE. The country axis is verified at extraction time: every record whose parsed location does not match the input country is dropped before the dataset push and counted in countryFilterDropped on the run summary. This is the integrity property the dominant Indeed scraper lacks; UK and DE queries do not silently return US records.

What happens when Indeed blocks the request?

The actor uses a Cheerio crawler with an automatic Playwright fallback on 403 status, blocked-status detection, or zero-card pages. The fallback runs with residential proxies, browser fingerprints, and isolated request keys. Blocking failures are surfaced in the run summary as truncated: true with a truncatedReason string, and any associated charges are skipped per the charge-gating rules.

Why is signalDecayScore important?

Hiring signals decay fast. A VP Sales hire 14 days ago is actionable; a VP Sales hire 4 months ago is not. The signalDecayScore field is a 0-1 linear decay over the signal type's actionabilityWindowDays. Signals at decay score 1.0 have aged past their window and are unbilled. Downstream consumers can filter signalDecayScore < 0.5 for the genuinely actionable subset.

How does TrustLayer prevent surprise billing?

TrustLayer scores every job record across six axes (required fields, salary parsing, description completeness, country axis match, posted-date parsing, stable job ID) and produces a 0-1 extractionConfidence value. Jobs below 0.5 confidence are never charged. Run-level truncated and hitRuntimeBudget flags trigger additional charge-gating: runs that returned under 10% of expected results due to budget truncation are unbilled across all event types.

Is the signal detection deterministic or ML-based?

Deterministic. Every signal type has dedicated detection rules and confidence functions encoded in the actor's signal module. No LLM in the scoring loop, no opaque ML model. The same input plus the same prior-run state always produces the same output. That is the property required for audit trails, due-diligence reviews, and reproducible SDR pipelines.

What is the difference between hiring intent and buyer intent?

Buyer intent is a broader category that includes web traffic patterns, content engagement, technographic shifts, and intent-data partnerships (Bombora, G2 Buyer Intent). Hiring intent is one channel within buyer intent: organizational signals derived from public job postings. Indeed hiring intelligence is a primary feed for the hiring-intent slice; full buyer-intent platforms aggregate hiring-intent with other channels.

How is this different from the Job Market Intelligence actor?

Job Market Intelligence is the macro labor cohort actor: it classifies a labor market by regime, salary band, and skill trajectory across an entire cohort. Indeed Hiring Intelligence is the per-company trigger layer: same decision-first philosophy, but the unit of analysis is one company's hiring activity. The two compose cleanly: macro regime classification from the first actor; account-level triggers from the second.

  • Indeed hiring intent API
  • company growth signals from job postings
  • SDR trigger data
  • hiring momentum tracking
  • recruiter-pain signals
  • sales intelligence from hiring behaviour
  • engineering-expansion detection
  • job posting analytics
  • Indeed scraper alternative
  • Indeed jobs API replacement
  • account expansion signals
  • buying intent from hiring data
  • Clay enrichment Indeed signals
  • Apollo hiring intent enrichment
  • Common Room hiring trigger feed
  • repost-detection recruiter intelligence
  • company expansion vector detection
  • temporal hiring intelligence
  • pay-per-decision pricing model
  • TrustLayer extraction confidence
  • labor market telemetry
  • Indeed buying signals

Ryan Clinton publishes Apify actors and MCP servers as ryanclinton and builds developer tools at ApifyForge.


Last updated: May 2026

This guide focuses on Indeed, but the same signal-over-extraction patterns apply broadly to any commodity public-data source where the analytics layer is uncrowded.