Hiring Intent Signals Scraper - B2B Buying Signals avatar

Hiring Intent Signals Scraper - B2B Buying Signals

Pricing

Pay per event

Go to Apify Store
Hiring Intent Signals Scraper - B2B Buying Signals

Hiring Intent Signals Scraper - B2B Buying Signals

B2B buying signals and hiring signals: aggregates months of Hacker News hiring threads into one row per company with a 0-100 hiring intent score, trend, website domain, tech stack detection and role families. Lead generation and company enrichment for outbound, CRM and Clay.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Andres Garcia-Baquero Leon

Andres Garcia-Baquero Leon

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

HN Hiring Intent Signals - Company-Level B2B Buying Signals from Hacker News

Turn the monthly Hacker News "Ask HN: Who is hiring?" threads into a clean, company-level hiring-intent dataset you can drop straight into a CRM, Clay table, or outbound sequence.

The HN API gives you unstructured comments, one month at a time. This Actor aggregates several months, resolves each company, and tells you how they are hiring - the trend, not just the snapshot. One row per company, scored 0-100, with a resolved web domain, tech stack and role families attached.

Why this instead of a job scraper

Job scrapers give youThis Actor gives you
One row per job postOne row per company
A single monthUp to 12 months rolled up
Raw free textNormalised company + resolved web domain
No trendnew / consistent / always-hiring / reaccelerating / churned
No prioritisation0-100 hiring intent score

Hiring is one of the strongest B2B buying signals: a company posting engineering roles three months in a row is scaling, has budget, and is buying tooling.

Example output

{
"company": "Spacelift",
"domain": "careers.spacelift.io",
"hiringIntentScore": 86,
"trend": "always-hiring",
"activeThisMonth": true,
"consecutiveMonths": 3,
"monthsPosted": ["August 2026", "July 2026", "June 2026"],
"monthsPostedCount": 3,
"totalListings": 3,
"roleFamilies": ["backend", "infra-devops"],
"seniorityLevels": ["senior"],
"techStack": ["aws", "devops", "go", "kubernetes"],
"remotePolicy": "remote",
"locations": ["Remote (EU)"],
"latestRole": "Senior Backend Engineer",
"latestSalary": "$120k - $160k",
"latestMonth": "August 2026",
"latestHnUrl": "https://news.ycombinator.com/item?id=49160000",
"latestPostText": "..."
}

The same record flattened, the way it lands in a spreadsheet or CRM:

companydomainhiringIntentScoretrendconsecutiveMonthsroleFamiliestechStackremotePolicylatestRole
Spaceliftcareers.spacelift.io86always-hiring3backend, infra-devopsaws, devops, go, kubernetesremoteSenior Backend Engineer

Output fields

FieldTypeMeaning
companystringNormalised company name
domainstring | nullResolved company website (ATS/social/link-shortener hosts filtered out)
hiringIntentScorenumber0-100. Recency + streak + role breadth + stack breadth + enrichment
trendstringnew, consistent, always-hiring, reaccelerating, churned
activeThisMonthbooleanPosted in the newest thread
consecutiveMonthsnumberUnbroken streak counting back from the newest thread
monthsPosted / monthsPostedCountarray / numberEvery month the company appeared
totalListingsnumberNumber of posts aggregated
roleFamiliesarraybackend, frontend, fullstack, data, ml-ai, infra-devops, mobile, security, product, sales-gtm, support
seniorityLevelsarrayjunior, senior, staff, principal, lead, head, director, vp, founding, ...
techStackarrayDeduplicated technologies across all months
remotePolicystringremote, hybrid, onsite, unspecified
locationsarrayLocations seen across posts
latestRole, latestSalary, latestMonth, latestHnUrl, latestPostText-Most recent post details

How to use it

  1. Open the Actor and click Try for free.
  2. Leave the input empty ({}) to get the last 3 months of hiring signals, or set monthsBack up to 12 for a deeper rollup.
  3. Narrow the list with trendFilter, minIntentScore, techFilter or requireDomain so you only pay for accounts you would actually work.
  4. Export the dataset to CSV, JSON, Excel, the API or a webhook and push it into your CRM, Clay table, Google Sheet or outbound sequence.

Input

All fields are optional - running with {} returns the last 3 months of signals.

