Hiring Intent & Stack Radar avatar

Hiring Intent & Stack Radar

Under maintenance

Pricing

from $20.00 / 1,000 qualified hiring companies

Go to Apify Store
Hiring Intent & Stack Radar

Hiring Intent & Stack Radar

Under maintenance

Turn fresh public hiring activity into recruiter-ready company opportunities. Finds open roles, tech stacks, and generic contacts without LinkedIn login.

Pricing

from $20.00 / 1,000 qualified hiring companies

Rating

0.0

(0)

Developer

Samuel Fernandes

Samuel Fernandes

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

a month ago

Last modified

Categories

Share

Find the next client requisition before it reaches your inbox

Hiring Intent & Stack Radar turns fresh public hiring activity into recruiter-ready company opportunities. It discovers matching roles from public ATS and career pages, groups multiple openings by employer, cross-checks the employer’s official website, and returns the evidence a recruiting agency needs to decide who to contact now and why.

A typical result looks like this:

“This company opened three matching engineering roles this week, is publicly hiring for the stack your agency specializes in, and has a verified official careers/contact route.”

The Actor does not scrape candidate profiles, personal LinkedIn pages, private recruiter data, or personal email addresses. It finds public employer-side hiring signals and makes them actionable.

Why recruiting agencies use it

Recruiting agencies win when they reach a potential client while the hiring need is fresh. Searching one job board at a time misses roles posted on company career sites and ATS pages, while manually grouping roles by employer and researching each company’s technology stack consumes hours that could be spent on business development.

Hiring Intent & Stack Radar compresses that workflow into a structured dataset. Instead of downloading a flat list of job postings, you receive one normalized record per employer, including open-role clusters, posting recency, technology evidence, source URLs, a transparent intent score, and a generic company contact route when publicly available.

This is particularly useful for agencies focused on AI, data, cloud, DevOps, cybersecurity, platform engineering, software engineering, and other specialized technical hiring.

The no-login advantage

This Actor is designed around public, structured employer-side sources:

  • No LinkedIn login or cookies. The default workflow does not access personal LinkedIn profiles or authenticated pages.
  • Direct ATS parsing. When available, it queries public structured endpoints for Greenhouse, Lever, Ashby, and SmartRecruiters instead of relying on fragile browser selectors.
  • Lower blocking surface. Public ATS endpoints and official career pages are generally a more maintainable source layer than authenticated social pages. The Actor can use Apify Proxy rotation when enabled, but no scraper can guarantee that every website will remain unblocked forever.
  • Business-safe contact framing. It returns generic public routes such as a company contact page, careers page, talent page, or clearly generic business email. Personal emails and personal social profiles are excluded.

The product discovers public hiring signals that may be unadvertised to your current sourcing workflow. It does not claim access to private or confidential requisitions.

What the Actor does

The Actor supports two discovery modes:

ModeBest forHow it works
Keyword searchFinding new companies by role and locationBuilds targeted public search queries for common ATS domains such as Greenhouse, Lever, Ashby, SmartRecruiters, and Workable, then processes only the discovered candidate URLs.
Target URLsScheduled monitoring of known companiesAccepts public ATS boards, career pages, job URLs, or company domains and extracts current matching roles directly.
BothProspecting plus account monitoringCombines search discovery with a user-supplied monitoring list.

For supported ATS platforms, the Actor uses API-first extraction. When a structured endpoint is unavailable, it falls back to JSON-LD and Cheerio parsing of the supplied public page. The Actor does not perform blind recursive crawling.

Quick start

A minimal recruiter-oriented input looks like this:

{
"discoveryMode": "both",
"roleKeywords": ["data engineer", "AI engineer", "Kubernetes"],
"locations": ["United States", "United Kingdom"],
"postedWithinDays": 7,
"technologyKeywords": ["AWS", "Snowflake", "Kubernetes"],
"minimumOpenRolesPerCompany": 1,
"maxCompanies": 100
}

For recurring account monitoring, provide company domains or public ATS URLs:

{
"discoveryMode": "target_urls",
"roleKeywords": ["software engineer"],
"seedCompanyDomains": ["example.com", "example.ai"],
"seedCareerUrls": [
"https://boards.greenhouse.io/example",
"https://jobs.ashbyhq.com/example-ai"
],
"postedWithinDays": 14,
"maxCompanies": 50
}

Input fields

The full recruiter-friendly schema is included in INPUT_SCHEMA.json. The most important fields are:

FieldDescriptionDefault
discoveryModekeyword_search, target_urls, or bothboth
roleKeywordsJob-title phrases to match against the role titledata engineer
locationsOptional location filtersEmpty
workModeremote, hybrid, onsite, or anyany
postedWithinDaysFreshness window for posted roles; 0 disables the filter7
targetSourcesATS families to accept, or autoauto
seedCompanyDomainsOfficial employer domains for monitoringEmpty
seedCareerUrlsPublic ATS or career URLs for monitoringEmpty
technologyKeywordsTechnologies to match and evidenceEmpty
technologyMatchModeRequire any or all requested technologiesany
minimumOpenRolesPerCompanyMinimum matching roles to qualify an employer1
includeTechnologyEvidenceInclude evidence URLs and snippetstrue
includeContactRouteInclude generic public company routestrue
maxCompaniesMaximum deduplicated employer records500
proxyModeauto, datacenter, or noneauto

