Hiring Signals: Company Job Boards & New Jobs Tracker avatar

Hiring Signals: Company Job Boards & New Jobs Tracker

Pricing

from $10.00 / 1,000 company checkeds

Go to Apify Store
Hiring Signals: Company Job Boards & New Jobs Tracker

Hiring Signals: Company Job Boards & New Jobs Tracker

Paste company websites, get every open job from their Greenhouse, Lever, Ashby, SmartRecruiters or Workday job board, plus new and closed jobs since your last run. One summary row per company with job counts by department and location.

Pricing

from $10.00 / 1,000 company checkeds

Rating

0.0

(0)

Developer

Watchmere .

Watchmere .

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

What does Job Board Scraper do?

Paste a list of company websites and get back every open job each company is advertising, read straight from its public job board, plus what changed since your last run: new jobs and closed jobs.

It works with five widely used job boards (applicant tracking systems):

  • Greenhouse, Lever, Ashby and SmartRecruiters, through their official public job-board APIs
  • Workday career sites (*.myworkdayjobs.com), through the same public data the career site itself loads

You don't need to know which one a company uses. Give it stripe.com and the tool looks at the company's website and careers pages for a link to its job board, and if there isn't one, tries the company's name on Greenhouse, Lever and Ashby, keeping a board only when there's strong evidence it's the same company. Guessing is deliberately cautious, so some boards are missed; pasting the job board link always works.

You get one summary row per company (open jobs, new jobs, closed jobs, jobs by department and location, remote jobs) and one row per job (title, department, team, locations, remote/hybrid/on-site, employment type, dates, pay when the company publishes it, link, and optionally the description).

  • No login, no API keys, no browser
  • Export to CSV, Excel, JSON or Google Sheets, or call it from your own code, Zapier, Make, n8n or Clay

Who is it for?

  • Sales teams: "this company just opened 12 engineering roles in Berlin" is a buying signal. Track your target accounts weekly and act on the companies that are growing
  • Recruiters and agencies: see which companies are hiring for the roles you place, as soon as your next scheduled run sees the new jobs
  • Investors and analysts: hiring by department and location is an early look at a company's plans
  • Job seekers and researchers: one clean table of open roles across many companies