FieldTypeDefaultDescription
monthsBackinteger3How many monthly threads to aggregate (1-12)
trendFilterarray[]Keep only these trends, e.g. ["always-hiring","consistent"]
minIntentScoreinteger0Keep only companies scoring at least this
techFilterarray[]Keep companies whose stack contains ANY of these, e.g. ["rust","kubernetes"]
requireDomainbooleanfalseOnly companies with a resolved website (best for CRM enrichment)
maxResultsinteger500Cap on returned companies (1-2000)

Example: high-intent, domain-resolved infra buyers

{
"monthsBack": 6,
"trendFilter": ["always-hiring", "consistent"],
"minIntentScore": 60,
"techFilter": ["kubernetes", "terraform", "aws"],
"requireDomain": true,
"maxResults": 200
}

Example: fresh companies that just started hiring

{ "monthsBack": 4, "trendFilter": ["new"], "requireDomain": true }

Use cases

  • Outbound prospecting - target companies scaling engineering right now.
  • Clay / CRM enrichment - company + domain + stack + trend, ready to join.
  • DevTool GTM - filter by techFilter to find accounts on your stack.
  • Recruiting intelligence - see which competitors keep hiring and for what.
  • Market research - monthly tech-stack and role-family demand shifts.

Integrations

The dataset is standard Apify output, so it plugs into the tools you already run:

  • Zapier, Make and n8n - trigger a flow on every new run.
  • Slack - post the top-scoring new companies to a sales channel.
  • Google Sheets - export straight into a shared prospecting sheet.
  • Airbyte - sync results into your warehouse.
  • LangChain - feed company signals into an agent or RAG pipeline.
  • REST API - pull results directly from the Apify dataset endpoint.
  • Webhooks - fire on run success and push results anywhere.
  • Scheduling - run it monthly, right after each new "Who is hiring?" thread goes up, so your signal list refreshes itself.

Pricing

Pay per result - you only pay for company signals actually delivered.

EventPrice
Actor start$0.00005
company-signal (one enriched company)$0.015

A typical 3-month run returns a few hundred companies. Use maxResults, minIntentScore or requireDomain to control both volume and spend, and set a max total charge on the run to hard-cap it.

FAQ

Do I need a Hacker News account or API key? No. The Actor uses public, official HN APIs. There is nothing to log into and no credentials to configure.

Is this legal? Yes. It reads publicly available Hacker News comments through HN's own public APIs. No login walls are bypassed and no HTML is scraped.

How is hiringIntentScore calculated? It combines recency (did they post in the newest thread), streak length (consecutive months), role breadth (how many role families), stack breadth (how many technologies mentioned) and enrichment completeness (domain, salary, location resolved). The result is normalised to 0-100.

Why is domain sometimes missing? Some HN posts link only to an ATS, a Google Doc, a social profile or a link shortener - those hosts are deliberately filtered out rather than passed off as a company website. Set requireDomain: true if you only want rows with a resolved domain.

How far back can I go? Up to 12 monthly threads via monthsBack. More months means longer streaks, richer stacks and more reliable trend classification.

Will it break? It is built on official APIs with retries and exponential backoff, and thread-level failures degrade gracefully instead of killing the run. Parsing is heuristic because HN posts are free text, so field coverage is high but not 100% (see Notes).

Troubleshooting

ProblemFix
Empty datasetLower minIntentScore or clear trendFilter / techFilter - your filters are too strict
Too few companies returnedIncrease monthsBack to aggregate more monthly threads
Missing domains on many rowsSet requireDomain to false to keep companies whose website could not be resolved

Data source & reliability

100% official APIs - HN Algolia Search (thread discovery) and the HN Firebase API (comments). No HTML scraping, no login, no anti-bot fragility. Requests use retries with exponential backoff, and thread-level failures degrade gracefully instead of killing the run.

Notes

  • HN posts are free text, so parsing is heuristic. Measured on a real 111-company sample from the August 2026 thread: role 85%, location 95%, domain 74%, role families 96%, tech stack 86%.
  • Fields are classified by content, not by position - a missing role does not shift the location into the wrong column.
  • Non-job comments (replies, candidate self-posts) are filtered out, so you are never charged for a row that is not a real listing.
  • Companies are matched by a normalised key, so Acme, Inc. and Acme merge.