roleKeywords match job titles only. This prevents an unrelated posting such as “Technical Recruiter” from qualifying for an engineer filter merely because its description discusses engineering hiring.

Output: one qualified company record per result

The primary output is written to the default dataset as one record per deduplicated employer. A result is qualified only when the Actor confirms a matching active role, resolves a canonical company domain, and cross-references at least two public source families.

Shortened JSON preview

{
"schemaVersion": "1.0.0",
"recordType": "hiring_intent_company",
"retrievedAt": "2026-08-21T05:57:59.000Z",
"company": {
"name": "Linear",
"canonicalDomain": "linear.app",
"companyUrls": {
"homepage": "https://linear.app/",
"contact": "https://linear.app/contact"
}
},
"hiringIntent": {
"intentScore": 80,
"intentTier": "high",
"openRoleCount": 3,
"freshestPostedAt": "2026-08-11T00:36:47.459Z",
"roleClusters": [
{
"cluster": "data_engineering",
"roleCount": 1,
"seniorityBands": [],
"locations": ["Remote"]
}
],
"scoreReasons": [
"3 matching roles passed the requested filters",
"No requested technology filter was applied",
"Job source and official company evidence were cross-referenced"
]
},
"roles": [
{
"title": "Analytics Engineer",
"normalizedTitle": "analytics_engineer",
"postedAt": "2026-08-11T00:36:47.459Z",
"location": {"city": "Remote", "countryCode": null},
"source": {
"sourceType": "ashby",
"url": "https://jobs.ashbyhq.com/linear/..."
}
}
],
"technologySignals": [
{
"technology": "Databricks",
"category": "data",
"confidence": 0.9,
"evidenceType": "job_text",
"evidenceUrl": "https://jobs.ashbyhq.com/linear/..."
}
],
"contactability": {
"contactPageUrl": "https://linear.app/contact",
"publicEmail": null,
"personalContactCollected": false
},
"quality": {
"sourceCount": 3,
"fieldCompleteness": 1,
"isQualified": true,
"warnings": []
}
}

Every role and enrichment signal includes source provenance and retrieval timestamps. Technology signals are evidence-backed; ambiguous names such as Go, Rust, Angular, and Next.js require technical context and are filtered out when they appear in generic marketing copy, URLs, CSS, or style declarations.

Transparent Pay-Per-Event pricing

The Actor uses explicit custom PPE events. The base event is charged first with Actor.charge(). Only after the charge succeeds does the Actor write the record to the default dataset, so your downloaded results are not hidden in a named dataset.

EventSuggested priceWhat qualifies
qualified_hiring_company$0.020 / employerMatching active role, canonical domain, at least two public source families, and requested filters satisfied.
technology_signal_evidence$0.008 / employerAt least one technology signal with a source URL and evidence type.
public_contact_route$0.012 / employerGeneric public contact, careers, talent route, or generic business email.
firmographic_enrichment$0.004 / employerPublic industry, headquarters, location, or company-size evidence.
Inconclusive or duplicate record$0.000Not billed as a qualified employer result.

A typical qualified result with all three optional enrichments costs:

$0.020 base employer record
+ $0.008 technology evidence
+ $0.012 generic contact route
+ $0.004 firmographic enrichment
= $0.044 maximum PPE for that record

You can disable optional enrichment fields to reduce cost. The final event prices must be configured in the Actor’s Monetization settings in Apify Console. Apify’s PPE model calculates publisher profit as 80% of event revenue minus platform usage costs; monitor actual compute and proxy costs after the first production runs.1

Privacy and responsible use

Hiring Intent & Stack Radar processes public employer-side information only. It does not collect candidate profiles, personal LinkedIn pages, private recruiter information, personal emails, or sensitive candidate data. Generic business contact routes are returned for business outreach and should be used in accordance with applicable privacy, marketing, and anti-spam laws.

The Actor provides source URLs and retrieval timestamps so users can verify the public evidence themselves. A job posting is a hiring signal, not proof that a company will use an external recruiting agency or that a role remains open after retrieval.

Performance and reliability

The Actor uses API-first public ATS adapters, Cheerio/JSON-LD fallback parsing, request retries, bounded concurrency, Crawlee session management, and optional Apify Proxy rotation. Missing selectors or malformed JSON-LD do not crash the run; the Actor records diagnostics and continues with other valid inputs.

For scheduled monitoring, use target_urls with a bounded list of public company domains or ATS boards. For broad discovery, use keyword_search with focused role and location filters rather than large undirected queries.

Files included

FilePurpose
main.jsNode.js/Crawlee Actor implementation
INPUT_SCHEMA.jsonApify input form and validation schema
package.jsonRuntime dependencies and start command
README.mdStore detail page and user documentation

Support and troubleshooting

If a source returns no jobs, confirm that the ATS URL is public and that the company slug is correct. Reduce maxConcurrency or use proxyMode: auto when a public source rate-limits requests. For a reproducible support report, include the Actor run ID, input JSON, source URL, and the diagnostic dataset output. Do not include cookies, private credentials, or personal candidate information.

References