Career Sites ATS Job Feed & Company Hiring Signals avatar

Career Sites ATS Job Feed & Company Hiring Signals

Pricing

from $1.00 / 1,000 job results

Go to Apify Store
Career Sites ATS Job Feed & Company Hiring Signals

Career Sites ATS Job Feed & Company Hiring Signals

Live jobs from company career sites on Greenhouse, Lever, Ashby, Workday, Workable, Recruitee, SmartRecruiters and Personio. Pass a name, website or board URL; the ATS is auto-detected. Get normalized jobs plus a hiring profile per company: new/closed roles, trend, momentum score, salary bands.

Pricing

from $1.00 / 1,000 job results

Rating

0.0

(0)

Developer

Dennis

Dennis

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Get live job postings straight from company career sites on Greenhouse, Lever, Ashby, Workday, Workable, Recruitee, SmartRecruiters and Personio. Give a company name, website or board URL and the ATS is detected for you. You get clean, normalized jobs plus a hiring-signal profile per company: open roles by function, seniority and country, new and closed roles since the last run, salary bands and a 0-100 hiring momentum score.

Most job scrapers give you a list of postings. This Actor also tells you what that list means: who is scaling engineering, who just opened their first sales roles in Germany, who stopped hiring.

When should an AI agent use this?

  • "Is Stripe hiring engineers in Europe right now, and how many?"
  • "Which of these 50 SaaS companies grew their open roles the most since last week?"
  • "Give me all remote senior data roles at Notion, Ramp and Spotify with salary ranges."
  • "Which companies in my target account list are hiring a VP of Sales or Head of Marketing?"
  • "What is the median disclosed base salary for engineering roles at Ramp?"
  • "Alert me when Hugging Face posts a new job."

Pass the companies as an array of strings. For agents, outputMode: "profiles_only" is the cheapest way to answer "is X hiring and in what" questions, because one profile summarizes an entire board.

Quick start

  1. Click Start with the default input. It profiles Stripe, Notion, Spotify and Ramp and returns up to 50 jobs each, for about $0.25.
  2. Open the Company hiring profiles view in the Output tab to see open roles, top hiring areas, salary bands and signals.
  3. Replace the companies with your own list, then schedule the run (daily or weekly). From the second run on you get new roles, closed roles and a trend line per company.

What this Actor does

  • 8 ATS platforms, one schema. Greenhouse, Lever, Ashby, Workday, Workable, Recruitee, SmartRecruiters and Personio are mapped to one flat, predictable job record, including Fortune 500 career sites that run on Workday.
  • Automatic ATS detection. Pass a board URL for the fastest result, a website (notion.com), which is scanned for embedded ATS links on its careers page, or just a name (Stripe), which is matched against the public board of every supported ATS. Name matches are flagged in the profile's message so you can verify them.
  • Profiles always cover the full board. maxJobsPerCompany only limits how many job records you receive and pay for. The company profile and the new/closed detection are always calculated on every open role (up to 5,000 per board).
  • Normalized fields you can filter on. jobFunction (engineering, data & AI, product, design, sales, marketing, customer success, operations, finance, people & HR, legal & compliance), seniority (intern to C-level, with product/account manager titles correctly treated as individual contributors), workplaceType (remote/hybrid/onsite), employmentType and ISO country codes.
  • Salary extraction. Structured pay ranges from Ashby, Lever and Recruitee are used directly. For every other job, the description's pay-transparency text is parsed ("The annual US base salary range is $274,456 - $334,600", "R$9.000 - R$11.250 monthly", "$211.4K – $290.6K"). Company revenue figures such as "$20M–$50M in payment volume" are ignored.
  • Change detection between runs. A snapshot per board is kept, so scheduled runs flag each job as new (isNew), list the titles of roles that closed, and compute net hiring change. onlyNewJobs turns the Actor into a new-job alert feed.
  • Company hiring profile. One record per company with open roles, roles posted in the last 7/30 days, median days open, breakdowns by function, seniority, department and location, remote share, leadership openings, pay-disclosure share, median salary band, a momentum score, an openJobsHistory trend line (last 26 runs) and plain-English signals.
  • Straight from the source. Data comes from each employer's own public job board at run time, not from a stale aggregated database. No login, no proxies, no browser.
  • Fair billing. Companies that cannot be found are reported for free, with a hint on what to pass instead.