How to use it

  1. Paste your companies, one per line: a domain (acme.com), a careers page (https://www.acme.com/careers) or a job board link (https://jobs.lever.co/acme).
  2. Leave Show what changed since the last check on.
  3. Click Start. Each company takes a few seconds.
  4. Open the Companies view for the summary, Jobs for every job, or New and closed jobs.

To monitor, open Schedules and run it weekly (or daily) with the same companies. The first run records each board; every later run marks jobs as new or unchanged and adds a closed row for every job that disappeared.

Input example

{
"companies": ["stripe.com", "https://www.figma.com/careers/", "https://jobs.lever.co/palantir",
"https://jobs.smartrecruiters.com/Ubisoft2", "https://adobe.wd5.myworkdayjobs.com/external_experienced"],
"guessBoards": true,
"includeDescriptions": false,
"maxJobsPerCompany": 1000,
"compareWithPrevious": true,
"historyStoreName": "hiring-signals-history"
}

Output example

Each company gets one row with rowType: "company" (shortened):

{
"rowType": "company",
"input": "figma.com",
"companyDomain": "figma.com",
"companyName": "Figma",
"ats": "greenhouse",
"boardUrl": "https://job-boards.greenhouse.io/figma",
"foundBy": "website",
"status": "ok",
"openJobs": 140,
"newJobs": 2,
"closedJobs": 2,
"remoteJobs": 0,
"readInFull": true,
"jobsByDepartment": { "Sales": 45, "Engineering": 25, "Early Career": 11 },
"jobsByLocation": { "San Francisco, CA": 91, "New York, NY": 88, "United States": 73 },
"note": null,
"checkedAt": "2026-10-19T13:51:02Z"
}

and each job one row with rowType: "job":

{
"rowType": "job",
"input": "linear.app",
"companyName": "Linear",
"ats": "ashby",
"jobId": "d3bc1ced-3ce4-4086-a050-555055dbb1ff",
"title": "Senior / Staff Fullstack Engineer",
"department": "Product",
"team": "Engineering",
"locations": ["Europe"],
"workplaceType": "remote",
"employmentType": "Full-time",
"postedAt": "2021-04-27T20:13:45Z",
"url": "https://jobs.ashbyhq.com/linear/d3bc1ced-3ce4-4086-a050-555055dbb1ff",
"compensation": null,
"change": "new",
"firstSeenAt": "2026-10-19T13:51:02Z",
"checkedAt": "2026-10-19T13:51:02Z"
}

A job that disappeared since the last check gets a row with "change": "closed", its title, department, locations, link and the date it was first seen.

FieldMeaning
rowTypecompany (one summary per input) or job (one per open or closed job). Filter on it in a spreadsheet
inputWhat you entered
companyDomain / companyNameThe company's domain, and its name from the job board (Greenhouse, SmartRecruiters, the Lever or Ashby board page) or its website. Workday doesn't publish a name
ats / boardUrlgreenhouse, lever, ashby, smartrecruiters or workday, and the board's public page
foundByinput (you gave the board link), website (linked from the company's site) or guess (found by name, with evidence; the note says which)
statusok (board read), no-board (none found), failed (a board was found but couldn't be read), duplicate (same board as an earlier input), invalid (a line that isn't a website or board link; the rest of the run carries on) or skipped (over 2,000 companies)
openJobs / newJobs / closedJobsCounts for this check. New and closed need a previous check of the same board
jobsByDepartment / jobsByLocationOpen jobs per department (or team) and per location, top 15
remoteJobsOpen jobs marked remote
readInFullfalse if the board has more jobs than Max jobs per company, or a Workday site lists 2,000 or more (closed jobs aren't reported then)
noteWhat was checked and anything worth knowing, in plain words
jobId, title, department, team, locationsAs the board lists them
workplaceTyperemote, hybrid or onsite when the board says so (Greenhouse: only when the location says remote or hybrid)
employmentTypeFull-time, Part-time, Contract, Internship... when the board says so
postedAt / updatedAtWhen the job was published / last updated, if the board gives it. Workday gives only "posted N days ago", so its date is a day (2026-10-16), and empty for "30+ days ago"
urlThe public job page
compensation{min, max, currency, interval, summary} only when the company publishes pay in the board's job list (Ashby and Lever boards can)
descriptionTextPlain-text description (only with Include job descriptions)
changefirst-seen (first check of this board), new, unchanged or closed
firstSeenAtWhen this tool first saw the job on this board

The run's SUMMARY record (Output tab) lists every company with the same counts, plus run totals.

How the job board is found

  1. A board link you give is used as is.
  2. The company's website: the tool loads the homepage, follows links that say careers, jobs, join us and similar (and tries /careers, /jobs, /company/careers and /about/careers), at most 6 pages per company, and looks for links, embedded boards and scripts pointing at Greenhouse, Lever, Ashby, SmartRecruiters or Workday. A linked board is used only if it's the company's own: its job links point to the company's site, or its address or name matches the website or the domain, its job ids appear on the website, or its descriptions mention the domain. A fund's website linking to a portfolio company's board doesn't count. A board whose job pages are on another website is never used, except the company's own careers domain: its name plus inc, hq, careers, jobs, team or corp (redditinc.com for reddit.com, instacart.careers). Anything else, such as deltalabs.io for delta.com, is treated as another company.
  3. By name (optional, on by default, deliberately cautious): if the website has no board link (many companies show jobs on their own pages), it tries the company's name on Greenhouse, Lever and Ashby. The name tried comes from the domain, so a board with that name proves nothing by itself. A guessed board is kept only if its job links point to the company's own domain (or a subdomain of it), or the board's name is exactly the website's own name apart from legal endings (Inc, LLC, Ltd, GmbH, Corp, Co): "Acme Inc." matches a website called "ACME", but "Acme Group", "Delta Labs" or "Zeta Technologies" don't match "Acme", "Delta" or "Zeta". If the website can't be read (bot protection), only job links on the company's domain count. When in doubt the result is no-board (free) rather than a wrong board, and the note says what was checked. This misses some real boards (for example a company whose jobs are on a careers domain and whose board name differs from its website's); paste the board link (https://job-boards.greenhouse.io/acme) and it's always used. One case can still go wrong: two different companies with exactly the same name (say a German and an American "Acme") whose job links stay on the job board. Check companyName and the note on each guessed row, and paste the board link when it matters.

Websites on hosting platforms are treated as sites of their own: bakery.vercel.app, acme.notion.site, acme.github.io or acme.webflow.io is never mistaken for Vercel, Notion, GitHub or Webflow (while the platforms' own sites, such as carrd.co, are companies like any other).

Workday and SmartRecruiters boards can't be found by name; give their link if the website doesn't link to them. Other job boards (Workable, iCIMS, Recruitee, Teamtailor...) aren't supported yet: the company row says no-board and what was checked. Companies without a board are free.

New and closed jobs

With Show what changed since the last check on, the tool keeps each board's open job ids and the date each was first seen in a key-value store in your own Apify account (default name hiring-signals-history). On the next run:

  • a job that wasn't there last time is new
  • a job that was there and still is: unchanged (with its original firstSeenAt)
  • a job that's gone gets a closed row, but only after a second read of the board a few seconds later confirms it's gone, so a glitch in one answer never shows up as a closed job

Closed jobs are only reported when the whole board was read both times. If a board has more jobs than Max jobs per company, its missing jobs are kept and checked again next time, and jobs the last check couldn't have seen are marked first-seen rather than new. Use a different History name per project to keep histories apart.

How much does it cost?

You pay per company checked: a company whose job board was found and read, whether it has 500 open jobs or none. See the Pricing tab for the rate. Everything else is free: job rows, closed-job rows, companies where no job board was found, boards that couldn't be read, and duplicates.

Set a maximum cost per run in the run options and the tool stops cleanly when it gets there, without saving companies it couldn't charge for. If Apify moves a run to another server, it carries on after the last company it saved instead of starting over, and never charges a company twice.

Good to know

  • Speed: most companies take 1–8 seconds, several at a time. In our tests, 8 companies with 1,835 open jobs between them took under 30 seconds, and 16 well-known companies with 5,263 open jobs took 101 seconds, most of it one Workday site: Workday is read one request at a time with pauses (20 jobs per request), so 1,000 Workday jobs take about 90 seconds.
  • What it found in our tests (21 well-known companies given as plain domains, plus Palantir): linked from the company's own website: Figma, Notion, Ramp, Linear, Mistral AI, GitLab, Vercel, Anthropic (Greenhouse or Ashby) and Palantir (Lever); by name, each with its evidence in the note: Stripe, Airbnb and Datadog (job links on their own domains), Cloudflare, Discord, Spotify and Bitpanda (board name is the website's name; Bitpanda is a Greenhouse EU board). Not found and not charged: OpenAI and Reddit (their websites blocked us, so a board with their name couldn't be confirmed), Instacart (its board's job pages are on instacart.careers and its website doesn't link to the board), Salesforce (Workday, not linked from its pages), HubSpot and Shopify. For a company like OpenAI, Reddit or Instacart, give the board link instead.
  • Descriptions: Greenhouse, Lever and Ashby send them with the job list. SmartRecruiters and Workday need one request per job, so for them descriptions are fetched for up to 300 jobs per company per run, new jobs first. Descriptions are plain text, up to 10,000 characters. Contact details are removed: email addresses (also written as name(at)company.de), phone numbers (international, national and US formats, and numbers after "Tel", "Phone", "Mobil"...), LinkedIn and XING profile links, and sentences or blocks that name a contact person, such as "Ihr Ansprechpartner: Max Mustermann …", "Ansprechpartner*in", "Talent Partner: …" or "Reach out to Jane Doe". Dates, years, salary ranges and phrases like "be the point of contact for clients" or "reach out to Google Cloud partners" are kept. This is best-effort: a name mentioned anywhere else in the text can't always be detected.
  • Workday has no documented public API; the tool reads the same data the career site loads in your browser, politely (one request at a time per site). Workday reports at most 2,000 jobs per site, so bigger sites aren't read in full.
  • SmartRecruiters answers "no jobs" for a company id it doesn't know. When a SmartRecruiters board has never had jobs in your history, a "no jobs" answer is reported as no-board and not charged.
  • Greenhouse EU boards (job-boards.eu.greenhouse.io) are read through the same public API and linked on their EU address.
  • Proxy: Apify Proxy is used only to load company websites; the job boards' APIs are called directly.

FAQ

Is this legal? The tool reads public job postings that companies publish so that anyone can see them, through the job boards' public APIs (Greenhouse Job Board API, Lever Postings API, Ashby Job Posting API, SmartRecruiters Posting API) and Workday's public career sites. It doesn't log in and doesn't collect people: no recruiter or hiring-manager fields, and contact details are removed from descriptions (see above). Job descriptions are company-written texts; check that your use of them is allowed, and don't republish them as your own job board without the companies' permission.

Why did a company get no-board? Its website doesn't link to a supported job board, it uses another job board, or its website refused our requests (some sites block automated visitors). Give the board link directly, or check the note and pagesChecked.

Something isn't working or you'd like a feature? Open an issue on the Issues tab.