Greenhouse Lever Ashby Job Scraper: GTM Hiring Signals avatar

Greenhouse Lever Ashby Job Scraper: GTM Hiring Signals

Pricing

from $42.50 / 1,000 results

Go to Apify Store
Greenhouse Lever Ashby Job Scraper: GTM Hiring Signals

Greenhouse Lever Ashby Job Scraper: GTM Hiring Signals

Detect companies actively hiring GTM teams. Scrapes Greenhouse, Lever, and Ashby for Sales, RevOps, and Growth roles. Flat JSON with role counts and velocity signals. Built for Clay enrichment columns. MCP-ready for Claude Desktop, Cursor, and AI agents.

Pricing

from $42.50 / 1,000 results

Rating

0.0

(0)

Developer

Mamba Labs

Mamba Labs

Maintained by Community

Actor stats

1

Bookmarked

19

Total users

0

Monthly active users

8 hours ago

Last modified

Share

๐Ÿง‘โ€๐Ÿ’ผ What can GTM Hiring Signal Scraper do?

Give it a company domain and it tells you whether that company is actively building its go-to-market team: how many GTM roles are open, which functions they are in, and whether that number is rising or falling since your last run.

It reads Greenhouse, Lever and Ashby public job board APIs and filters to roles that signal pipeline investment. One flat row per domain.

๐Ÿ“ฆ What you getโš™๏ธ Features and integrations
๐ŸŽฏ gtm_hiring_signal, one boolean to gate on
๐Ÿท๏ธ 20 signal tags, AE through CRO
๐Ÿ“ˆ Velocity and change detection across runs
๐Ÿงพ 22 flat fields, snake_case, one row per domain
๐Ÿ” Three ATS platforms probed in parallel
โšก Public APIs only, no auth and no proxy
๐Ÿ›Ÿ Error-safe, one failure never stops the run
โฌ‡๏ธ Export to JSON, CSV, Excel, HTML or XML

Bought by outbound teams and Clay users who want hiring signals turned into pipeline: a company opening three AE roles is a company with budget and a number to hit.

๐Ÿšซ ATS coverage is deliberately scoped to three platforms. Companies on Workday, Rippling, Teamtailor, SmartRecruiters, BambooHR or a custom careers page return ats_platform: null with gtm_role_count: 0 and no error. A zero here means "not found on these three boards", never "this company is not hiring".

๐Ÿ’ก Why use GTM Hiring Signal Scraper?

If you wantRead these fields
One field to filter ongtm_hiring_signal
How hard they are hiringgtm_role_count, signal_strength
Which function is growinggtm_signals, gtm_roles_detected, top_gtm_role
Whether momentum is buildingvelocity_signal, role_count_delta, days_between_runs
What changed since last timechange_detected, change_type, new_gtm_roles, removed_gtm_roles
Where the roles arecareer_page_url, ats_platform

๐Ÿ“ˆ Velocity is the signal, not the count

A company with four GTM roles open is unremarkable. A company that went from one to four since your last run is building a team right now.

Pass the previous run's output back as inputs and you unlock velocity_signal (growing, stable, shrinking or first_run) and change detection naming the specific roles that appeared or disappeared.

The first run works with no prior data. Velocity and change fields return a first_run state that you can use as a filter gate rather than an error to handle.

๐Ÿ” How ATS detection works

Layer 1, override map. Before any network request, the actor checks an internal map of pre-validated ATS slug assignments. A match returns immediately with no external calls.

Layer 2, live probe. Otherwise all three platforms are probed in parallel on the base slug. The first to return GTM roles wins, with Greenhouse taking priority on ties, then Lever, then Ashby. If none return, slug variants ({base}labs, {base}-labs) are tried only on the platforms that returned 404 on the base.

PlatformEndpointNotes
Greenhouseapi.greenhouse.io/v1/boards/{slug}/jobsPublic API, no auth
Leverapi.lever.co/v0/postings/{slug}Public API, no auth
Ashbyapi.ashbyhq.com/posting-api/job-board/{slug}Public API, draft jobs excluded

Workday and Rippling were evaluated and removed in v0.0.17. Workday careers pages hid the board URL behind JS-rendered scripts or bot checks on two of three tested companies, and the myworkdayjobs.com API endpoint shape had shifted enough that the third returned empty postings. Rippling uses undocumented internal endpoints that are not reliable for production.

