Hiring Signals Scraper (Any Domain → Open Jobs + Hiring Score) avatar

Hiring Signals Scraper (Any Domain → Open Jobs + Hiring Score)

Pricing

from $0.40 / 1,000 job scrapeds

Go to Apify Store
Hiring Signals Scraper (Any Domain → Open Jobs + Hiring Score)

Hiring Signals Scraper (Any Domain → Open Jobs + Hiring Score)

Enter company domains, get every open job plus a hiring signal row per company: roles by team, GTM hiring, new and closed jobs, tools used, 0-100 score. Covers Greenhouse, Ashby, Lever, Workday and 10 more ATS.

Pricing

from $0.40 / 1,000 job scrapeds

Rating

0.0

(0)

Developer

Muhammad Asees Abid

Muhammad Asees Abid

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 hours ago

Last modified

Categories

Share

Hiring Signals Scraper – Company Job Postings & Hiring Intent by Domain

Enter company domains and get every open job posting plus a ready-to-use hiring signal row for each company: how many roles are open, which teams are hiring, whether senior sales or marketing leaders are being hired, what changed since your last run, which tools they use, and a 0–100 hiring score. Works across 14 applicant tracking systems (Greenhouse, Ashby, Lever, Workday, Rippling, SmartRecruiters, Workable, Recruitee, BambooHR, Breezy, Pinpoint, JazzHR, Teamtailor, Personio) and many custom careers pages, so one list of domains covers most of the market. No API keys, no logins, no browser. Pay only for rows you receive.

What you get

One job row per open position

  • Title, department, team, location, country, remote / hybrid / onsite
  • Function (sales, marketing, customer success, RevOps, engineering, data, product, and more) and seniority (intern to C-level)
  • GTM role flag for sales, marketing, customer success, RevOps and partnerships roles
  • Salary range, currency and period when the company publishes it
  • Tools and software named in the job description (Salesforce, HubSpot, Outreach, Snowflake and 70+ more)
  • Posted date, job URL, apply URL, and whether the job is new since your last run
  • Optional full job description

One hiring signal row per company

  • Open roles in total and broken down by function
  • GTM roles open, their titles, and whether a director, VP or C-level GTM hire is in progress
  • New roles and closed roles since your last run, with titles
  • Roles posted in the last 7 and 30 days, remote share, top locations, new locations
  • Tools mentioned across all job descriptions, with counts
  • signalScore (0–100) and plain tags such as scaling_sales_team, building_revops, new_gtm_leadership, hiring_surge, hiring_slowdown, remote_first, uses_salesforce, uses_hubspot, uses_clay
  • Which applicant tracking system the company uses and a link to its job board

Companies where no job board can be found still return a company row with the reason, at no charge.

Use cases

  • Signal-based outbound. Turn a target account list into a ranked list of companies hiring sales, marketing or RevOps right now, with the exact roles and tools to reference in your outreach.
  • Clay, HubSpot and Salesforce enrichment. Run with includeJobs: false and map signalScore, gtmOpenRoles, newRolesSinceLastRun and signalTags straight into columns or CRM fields.
  • Recruiting and sourcing. Pull every open role at a list of companies and refresh on a schedule to see what opened and closed.
  • Competitive and market intelligence. Watch competitors' hiring by team, location and seniority; spot expansion into new cities and new functions.
  • Job boards and aggregators. Normalized postings from 14 job board systems in one schema.
  • Compensation research. Published salary ranges with currency and period, ready for analysis.

Input

FieldDefaultDescription
domainsrequiredCompany domains or website URLs, one per line.
titleKeywordsnoneOnly keep jobs whose title contains one of these words.
gtmTitleKeywordsnoneExtra title words to count as GTM roles.
postedWithinDaysnoneOnly keep jobs posted in the last N days.
includeJobstrueOutput job rows.
includeCompanySignalstrueOutput company signal rows.
includeDescriptionsfalseAdd the full plain-text description to each job.
maxJobsPerCompany500Cap per company.
stateStoreNamehiring-signals-scraper-stateReuse the same name on scheduled runs to get new / closed roles and faster runs.
resetStatefalseForget what was seen before for these domains.
discoveryDepthstandardfast, standard or thorough. Thorough looks deeper on hard-to-find careers pages.
maxConcurrency10Parallel companies.

Sample company signal row

