Company ATS & Hiring Signal Scraper avatar

Company ATS & Hiring Signal Scraper

Pricing

from $0.80 / 1,000 record scrapeds

Go to Apify Store
Company ATS & Hiring Signal Scraper

Company ATS & Hiring Signal Scraper

Turn a plain corporate domain into a hiring-velocity record: detects the applicant tracking system, aggregates open roles by department, location and seniority, and reports 30-day hiring velocity and salary disclosure. One row per company.

Pricing

from $0.80 / 1,000 record scrapeds

Rating

0.0

(0)

Developer

BowTiedRaccoon

BowTiedRaccoon

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

Categories

Share

Company ATS & Hiring Signal Scraper

Turn a plain corporate domain into a company-level hiring-velocity record. Give the actor a list of company domains (e.g. monzo.com, ramp.com) and it returns one row per company: which applicant tracking system they use, how many roles are open, department / location / seniority / function breakdown, remote share, 30-day hiring velocity, and salary-disclosure rate. No job rows — this is a company-level technographic and hiring-intent signal, built for CRM enrichment and sales/RevOps prospecting rather than job search.

What Data Does It Extract?

FieldDescription
company_domainInput company domain (normalized)
company_nameCompany name, derived from the domain / board
careers_page_urlThe careers page URL that was resolved for this company
ats_vendorDetected ATS: greenhouse, lever, ashby, workable, smartrecruiters, recruitee, teamtailor, personio, workday, jobvite, bamboohr, breezy, or none_detected
ats_board_tokenThe vendor-specific board/company token
ats_board_urlPublic URL of the vendor's job board for this company
ats_api_endpointThe vendor endpoint used to aggregate this record
ats_detection_evidenceThe matched host/pattern, for auditability
open_req_countTotal open requisitions on the board
departmentsDepartment breakdown: [{ name, count }]
locationsLocation breakdown: [{ name, count }]
countriesDistinct countries with open requisitions (conservative — only populated when the source data names a real country/state, never guessed from a city)
remote_req_count / remote_shareCount and share of requisitions marked remote
seniority_mix{ intern, junior, mid, senior, lead, exec } counts, classified from job titles
function_mix{ eng, sales, marketing, ops, ga } counts, classified from titles/departments
newest_posted_at / oldest_posted_atPosting dates of the newest/oldest open requisition
reqs_posted_last_30d / hiring_velocity_30dNew requisitions in the trailing 30 days
salary_disclosed_req_count, salary_min_observed, salary_max_observedBest-effort salary-range detection where the board discloses it
sample_titlesA sample of open requisition titles
is_hiringtrue when the company has at least one open requisition
checked_atWhen this record was generated

How to Use

{
"companyDomains": ["monzo.com", "ramp.com", "anthropic.com"],
"maxItems": 50
}
  • companyDomains (required) — the list of corporate domains to check. Accepts a bare domain (monzo.com) or a full URL (https://www.monzo.com/careers) — normalized automatically.
  • maxItems (required) — maximum number of company records to return in this run.

How It Works

  1. Detect — the actor checks a handful of standard careers-page paths on each domain and identifies which of 12 supported applicant-tracking-system vendors the company uses. A minority of careers pages load their ATS link dynamically; those get one additional render pass before the company is recorded as none_detected.
  2. Aggregate — once the vendor is identified, the actor reads that vendor's public job board and rolls every open requisition up into a single company-level record: counts by department, location, seniority and function, remote share, and hiring velocity over the last 30 days.
  3. One row per company — the actor never emits individual job postings, only the aggregated company record.

Supported ATS Vendors

Greenhouse, Lever, Ashby, Workable, and SmartRecruiters get full aggregation (department, location, salary and date detail). Recruitee, Teamtailor, Personio, Workday, Jobvite, BambooHR, and Breezy are detected and linked, with aggregation depth depending on what each company's public board page publishes.

Important Notes

  • Coverage. Not every company uses one of the 12 supported vendors, and not every careers page is discoverable from the standard paths this actor checks. Domains that don't resolve to a supported ATS come back as ats_vendor: "none_detected" rather than being dropped — every input domain gets exactly one output row.
  • Best-effort fields. salary_min_observed / salary_max_observed and countries are intentionally conservative — they're only populated when the underlying board data actually states a value; the actor never guesses a country from a city name or infers a salary that isn't explicitly disclosed.
  • Resume. This actor processes a bounded, user-supplied domain list rather than crawling a discoverable corpus, so there is no resumeCursor to continue a partial run — increase maxItems or split large domain lists across multiple runs instead.

Ideal Use Cases

  • RevOps / sales intelligence — enrich a CRM domain list with a live hiring-intent signal: a company that just opened a dozen engineering reqs is in-market for recruiting tools, developer tooling, payroll, and benefits spend.
  • Recruiting agencies — identify companies actively hiring in a specific function or seniority band without manually checking each company's careers page.
  • Market research — track hiring velocity and remote-work adoption across a watchlist of companies over time.

Output Example

{
"company_domain": "ramp.com",
"company_name": "Ramp",
"careers_page_url": "https://ramp.com/careers",
"ats_vendor": "ashby",
"ats_board_token": "ramp",
"ats_board_url": "https://jobs.ashbyhq.com/ramp",
"ats_api_endpoint": "https://api.ashbyhq.com/posting-api/job-board/ramp",
"ats_detection_evidence": "jobs.ashbyhq.com/ramp",
"open_req_count": 122,
"departments": [{ "name": "Sales", "count": 41 }, { "name": "Engineering", "count": 29 }],
"locations": [{ "name": "New York, NY (HQ)", "count": 92 }],
"countries": ["United States"],
"remote_req_count": 111,
"remote_share": 0.91,
"seniority_mix": { "intern": 1, "junior": 7, "mid": 78, "senior": 17, "lead": 7, "exec": 12 },
"function_mix": { "eng": 32, "sales": 42, "marketing": 15, "ops": 8, "ga": 25 },
"newest_posted_at": "2026-08-07T16:28:53.710Z",
"oldest_posted_at": "2023-03-09T17:44:00.817Z",
"reqs_posted_last_30d": 31,
"hiring_velocity_30d": 31,
"salary_disclosed_req_count": 0,
"salary_min_observed": null,
"salary_max_observed": null,
"sample_titles": ["Security Engineer, Cloud", "Mobile Engineer, Android"],
"is_hiring": true,
"checked_at": "2026-08-09T04:34:38.072Z"
}