โ–ถ๏ธ Ready-to-run examples

ExampleWhat it does
Find Companies Hiring SDRs and BDRsPipeline-building roles
Detect Companies Hiring AEsQuota-carrying roles
Spot Companies Hiring RevOpsOperations investment
Track Weekly GTM Hiring VelocityMomentum over time
Bulk Scan a Company ListBatch a whole list

๐Ÿ“‹ What data can GTM Hiring Signal Scraper extract?

22 fields per domain.

FieldWhat it holds
gtm_hiring_signalThe boolean gate
gtm_role_countHow many GTM roles are open
gtm_signalsStandardized tags, for example ["AE", "SDR", "RevOps"]
gtm_roles, gtm_roles_detectedThe roles themselves
top_gtm_roleThe most senior or most indicative role
signal_strengthhigh, medium or low, for triage language
ats_platform, slug_source, career_page_urlWhich board answered, and how the slug was found
role_count_delta, velocity_signal, days_between_runsMomentum, when prior-run inputs are supplied
change_detected, change_type, new_gtm_roles, removed_gtm_rolesWhat moved since last time
domain, company_name, run_date, scraped_at, errorIdentity and run bookkeeping

The 20 signal tags: AE, SDR, BDR, BizDev, RevOps, SE, CS, AM, DemandGen, Growth, Partnerships, ChannelSales, FieldSales, InsideSales, VPSales, HeadOfSales, CRO, SalesManager, SalesDirector, SalesOps.

โš ๏ธ gtm_role_count: 0 with ats_platform: null is not the same as a company that is not hiring. It means the company was not found on Greenhouse, Lever or Ashby. Check ats_platform before you read a zero as a negative signal, and pass ats_slug if you know the company uses an unusual slug.

๐Ÿ› ๏ธ How to find companies hiring for GTM roles

  1. Open the Input tab and put a bare domain in domain.
  2. Narrow with role_filter if you only care about some functions.
  3. For a list, set mode to batch and use domains.
  4. Click Start.
  5. Filter on gtm_hiring_signal and sort by signal_strength.

๐Ÿงช Using it in Clay

Add an Apify enrichment column and map your domain column to domain. Every field is a top-level key, so there is nothing to unwrap.

There is a reusable Clay Function, fn_gtm_hiring_signal, that takes nine inputs and returns a single structured output column: open the function. Use the function when you want the signal logic to update automatically across tables.

โฑ๏ธ Setting up velocity tracking

Run the actor on a schedule, weekly or monthly. Add a second enrichment column that maps previous_gtm_role_count and previous_run_date from your stored prior-run columns into the new run's inputs.

Then use velocity_signal = "growing" as an outreach timing trigger, change_detected = true to find companies that shifted posture, and change_type = "new_roles" to surface companies that just opened GTM positions.

๐Ÿ’ต How much does it cost to check GTM hiring signals?

Billed per domain processed.

PlanPer domainPer 1,000 domains
Free$0.05$50.00
Bronze$0.0475$47.50
Silver$0.045$45.00
Gold$0.0425$42.50

There is also an Actor start event at $0.00005, charged once per run per GB of memory.

๐Ÿ’ณ A domain that resolves to no ATS is still billed. The actor probed all three platforms and reported honestly that it found nothing, which is a real answer and the reason ats_platform is on the row. No subscription, no seat license, no contract.

โŒจ๏ธ Input

Everything is on the Input tab. The options worth explaining:

FieldTypeDefaultWhat it does
domainstringnoneBare company domain.
domainsarraynoneBatch mode input.
modestringsinglesingle for Clay row-by-row, batch for bulk lists.
role_filterarraynoneNarrow to specific GTM functions.
ats_slugstringnoneOverride slug derivation for unusual boards.
include_role_detailsbooleanfalseReturn the full role list, not just counts and tags.
previous_gtm_role_countintegernonePrior run's count, unlocks velocity.
previous_run_datestringnonePrior run's date, unlocks days_between_runs.

๐Ÿ“ค Output

One flat row per domain, exportable as JSON, CSV, Excel, HTML or XML.

