Greenhouse, Lever & Ashby Jobs: Company Hiring Signals
Pricing
Pay per event
Greenhouse, Lever & Ashby Jobs: Company Hiring Signals
See which companies are hiring. Give company websites, get their open jobs from Greenhouse, Lever, Ashby, Workable and Personio job boards, with hiring by team, location and seniority, and changes since your last run. Pay per company with a job board, plus per job row in one-row-per-job mode.
Pricing
Pay per event
Rating
0.0
(0)
Developer
mohamad
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
What does Company Hiring Signals do?
Give it a list of company websites and it finds each company's public job board, reads every open job, and tells you who is hiring, for which teams, where, and how fast. You do not need to know which job board a company uses or its board name: the Actor follows the website and careers page to the board, and checks that the board really belongs to the company.
- Company websites in, hiring signals out. Works with plain domains like
acme.com. Job board links work too. - Five job board systems read: Greenhouse, Lever, Ashby, Workable and Personio. More than 20 other systems (Workday, SmartRecruiters, Teamtailor, BambooHR and more) are recognised and named, so you know why a company has no jobs listed.
- One row per company with open jobs, jobs posted in the last 7 and 30 days, hiring by department, job function, seniority, location and country, remote share and salary transparency. Or one row per job with all its details.
- Change tracking: run it on a schedule and get the jobs each company opened and closed since your last run.
- Pay per company with a job board, plus Apify's small start fee per run, and per job row if you pick one row per job. Companies without a supported job board, and companies that could not be checked, cost nothing extra.
What can you use it for?
- Sales prospecting: find the companies hiring for the roles your product serves, for example companies hiring their first data engineer or growing their sales team in Germany.
- Account research and CRM enrichment: add open jobs, growth teams and hiring locations to the companies in your CRM.
- Recruiting and staffing agencies: spot companies that are hiring fast, and see which roles are new.
- Investors and market research: compare hiring momentum across a portfolio, a market or a list of competitors over time.
- AI agents: each company row has short text fields (departments, functions, locations, countries) that fit in a prompt.
How to use it
- Paste company websites or job board links into Companies, one per line. Up to 50,000 per run; duplicates are skipped. With the default settings a run checks about 5,000 companies an hour.
- Choose One row per company or One row per job. Optionally add job title keywords (for example
engineer,sales) or job location keywords (for exampleLondon,Germany,remote). - Click Start. Download the results as CSV, Excel or JSON, or read them through the Apify API.
How it finds the job board
- A job board link in your input is used as it is.
- Links on the website: the homepage is searched for links, embeds and scripts that point to a job board.
- The careers page: if the homepage has no board, the Actor opens the careers page it links to (careers links are recognised in English, German, French, Spanish, Italian, Dutch, Portuguese, Swedish, Norwegian, Polish and Arabic), and one level of "open positions" links below it. At most four pages per company.
- The company name: if there is still no board, it tries the company's name on Greenhouse, Lever and Ashby (Personio too for
.de,.atand.chdomains, and Workable when the website shows a Workable job widget). A board found this way is only kept when the board's company name matches, or when its job texts mention the company. You can turn this step off.
Each result says how the board was found (matchedBy), so you can judge it.
Input
| Field | What it does | Default |
|---|---|---|
| Companies | Company websites or job board links | (required) |
| Output | One row per company, or one row per job | per company |
| Job title keywords | Count and list only jobs whose title has one of these words | all jobs |
| Job location keywords | Count and list only jobs whose location has one of these words; country names, two-letter country codes (DE, UK) and remote work | all locations |
| Jobs listed in each company row | Newest jobs listed in a company row; 0 leaves the list out | 20 |
| Maximum jobs per company | One row per job: most rows for one company | 1,000 |
| Try the company name on job boards | Step 4 above | on |
| Report changes since the last run | Compare each company's jobs with your previous run | off |
| Only new jobs | One row per job with change tracking: only jobs opened since the previous run | off |
| Storage name for change tracking | Key-value store in your account that keeps the previous jobs | hiring-signals-monitor |
| Respect robots.txt | Do not load company pages that robots.txt asks tools not to load | on |
| Companies checked at the same time | 1 to 50 | 20 |
| Request timeout | Seconds to wait for one page or job feed, 5 to 120 | 20 |
Output
One row per company. Example (a made-up company, shortened):
{"input": "example.com","domain": "example.com","companyName": "Example Analytics","status": "ok","hiring": true,"openJobs": 42,"jobBoards": ["Greenhouse"],"jobBoardUrl": "https://job-boards.greenhouse.io/exampleanalytics","careersPageUrl": "https://example.com/careers","postedLast7Days": 5,"postedLast30Days": 14,"medianDaysSincePosted": 23,"remoteShare": 0.31,"departmentsText": "Engineering (17), Sales (9), Customer Success (6), Marketing (4)","functionsText": "Engineering (16), Sales (10), Customer Success & Support (6), Marketing (4), Data & AI (3)","locationsText": "Berlin, Germany (12), London (8), Remote - Europe (7)","countriesText": "DE (15), GB (9), US (6)","jobsBySeniority": { "intern": 1, "entry": 3, "senior": 11, "lead": 4, "director": 2, "executive": 0, "notStated": 21 },"jobsWithSalary": 9,"jobs": [{ "title": "Senior Data Engineer", "department": "Engineering", "location": "Berlin, Germany", "workplaceType": "hybrid","seniority": "senior", "jobFunction": "Data & AI", "postedAt": "2026-10-18T09:00:00.000Z","url": "https://job-boards.greenhouse.io/exampleanalytics/jobs/4001" }],"boards": [{ "provider": "greenhouse", "name": "Greenhouse", "token": "exampleanalytics", "url": "https://job-boards.greenhouse.io/exampleanalytics","matchedBy": "careers-page-link", "foundOn": "https://example.com/careers", "openJobs": 42 }],"otherJobSystems": [],"changes": null,"error": null,"checkedAt": "2026-10-21T08:00:00.000Z"}
The full row also has the counts behind the text fields (topDepartments, jobsByFunction, topLocations, countries), remote, hybrid and on-site counts, employment types, the newest posting date and warnings.
One row per job. Each row has the company (input, domain, name), title, department, team, location and all locations, country codes, workplace type (remote, hybrid, on-site), employment type, seniority, job function, salary range and currency when the company publishes one, posted and updated dates, job and apply links, the job board, and with change tracking whether the job is new since your last run. Companies are listed with their status in the COMPANIES record of the run's key-value store.
The dataset has ready-made views: Overview, Hiring signals, Jobs, Changes and Status details. A short run summary (counts per job board, other job systems seen, billed companies) is saved as SUMMARY in the key-value store.
Status of each company
ok: a job board was read. A board with no open jobs is stillok, withhiring: false.no-board-found: no Greenhouse, Lever, Ashby, Workable or Personio board was found.otherJobSystemsnames the job system when the website shows one (for example Workday). Not charged.failed: the company could not be checked (for example the website is down, blocks automated visits, or its job feed did not answer). Theerrorfield has a code and a plain explanation. Not charged.
Change tracking
Turn on Report changes since the last run and run the Actor on a schedule (for example weekly). Each company row then gets a changes field with the number of jobs opened and closed since the previous run, the first 100 of each by title and link, and how many of the new jobs match your keywords. In one-row-per-job output, each job gets isNew, and Only new jobs writes just the new ones. The first run for each company saves the starting point. The previous jobs are kept in a key-value store in your own Apify account; use a different storage name for each watch list.
How much does it cost?
You pay for each company whose job board was read (status ok), plus Apify's small fee for starting a run. With One row per job, each job row is charged too; the default One row per company output includes the job counts and the short job list at no extra cost. Companies without a supported job board and companies that failed are not charged. Maximum jobs per company caps the job rows, and the maximum cost you set for a run caps the total. See the Pricing tab for current prices.
Limitations
- Five job board systems are read. Companies on Workday, SmartRecruiters, iCIMS, Teamtailor and other systems come back as
no-board-foundwith the system named inotherJobSystems. - Seniority, job function and country are estimates from job titles, departments and locations. They are right for most jobs, but not all.
- Posted dates depend on the job board. When a board does not publish them, the posted-in counts are empty and
jobsWithPostDateshows how many jobs had a date. - Name matching can miss. If a company's job board uses a name unlike its website and the website does not link to it, no board is found. Add the job board link to the input instead.
- Job boards limit how fast they answer. When one answers "too many requests" or not at all, the Actor waits and checks that company again later in the run. If a board still cannot be checked,
statusDetailandwarningssay which one, and the row is not charged. - No browser. Pages are read without running JavaScript. Careers pages that only load their links in the browser can be missed; step 4 often still finds the board.
- Only public websites: private and internal network addresses are refused.
Data and privacy
The Actor reads company websites and the public job feeds that Greenhouse, Lever, Ashby, Workable and Personio publish so that companies can show their open jobs elsewhere. It does not read LinkedIn, Indeed, Glassdoor or other job sites whose terms do not allow it. It returns no personal data: no recruiter or hiring manager names, emails or phone numbers, and no job descriptions; salary notes that contain contact details are left out. It never logs in or fills in forms, and it respects robots.txt on company websites by default. You are responsible for using the results lawfully, for example under GDPR when you contact companies.
Use it from code or AI agents
Run it through the Apify API or the Apify clients for JavaScript and Python, or connect it to Make, Zapier, n8n and other tools through Apify integrations. The text fields in company rows keep the output short for AI agents and spreadsheets.
Support
Missing a company's job board, or a job board system you need? Open an issue on the Issues tab with the website and what you expected. This Actor is built and maintained with the help of AI (Claude), and replies to issues are AI-assisted.