{
"recordType": "company",
"companyDomain": "n8n.io",
"companyName": null,
"status": "ok",
"ats": "ashby",
"boardUrl": "https://jobs.ashbyhq.com/n8n",
"careersPageUrl": null,
"jobsAvailable": true,
"openRoles": 35,
"rolesByFunction": {
"revops": 4,
"engineering": 8,
"people": 3,
"design": 2,
"sales": 9,
"customer_success": 3,
"product": 1,
"marketing": 3,
"partnerships": 1,
"data": 1
},
"gtmOpenRoles": 23,
"gtmRoleTitles": [
"Enterprise Account Executive - Northern Europe",
"Senior Partner Marketing Manager",
"Field Marketing Lead, US",
"Sales Enablement Manager (US East Coast)",
"Mid-Market Account Executive (US)",
"Enterprise Sales Development Representative US (Hybrid)",
"Sales Development Representative - DACH (Berlin Hybrid)",
"Global Director of Revenue Enablement (Remote Europe or East Coast)",
"Sales Data Analyst",
"Enterprise Sales Leader DACH"
],
"seniorGtmHiring": true,
"seniorGtmTitles": [
"Global Director of Revenue Enablement (Remote Europe or East Coast)"
],
"newRolesSinceLastRun": 0,
"newRoleTitles": [],
"closedRolesSinceLastRun": 0,
"closedRoleTitles": [],
"netChange": 0,
"postedLast7d": 9,
"postedLast30d": 18,
"remoteShare": 1.0,
"topLocations": [
"Berlin Office",
"Germany",
"Boston",
"United States",
"New York"
],
"newLocations": [],
"salaryDisclosureShare": 0.31,
"toolsMentioned": {
"Salesforce": 6,
"Gong": 3,
"Metabase": 2,
"Outreach": 2,
"Apollo": 2,
"Zapier": 1,
"HubSpot": 1,
"Marketo": 1,
"Google Analytics": 1,
"Looker": 1,
"Clay": 1,
"BigQuery": 1,
"dbt": 1
},
"signalScore": 85,
"signalTags": [
"scaling_sales_team",
"building_revops",
"new_gtm_leadership",
"hiring_surge",
"remote_first",
"uses_salesforce",
"uses_hubspot",
"uses_clay",
"uses_outreach_or_salesloft"
],
"previousRunAt": null,
"scrapedAt": "2026-09-30T11:14:12.449666+00:00"
}

Sample job row

{
"recordType": "job",
"companyDomain": "n8n.io",
"companyName": null,
"ats": "ashby",
"jobId": "dd44765f-279f-4aff-9568-11c7bc66189a",
"jobKey": "ashby:n8n:dd44765f-279f-4aff-9568-11c7bc66189a",
"title": "Enterprise Sales Leader West Coast",
"department": "Sales",
"team": "Sales Leadership",
"location": "California",
"country": null,
"isRemote": true,
"remoteType": "remote",
"employmentType": "full_time",
"functionCategory": "sales",
"seniority": "mid",
"isGtmRole": true,
"salaryMin": 217500.0,
"salaryMax": 228500.0,
"salaryCurrency": "USD",
"salaryPeriod": "year",
"toolsMentioned": [],
"postedAt": "2026-07-31T15:59:31.154000+00:00",
"status": "new",
"jobUrl": "https://jobs.ashbyhq.com/n8n/dd44765f-279f-4aff-9568-11c7bc66189a",
"applyUrl": "https://jobs.ashbyhq.com/n8n/dd44765f-279f-4aff-9568-11c7bc66189a/application",
"scrapedAt": "2026-09-30T11:14:12.449666+00:00"
}

Scheduling for changes over time

Run daily or weekly with the same stateStoreName. From the second run each company row shows newRolesSinceLastRun, closedRolesSinceLastRun, newRoleTitles, closedRoleTitles, newLocations and previousRunAt, and repeat runs are much faster. The first run for a domain has nothing to compare against, so its change fields are zero.

How the score works

score = min(30, openRoles × 1.5)
score += min(25, gtmOpenRoles × 5)
score += min(15, newRolesSinceLastRun × 3)
score += 10 if a director / VP / C-level GTM role is open
score += min(20, rolesPostedLast30Days × 2)
capped at 100

Use it from Clay

Add an HTTP API column that POSTs to https://api.apify.com/v2/acts/YOUR_USERNAME~hiring-signals-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN with body {"domains": ["{{domain}}"], "includeJobs": false, "stateStoreName": "clay"} and map the fields you want.

Pricing

EventCharged whenPrice
job-scrapedeach job row$0.0012 ($1.20 per 1,000)
company-signaleach company row with a found job board$0.004 ($4 per 1,000)
Company rows where no board was found or the platform is unsupportedfree

Supported job board platforms

Jobs are returned from Greenhouse, Ashby, Lever, Workday, Rippling, SmartRecruiters, Workable, Recruitee, BambooHR, Breezy, Pinpoint, JazzHR, Teamtailor and Personio, and from many custom careers pages. Companies on iCIMS, Taleo, UKG, Phenom, Eightfold, Avature, SuccessFactors, Jobvite, Comeet, Dover or Gem are identified (you get the platform name in the company row, free) but their jobs are not returned yet.

Notes

  • Salary is only filled when the company publishes a range. It is never estimated.
  • Descriptions are off by default to keep rows small and cheap.
  • Some careers pages that only render jobs through JavaScript can't be read yet and return no_board_found.

Support and feedback

Open an issue on the Actor's Issues tab. Requests for additional job board platforms are welcome.