{
"domain": "stripe.com",
"company_name": "Stripe",
"ats_platform": "greenhouse",
"slug_source": "override_map",
"gtm_hiring_signal": true,
"gtm_role_count": 7,
"gtm_signals": ["AE", "SDR", "RevOps"],
"top_gtm_role": "VP of Sales",
"signal_strength": "high",
"career_page_url": "https://boards.greenhouse.io/stripe",
"role_count_delta": 3,
"velocity_signal": "growing",
"days_between_runs": 7,
"change_detected": true,
"change_type": "new_roles",
"new_gtm_roles": ["Enterprise AE, EMEA", "RevOps Manager"],
"run_date": "2026-06-18T16:12:51.759Z",
"error": null
}

๐Ÿ’ก Tips

  • Gate on gtm_hiring_signal first, then sort by signal_strength. That is the whole triage.
  • Store each run's gtm_role_count and run_date. Velocity is worth more than the count and costs nothing extra to unlock.
  • Pass ats_slug for companies you know use an unusual board name. It skips the probe entirely.
  • Treat ats_platform: null as "unknown", not "no". It is the most common misreading of this actor.

โš ๏ธ Known limits

Slug derivation is based on the first segment of the domain, for example stripe.com to stripe, with automatic probing of {base}labs and {base}-labs when the base returns 404. Clay, which uses claylabs on Ashby, is caught by the variant probe. For patterns the variants do not cover, pass ats_slug.

Role detection is keyword based. Unusual job title formats may not be classified.

Coverage is Greenhouse, Lever and Ashby only. These three cover the majority of venture-backed, SaaS and GTM-heavy companies and all expose stable public APIs that return complete job lists without bot blocking. Everything else returns ats_platform: null and no error.

Ashby draft jobs are excluded, which is correct but means a company staging roles will read lower than its internal count.

No proxy is required or used. All sources are public APIs.

โ“ FAQ

Why does a company I know is hiring return zero?

Almost always because it is not on Greenhouse, Lever or Ashby. Check ats_platform. If it is null, the actor did not find a board rather than finding an empty one.

How do I get velocity on the first run?

You do not, and that is by design. The first run returns velocity_signal: "first_run", which is a filterable state rather than an error. Store the output and the second run has momentum.

Which platform wins when more than one has the company?

The first to return GTM roles, with Greenhouse taking priority on ties, then Lever, then Ashby.

Does one bad domain break a batch?

No. Each domain is wrapped individually, and a failure lands in that row's error field.

Do I need a proxy or an API key?

Neither. All three sources are public APIs with no auth.

๐Ÿงฉ Want other GTM data?

Mamba Labs builds custom actors for B2B go-to-market teams. The public versions of that work live here on the Store, so our users get the same tooling we build under contract.

๐Ÿงฑ Tech Stack Detector๐Ÿ“ก B2B Buying Signals Aggregator
๐Ÿ”‘ Job Board Keyword Scanner๐Ÿ”— Domain to LinkedIn URL Resolver
๐ŸŽฏ ICP Fit Scorer๐Ÿ“‹ Job Posting Monitor
๐Ÿ“ฌ Domain Deliverability Checker๐Ÿข Company Firmographic Enricher
๐ŸŒ Company Social Presence Mapper๐Ÿชช Company Identity Resolver
๐Ÿ’ฐ Funding and Press Signal Scanner๐Ÿ”„ Company Change-Event Feed
๐Ÿ‘ค People Finder and Email Verifier๐Ÿš€ Prospect Engine
๐Ÿค– AI Tooling Detector๐Ÿ“ฎ Outbound Stack Detector
๐Ÿ“ Publishing Frequency Trackerโœ‰๏ธ Work Email Waterfall Finder
โฉ Sequencer Lead Push๐Ÿ… Workplace Program Detector
๐Ÿ‘ฅ Team Page People Extractor๐Ÿงญ Company Discovery List Builder

Every actor in the suite takes a domain or a company and returns one flat row, so they stack in the same Clay table without reshaping anything.

๐Ÿ› ๏ธ Need something custom built for you or your team? Tell us what you are trying to find and we will build it. Talk to Mamba Labs.

๐Ÿ†˜ Support

Found a bug or want a field added? Open an issue on the Issues tab. Response time is typically within 48 hours.

โ„น๏ธ Sourcing and legal. Every field comes from the public job board APIs of Greenhouse, Lever and Ashby, which require no authentication. No proxy is used. The actor returns companies, role counts and role titles, not people: no recruiter names, no applicant data, no personal data of any kind. You are responsible for how you use the output.

Built by Mamba Labs.