Buyer Intent Signals: Hiring + Tech Gap Scorer avatar

Buyer Intent Signals: Hiring + Tech Gap Scorer

Pricing

$60.00 / 1,000 company reports

Go to Apify Store
Buyer Intent Signals: Hiring + Tech Gap Scorer

Buyer Intent Signals: Hiring + Tech Gap Scorer

Score companies on buying intent: actively hiring (growth/budget proxy, public ATS boards) AND missing a tech category you sell into (public homepage/DNS detection). Combines Hiring Signals + Tech Enricher into one buyerIntentScore.

Pricing

$60.00 / 1,000 company reports

Rating

0.0

(0)

Developer

ToolFoundry

ToolFoundry

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

38 minutes ago

Last modified

Share

Buyer Intent Signals — Hiring Velocity + Tech Gap Scorer

Give it a list of companies. Get back one score per company: are they growing (actively hiring) and not yet using a category of tool you sell? That combination — growth without the category you're pitching — is a classic B2B buying-intent signal, the kind Bombora and 6sense charge four/five figures a month for.

This is v0.1. It doesn't add a new data source — it combines two ToolFoundry Actors that already run in production, Hiring Signals (public ATS job-board data) and Tech Enricher (public homepage/DNS technology detection), and turns their two outputs into one decoded score instead of two raw dumps you'd have to cross-reference by hand.

What you get per company

FieldMeaning
hiringFound / hiringScore / openJobs / postedLast30d / atsSame hiring signal as Hiring Signals: is there a public job board, how many open roles, how many posted in the last 30 days, 0–100 hiring score (volume + freshness)
techFound / technologies / technologiesByCategorySame tech-stack signal as Tech Enricher: detected technologies from the homepage/headers/CSP, grouped by category (CMS, CRM, Analytics, Marketing, Support, …)
hasTargetCategoryOnly present when you set Target technology category. true if the detected stack includes that category, false if it doesn't (or if the tech lookup itself failed — check techFound/techNote)
buyerIntentScoreThe combined score. See "Scoring" below for the exact formula — no hidden weights
domain, domainGuessedThe domain used for the tech lookup, and whether it was guessed from a bare company name (see "Input" below)

Scoring (exact formula, no black box)

buyerIntentScore = hiringScore // no target category set
buyerIntentScore = hiringScore // target category set AND detected in their stack
buyerIntentScore = round(hiringScore × 1.5), capped at 100 // target category set, tech lookup succeeded, AND category NOT detected
buyerIntentScore = hiringScore // target category set but tech lookup failed (unknown, never guessed as an absence)

hiringScore is Hiring Signals' own 0–100 score: round(100 × (0.6 × volume + 0.4 × freshness)), where volume is a log-scaled open-role count (saturates ~300 roles) and freshness is the share of roles posted in the last 30 days.

The 1.5× boost is a simple, disclosed multiplier, not a trained or "proprietary" weighting — v0.1 is deliberately this plain rather than presenting a made-up formula as more rigorous than it is. It surfaces companies that are both growing and missing the category you sell, without pretending to know how likely they are to actually buy.

Input

  • Companies: same format as Hiring Signals — names (Ramp), domains (stripe.com), or explicit boards (greenhouse:stripe, lever:palantir, ashby:ramp, workable:huggingface, smartrecruiters:visa, breezy:attentive, personio:deskbird, workday:tenant:wdN:site).
  • Target technology category (optional): one of the categories Tech Enricher's fingerprints (84 technologies) actually group technologies into, with the number of technologies in each: Analytics 15, CMS 11, Frontend 10, Hosting 9, Marketing 9, Support 7, CRM 5, Ecommerce 4, Recruiting 4, Payments 3, Video 3, Fonts 2, A/B Testing 2. Coverage is uneven: CRM only knows Salesforce, HubSpot CRM, Pipedrive, Zoho SalesIQ and Freshsales, and only when the homepage loads their script (a <script src> or the CSP; a link or a mention doesn't count). A company on any other CRM, or one whose CRM never appears on its homepage, shows hasTargetCategory: false. It's a dropdown, not free text, so a typo isn't possible via the Console; a raw API call with an unlisted value is rejected by the input schema before the run starts, not silently mis-scored.

Domain resolution (read this if you pass bare company names)

The tech-stack half needs an actual website to fetch. If your input is already a domain (stripe.com) or explicit board syntax has no domain to give, it's used as-is or skipped. If your input is a bare company name (Ramp, Hugging Face), the domain is guessed as the name joined together + .com (ramp.com, huggingface.com) — the same slug-guessing approach Hiring Signals already uses for job boards. This works for a lot of companies but is not a real domain lookup; it will be wrong for companies whose brand name isn't their domain. domainGuessed: true flags every guessed case so you can spot-check. If a guessed domain redirects to a different company's site (e.g. linear.com goes to analog.com, not Linear), its tech data isn't used: techFound: false and techNote says where it redirected. A redirect is accepted when the site it lands on starts with the guessed name, e.g. huggingface.com → huggingface.co, datadog.com → datadoghq.com. Inputs that are IP addresses, localhost or private-network names are never fetched. For accurate results, pass domains directly. Explicit ats:slug inputs (greenhouse:stripe) have no domain information at all — the hiring signal still works, but the tech signal is skipped (techFound: false, techNote explains why).

Pricing

Pay per result: $0.06 per company with a public job board that has open jobs (hiringFound: true). The score is built on the hiring signal, so without one buyerIntentScore is always 0. Companies with no board, or a board with no open jobs, are returned free, with any tech-stack data that was found, and an error saying why they weren't charged. Set a max charge per run and the Actor stops cleanly when it's reached.

Duplicates are charged once. Inputs are deduplicated on the job board they resolve to (ATS + slug), not on the text you typed: Stripe, stripe.com and greenhouse:stripe are one company, and so are Linear, linear.app and ashby:linear, even though they carry different domains (or none). Inputs with no job board are deduplicated on their domain. In each group the reported row is the first input, in input order, whose homepage lookup succeeded (so linear.app is reported rather than ashby:linear, which has no domain), or the first input if none did. Every other input in the group still gets its own row, free, with duplicateOf set to the reported input.

Data sources & compliance

No new data source: reuses the same official public ATS job-board APIs (Greenhouse, Lever, Ashby, Workable, SmartRecruiters, Breezy HR, Workday, Personio) as Hiring Signals, and the same public homepage HTML/headers/CSP + DNS-over-HTTPS lookups as Tech Enricher. No logins, no scraping of personal data.

Limitations (v0.1, honestly)

  • Not a new data source. This is a decoded/scored combination of two existing Actors' detectors, not an independent signal. If you already run both separately, this saves the cross-referencing step and adds the score — it doesn't see anything they don't.
  • Domain guessing for bare company names is a heuristic, not a lookup (see above) — wrong for companies whose domain isn't {name}.com. Pass domains for reliable results.
  • Homepage-only tech detection, same as Tech Enricher: a tool used only on a subpage (e.g. a CRM widget that only loads in a logged-in app) won't be detected, which can produce a false hasTargetCategory: false (and an inflated buyerIntentScore) for a company that actually has the tool. This is the single biggest accuracy risk in the scoring — treat a high score as "worth checking," not "confirmed."
  • Hiring-score inherits Hiring Signals' own limitations: guessed job-board matches can miss companies on unsupported ATSes (Workday needs an explicit board), and postedAt freshness can be inflated by reposted roles.
  • No firmographic data (employee count, revenue, funding) — none of that is available from public, unauthenticated sources.

Support

Open an issue on the Actor's Issues tab or email toolfoundry@agentmail.to. Issues are read daily and fixed promptly.