Hiring Signals Scraper (Any Domain → Open Jobs + Hiring Score)
Pricing
from $0.40 / 1,000 job scrapeds
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
Maintained by CommunityActor 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 asscaling_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: falseand mapsignalScore,gtmOpenRoles,newRolesSinceLastRunandsignalTagsstraight 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
| Field | Default | Description |
|---|---|---|
domains | required | Company domains or website URLs, one per line. |
titleKeywords | none | Only keep jobs whose title contains one of these words. |
gtmTitleKeywords | none | Extra title words to count as GTM roles. |
postedWithinDays | none | Only keep jobs posted in the last N days. |
includeJobs | true | Output job rows. |
includeCompanySignals | true | Output company signal rows. |
includeDescriptions | false | Add the full plain-text description to each job. |
maxJobsPerCompany | 500 | Cap per company. |
stateStoreName | hiring-signals-scraper-state | Reuse the same name on scheduled runs to get new / closed roles and faster runs. |
resetState | false | Forget what was seen before for these domains. |
discoveryDepth | standard | fast, standard or thorough. Thorough looks deeper on hard-to-find careers pages. |
maxConcurrency | 10 | Parallel 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 openscore += 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
| Event | Charged when | Price |
|---|---|---|
job-scraped | each job row | $0.0012 ($1.20 per 1,000) |
company-signal | each company row with a found job board | $0.004 ($4 per 1,000) |
| Company rows where no board was found or the platform is unsupported | free |
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.