Input

FieldTypeDescription
companiesarray of stringsCompany names, websites/careers pages or ATS board URLs. Required.
outputModestringjobs_and_profiles (default), profiles_only or jobs_only.
titleKeywordsarrayOnly jobs whose title contains one of these words.
locationKeywordsarrayOnly jobs whose location, country code or workplace type contains one of these words (London, DE, remote).
functionsarrayOnly these normalized job functions.
senioritiesarrayOnly these seniority levels.
remoteOnlybooleanOnly fully remote jobs.
trackChangesbooleanKeep a snapshot per board for new/closed detection (default true).
onlyNewJobsbooleanOnly return jobs that were not on the board during the previous run.
atsPlatformsarrayRestrict detection to specific ATS platforms.
includeDescriptionbooleanAdd the plain-text description to each job (default false).
maxJobsPerCompanyintegerMax job records delivered per company after filters (default 50). Profiles always use the full board.

Example:

{
"companies": ["Stripe", "notion.com", "https://jobs.lever.co/spotify", "https://jobs.ashbyhq.com/ramp"],
"functions": ["engineering", "data_ai"],
"locationKeywords": ["remote", "GB", "DE"],
"outputMode": "jobs_and_profiles"
}

Filters only apply to the job records. The company profile is always calculated from the full board, so you still see the overall hiring picture.

Output

The default dataset contains two record types, distinguished by recordType. The Output tab has a Jobs view and a Company hiring profiles view. All profiles are also stored as one JSON array under the key-value store record HIRING_PROFILES.

Job record (recordType: "job"):

{
"recordType": "job",
"jobKey": "ashby:ramp:34413f8d-26bf-4bbc-8ade-eb309a0e2245",
"company": "Ramp",
"companySlug": "ramp",
"ats": "ashby",
"jobId": "34413f8d-26bf-4bbc-8ade-eb309a0e2245",
"title": "Security Engineer, Cloud",
"department": "Engineering",
"team": "Backend",
"location": "New York, NY (HQ); Remote (Canada); Remote (US); Miami, FL",
"country": "US",
"workplaceType": "hybrid",
"employmentType": "full_time",
"seniority": "mid",
"jobFunction": "engineering",
"salaryMin": 211400,
"salaryMax": 290600,
"salaryCurrency": "USD",
"salaryPeriod": "year",
"salarySource": "structured",
"publishedAt": "2026-04-07T17:12:35.753Z",
"daysOpen": 174,
"isNew": false,
"firstSeenAt": "2026-04-07T17:12:35.753Z",
"url": "https://jobs.ashbyhq.com/ramp/34413f8d-26bf-4bbc-8ade-eb309a0e2245",
"applyUrl": "https://jobs.ashbyhq.com/ramp/34413f8d-26bf-4bbc-8ade-eb309a0e2245/application",
"description": null,
"scrapedAt": "2026-09-29T08:00:00.000Z"
}

Company hiring profile (recordType: "company_profile", shortened):

{
"recordType": "company_profile",
"input": "Stripe",
"status": "ok",
"company": "Stripe",
"ats": "greenhouse",
"detectionMethod": "slug_guess",
"boardUrl": "https://job-boards.greenhouse.io/stripe",
"openJobs": 703,
"jobsPostedLast7Days": 61,
"jobsPostedLast30Days": 298,
"newJobsSinceLastRun": 14,
"closedJobsSinceLastRun": 9,
"netChangeSinceLastRun": 5,
"closedJobTitles": ["Account Executive, Enterprise", "..."],
"topFunction": "sales",
"jobsByFunction": [{ "name": "sales", "count": 188 }, { "name": "engineering", "count": 119 }],
"jobsBySeniority": [{ "name": "mid", "count": 430 }, { "name": "manager", "count": 116 }],
"countries": ["AU", "CA", "DE", "GB", "IE", "JP", "SG", "US"],
"leadershipOpenings": 16,
"salaryDisclosedShare": 0.033,
"medianSalaryMin": 196227,
"medianSalaryMax": 230250,
"medianSalaryCurrency": "USD",
"hiringMomentumScore": 60,
"hiringMomentum": "growing",
"signals": [
"703 open roles; 298 published in the last 30 days (momentum: growing, 60/100).",
"Since the previous run (2026-09-22): 14 new, 9 closed (net +5).",
"Biggest hiring area: sales (188 roles, 27%).",
"Leadership hiring: 16 director/VP/executive role(s), e.g. Creative Director, Copy & Campaigns."
]
}

