Career pages · hiring

Extract hiring signals and open roles from public career pages

Career Site Scraper — Hiring Signals & Open Roles reads public career and jobs pages you supply and returns source-linked job titles, departments, locations, ATS platform hints (Greenhouse, Lever, Ashby, Workday), remote-work indicators, and hiring-signal tags. It is public career-page observation — not Maps lead enrichment, not a contact-page channel inventory, and not a trade-show exhibitor extract.

Outputs are hiring observations, not employment, legal, or investment advice. Public non-authenticated career pages only. No personal emails.

from $5.00 / 1,000 company hiring signals ($0.005 per company hiring signal, job delta, or hiring summary)

Open Career Site Scraper on Apify

Public career-page hiring signals, not Maps enrichment or contact-channel inventory

Use this page when the job is open roles and hiring signals from public career pages. Use Google Maps Lead Enrichment Scraper to append website, email, phone, and social fields to existing local-business lead rows. Use Contact Page Audit & Business Channel Extractor for support paths, phones, and socials on contact pages. Use Trade Show Exhibitor Intelligence for exhibitor booth directories you already have.

This Actor Google Maps Lead Enrichment Contact Page Audit
Intent Hiring signals and open roles from public career pages Enrich existing Maps/local-business lead rows Inventory public business contact channels
Primary input careerUrls, companyUrls, or companyDomains Existing leads or sourceDatasetId Contact/about/support URLs in urls (max 100)
What it reads Public career/jobs pages; probes /careers and /jobs User-supplied lead rows; does not scrape Google Maps Public contact/support/policy pages
Primary output Job title, department, location, remote flag, ATS hints, hiring tags Website, public email/phone/social, HTTP health public_contact_channel rows; person-level emails suppressed
Not this job Maps search, contact-page inventory, exhibitor booths Career-board crawl Open-role extraction

Store ID: taroyamada/career-site-hiring-lead-intelligence. Respect source terms, robots.txt, and rate limits. Auth/account/sign-in/sign-up URLs are excluded.

Use cases

How is Career Site Scraper different from Google Maps Lead Enrichment and Contact Page Audit?

This Actor reads public career, jobs, and hiring pages you supply and returns source-linked job titles, departments, locations, ATS platform hints, remote-work indicators, and hiring-signal tags. Store ID taroyamada/career-site-hiring-lead-intelligence. Google Maps Lead Enrichment appends website, email, phone, social, and health fields to existing local-business lead rows; it does not scrape Google Maps and it does not crawl career boards. Contact Page Audit inventories public business contact channels from contact, about, support, and policy pages; person-level emails are suppressed. Trade Show Exhibitor Intelligence extracts exhibitor booth rows from event pages you supply. Use this Actor for public career-page hiring signals.

What input is required?

The live input schema has an empty required list. additionalProperties is false. Supply at least one of careerUrls, companyUrls, or companyDomains.

Field Type Default Notes
careerUrls string[] prefill https://www.ycombinator.com/jobs Career/jobs/Greenhouse/Lever/Ashby/Workday/hiring pages
companyUrls string[] [] Homepages; discovers careers/jobs links; probes /careers and /jobs
companyDomains string[] [] Domains to probe /careers and /jobs
searchTerms string[] prefill AI infrastructure hiring Labels for grouping/notes, not a search engine
monitorKey string default Stable watch id versus the previous successful run
initialRunMode string baseline_only baseline_only or emit_backfill
emitUnchanged boolean false If false, recurring runs emit only newly observed hiring rows
limit integer 50 Maximum rows to emit
delivery string dataset dataset or webhook. Dataset is always written first
webhookUrl string empty Required when delivery is webhook and dryRun is false
dryRun boolean false Sample rows; skip dataset writes and webhook
maxChargeUsd number 0.25 Cap; over-cap rows are no-charge limit_reached diagnostics

Published Store Quickstart (first live backfill; keep it small):

{
  "careerUrls": ["https://www.ycombinator.com/jobs"],
  "companyUrls": [],
  "companyDomains": [],
  "monitorKey": "yc-hiring-watch",
  "initialRunMode": "emit_backfill",
  "emitUnchanged": false,
  "limit": 20,
  "maxChargeUsd": 0.1,
  "delivery": "dataset",
  "dryRun": false
}

Published Store example run input (omitted fields take schema defaults, including initialRunMode baseline_only):

{
  "careerUrls": ["https://www.ycombinator.com/jobs"],
  "companyDomains": [],
  "searchTerms": ["AI infrastructure hiring"],
  "limit": 50,
  "delivery": "dataset",
  "dryRun": false
}

Run Career Site Scraper on Apify

How do baseline, backfill, and unchanged monitors work?

initialRunMode default is baseline_only: store a snapshot with no dataset rows and no PPE. emit_backfill emits the first observed hiring rows under limit and maxChargeUsd. emitUnchanged default is false: later runs emit only newly observed hiring rows. Keep monitorKey stable for the same watch. delivery always writes the dataset first; webhook POSTs after dataset output succeeds. dryRun true returns sample rows and skips dataset writes and webhook.

What does a result contain?

The published README sample is a job_or_hiring_signal row. It is a README illustration, not a live coverage guarantee:

{
  "rowType": "job_or_hiring_signal",
  "companyName": "example.com",
  "careerUrl": "https://example.com/jobs/security-engineer",
  "jobTitle": "Security Engineer",
  "department": "Engineering",
  "location": "Remote",
  "remote": true,
  "atsHints": ["greenhouse"],
  "hiringSignals": ["active_hiring", "remote_work", "engineering", "security"],
  "status": "success",
  "chargedEvent": "company_hiring_signal",
  "sourceUrl": "https://example.com/jobs/security-engineer"
}

Recurring watches can emit job_delta and hiring_summary events at the same unit price. No personal emails are collected.

How is Career Site Scraper priced?

Billing is pay per event. The live Store card is from $5.00 / 1,000 company hiring signals. Current PPE:

Event Price Emitted when
company_hiring_signal $0.005 One company hiring-signal row
job_delta $0.005 One newly detected or changed job row
hiring_summary $0.005 One company-level hiring summary

There is no Actor Start on the current pricing tab. A baseline_only first run and an unchanged poll with emitUnchanged false both cost $0.00. Platform usage is listed as included.

from $5.00 per 1,000 company hiring signals

See Career Site Scraper pricing on Apify

Limits to keep in mind

Published README companion (no local landing on this site): ATS Hiring Signal Report on Apify for public Greenhouse/Lever/Ashby boards.

Open Career Site Scraper on Apify

Related pages