Hiring momentum score (0-100) = volume (up to 30 points, logarithmic in open roles) + freshness (up to 40 points, share of roles published in the last 30 days) + growth (up to 30 points, net change versus the previous run; a neutral 15 on the first run). Labels: hot ≥ 70, growing ≥ 50, steady ≥ 30, slow below that, not_hiring with zero open roles.

Use cases

  • Sales and lead generation: hiring is a buying signal. Find target accounts that are scaling the team you sell to (for example companies opening data or security roles), and time your outreach on new openings.
  • Investors and market research: track hiring velocity across a portfolio or a competitor set every week without maintaining seven different scrapers.
  • Competitive intelligence: see which functions and countries competitors are expanding into, and which leadership roles they are filling.
  • Recruiting and talent intelligence: monitor where talent demand is rising, benchmark disclosed salary bands, and build sourcing lists.
  • Job boards and niche job sites: feed fresh, deduplicated postings with stable jobKey identifiers and apply links straight to the employer.
  • AI agents: answer "is company X hiring for Y" questions with one tool call and a compact, structured answer.

Pricing

Pay per event, no subscription:

  • job-result: $0.001 per job delivered ($1 per 1,000 jobs)
  • company-profile: $0.01 per company hiring profile
  • Companies that are not found, or fail, are free.

Examples: a weekly profile of 100 companies (profiles_only) costs about $1 per run. The engineering jobs from 20 companies (around 1,000 jobs) plus their profiles cost about $1.20. Set a maximum charge per run in the Apify Console to cap spending; the Actor stops cleanly when the limit is reached.

The Actor only reads the public job board endpoints that employers publish via their applicant tracking system so their vacancies can be shown and reused on career sites and job platforms. It does not log in, bypass protections or use proxies. The data describes job openings of organizations, not individuals, and no personal data about candidates or employees is collected. Job descriptions stay the copyright of the employer: you are responsible for how you republish them. Respect each platform's terms when you build a product on top of this data.

FAQ

Q: Which company names work without a URL? A: Any company whose board slug matches its name (Stripe, Ramp, Notion, Spotify and thousands of others). If a name is not found, pass the careers page or board URL. The profile record will then show status: "not_found", and you are not charged.

Q: Why is isNew null? A: The first run for a board creates the baseline. Schedule the Actor (daily or weekly) with trackChanges enabled to get new and closed roles from the second run on.

Q: How accurate are function and seniority? A: Both are inferred from the job title first, then from the department and the ATS's own level. They are designed for aggregate analysis and filtering, not as an HR classification. Titles that don't clearly indicate a level default to mid.

Q: Why do some jobs have no salary? A: Many employers only publish pay where the law requires it (for example several US states). The Actor uses structured pay data where the ATS offers it and otherwise parses the description text; it never guesses.

Q: How do I add a Workday company? A: Open the company's careers site and copy the URL of its Workday job search page, for example https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite. Workday boards cannot be guessed from a name because each company chooses its own site name. Workday only publishes a relative posting date ("Posted 3 Days Ago"), so publishedAt is exact to the day and empty for "30+ days". Departments and salaries are not part of Workday's public list.

Q: Do you support iCIMS, Taleo or SuccessFactors? A: Not yet. Tell us which platform you need via the Issues tab.

Q: Can I monitor hundreds of companies? A: Yes. Companies are processed in parallel with polite rate limiting, and profiles_only keeps the dataset and the cost small.

Keywords

job scraper, ATS jobs, Greenhouse jobs API, Lever jobs API, Ashby jobs, Workday jobs scraper, myworkdayjobs, Workable jobs, Recruitee jobs, SmartRecruiters jobs, Personio jobs, career site jobs, company careers page scraper, hiring signals, hiring intent data, job postings API, job change detection, new job alerts, salary transparency data, recruiting intelligence, sales intelligence, lead generation, talent intelligence, MCP tool

Changelog

0.1.0

  • First release: 8 ATS platforms (incl. Workday and Lever EU), automatic ATS detection, normalized job records, salary extraction, run-over-run change detection, full-board company hiring profiles with a momentum score and open-roles trend.