Company Hiring Signals API – Hiring Velocity & Tech Stack
Pricing
from $10.00 / 1,000 company reports
Company Hiring Signals API – Hiring Velocity & Tech Stack
Hiring signals from Greenhouse, Lever, Ashby, Workday, Workable, Breezy, Personio & Rippling. Input names/domains (Ashby & Rippling: board URL); get open jobs, 7/30/90d hiring velocity, hiringScore, tech stack, new/closed roles. $0.01/company, misses free. Works in Clay & AI agents.
Pricing
from $10.00 / 1,000 company reports
Rating
0.0
(0)
Developer
Siftsmith
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 hours ago
Last modified
Categories
Share
Hiring Signals — Company Job & Tech Stack Intel
Give it a list of companies. Get back who's hiring, how fast, for what, and with which technologies — plus what changed since you last checked.
One row per company, $0.01, no subscription. Companies not found are free. Each row has open jobs, 7/30/90-day posting velocity, a 0–100 hiringScore, the tech stack from job posts, and new and closed roles since your last run. 1,000 companies cost at most $10; individual job rows are optional at $0.002 each. Covers companies hiring on Greenhouse, Lever, Ashby, Workable, Breezy HR, Personio, Workday and Rippling. Works as a domain-in, row-out enrichment step for spreadsheets, CRMs, Clay (via Clay's built-in "Run Apify Actor" enrichment) and AI agents (via the Apify API and MCP server).
A pay-as-you-go alternative to TheirStack, Crunchbase hiring data, and manual career-page checking, with no seat fees.
Quick start
Input:
{ "companies": ["Datadog", "stripe.com", "lever:palantir"] }
One report row per company (plus job rows if you turn on individual jobs). A run on 2026-10-14 returned this for Datadog (trimmed):
{ "company": "Datadog", "found": true, "type": "company", "ats": "greenhouse", "slug": "datadog", "matchConfidence": "high","openJobs": 439, "postedLast7d": 28, "postedLast30d": 122, "postedLast90d": 244, "hiringScore": 71,"engineeringShare": 0.35, "topTechnologies": [{ "name": "Kubernetes", "count": 66 }, { "name": "AWS", "count": 60 }] }
- Price: $0.01 per company found with at least one open job. No start fee. These rows are free: not found, a board naming a different company (
lowmatch), a failed lookup, a board with zero open jobs (a board whose only postings are standing invitations such as "General application", "Talent pool" or "Don't see the right role?", or test postings such as "Test Job" or "[TEST] …", counts as zero, and so does a board whose real postings all carry a date over a year old), duplicates, and inputs skipped at your max charge. Individual job rows are optional at $0.002 each. Details are under "Pricing". - Best input: a domain (
stripe.com) or the company's name as it appears on its careers page. If you know the board, pass it (greenhouse:stripe) or paste the job board's URL. Workday is matched by name or domain too (see Workday below); passingworkday:{tenant}:{wdN}:{site}or themyworkdayjobs.comURL always works. Rippling is never auto-matched: passrippling:{slug}or theats.rippling.com/{slug}/jobsURL. - Pasted spreadsheet rows: one company per line. A line with several fields (split by tabs,
|,;or quoted CSV cells) is looked up by, in order: a job board in any field (a board URL orgreenhouse:acme); a website or work email that agrees with the company name; otherwise the first field, skipping row numbers and company pages on directories (LinkedIn, Crunchbase). So1 | Adyen | Amsterdam | adyen.comis looked up as adyen.com andAlphabet | abc.xyzas Alphabet. A row with no website, email or job board whose first two fields are each one word written like a name (Jane,Doe; not an acronym likeIBMor a word likeCorporLabs) reads as a person's name. A row whose first field is a common US first name, in any letter case, also reads as a person's name, even when the next field is an acronym or several words:David | IBMis free, andTAYLOR | BROWN | ACME CORPis looked up as ACME CORP. This also frees a company named like a person, such asHarper | San Francisco. A row whose second field is a common US first name after a one-word surname also reads as a person's name, in any letter case:FERGUSON | JOHN | IBMis free, andparsons | mary | acme corpis looked up as acme corp. This also frees a company whose second field is a city or other word that is also a first name, such asTESLA | AUSTIN. A row of three or more fields whose first field is one word is never looked up by that first field when its second field is empty, a placeholder such asN/A,-or?, or reads like a given name however it is punctuated or accented: initials, titles, suffixes, nicknames and joined names included (Dr. John,John Q. Jr.,John (Jack),J.-P.,John/Jack,Sarah (she/her)). A second field of two or three letters is always read as initials (AB,SE,LTD). A second field with a digit, or with a word such as Group, Services, Holdings, Corp or GmbH, is not read as a given name. SoFerguson | John Q. | IBM,Stevens | | IBMandPARSONS | N/A | IBMare free. A company row of that shape, such asIBM | | Armonk,STRIPE | DUBLIN | FINTECHorStripe | N/A | Fintech, is free too, unless a later field is the same name plus a legal form or company word:STRIPE | DUBLIN | STRIPE INCis looked up as STRIPE. A person's row is looked up only by a later field of two or more words that ends in a legal form or a company word such as Inc, Corp, Ltd, GmbH, Group, Technologies or AI:Jane | Doe | Acme Corpis looked up as Acme Corp. Otherwise the row is free:Jane | Doe | Stripe,Jane | Doe | London,Stripe | Dublin | FintechandStripe; Plaid; Rampread the same way. So is a two-field company row likeAdyen | AmsterdamorGoldman | Sachs. So is a row whose first field is one word written like a name followed by a company field (two or more words ending in a legal form or company word, as above), unless that field is the same name plus those words:David | Acme CorpandNotion | Software Companyare free;Stripe | Stripe IncandNotion | Notion Labsare looked up as Stripe and Notion. A LinkedIn profile link (linkedin.com/in/…) also makes a row a person's row, looked up only by a company field:David | linkedin.com/in/dsmith | Acme Corpis looked up as Acme Corp. Add the company's website to have such a row looked up. If the line also has a company website or work email, a job board found by that name counts only when it ties to that website: the board lists it, the board's jobs link to it or mention it, or the website links the board. Otherwise the line is free:Plaid, adyen.comis free, because Plaid's board doesn't point to adyen.com. A line looked up by its name that has no website, only a personal email address (Gmail, Outlook, Yahoo and the like), is free too, because nothing in it confirms the name is a company: lead lists often put a person's first name first. SoDavid, Smith, david@gmail.comandStripe, jane@gmail.comare both free; add the company's domain (Stripe, jane@gmail.com, stripe.com) and the line is looked up by that domain. Names likeAcme, Inc.contain a comma, so plain commas split a line the same way only when it has a job board, a website or work email that agrees with the name, or a name first and a website or work email after it:Adyen, adyen.comis looked up as adyen.com andAlphabet, abc.xyzas Alphabet, whileAcme, Inc.stays one name. - Monitoring: Track changes between runs is on by default. Schedule the same input weekly. From the second run on, each row counts roles opened and closed since the last run (
newSinceLastRun,closedSinceLastRun) and lists up to 50 new ones innewRoles. On the first run both counts arenull. On a capped board (openJobsCapped: true, this run or the last), one run reads only the first 1,000 roles, so a role missing from them may still be open:closedSinceLastRunis thennull, andnewSinceLastRuncounts only roles posted since the last run's date.
What you get per company
| Field | Example |
|---|---|
openJobs | 691 |
openJobsCapped / openJobsReported | false / null. openJobsCapped is true when the board has more open roles than one report covers (1,000 on Workday, or fewer if the board answers too slowly to page through within 2 minutes); openJobs and the posting counts then cover the roles read, and openJobsReported gives the total the job board itself reports (e.g. 2000 for NVIDIA on Workday; Workday reports at most 2,000, so treat 2000 as 2,000+). null when the board doesn't report a separate total. See hiringScore for how freshness is scored on a capped board |
postedLast7d / postedLast30d / postedLast90d | 68 / 274 / 503, by each role's publish date exactly as the job board reports it |
hiringScore (0–100, volume + freshness) | 76. round(100 × (0.6 × volume + 0.4 × freshness)): volume is the open-role count (on a capped board, openJobsReported), log-scaled so it tops out at 300 roles; freshness is the share of open roles posted in the last 30 days, not counting a bulk re-publish (below). On a capped board (openJobsCapped: true) the share is taken of the board's own total, openJobsReported, not of the 1,000 roles fetched: Workday lists newest roles first, so the first 1,000 over-represent new roles (a board reporting 1,500 whose first 1,000 roles are all from the last 30 days would score 100 on those alone; on its own total it scores 87). When the 1,000 fetched roles include older ones, every role from the last 30 days is among them and the share is exact (Salesforce: 843 of 1,522, score 82) |
freshnessLowerBound | false. true only on a capped board where all fetched roles (up to 1,000) were posted in the last 30 days: the board has at least that many recent roles but may have more, so postedLast30d and the freshness part of hiringScore are lower bounds (a board reporting 1,500 whose first 1,000 are all recent: at least 1,000 of 1,500, score 87), not a guess extrapolated from the posting rate. One exception: a Workday board reporting 2000 can be bigger than that, which pushes its share the other way (see Limitations) |
bulkRepublish | false. true when a board with 20+ open roles has more than half of them published within one 24-hour window (any 24 hours, so a burst across midnight UTC counts), the pattern of a board migration or re-import rather than a hiring surge; a brand-new board launched within 24 hours is flagged too (Deliveroo re-published 109 of its 148 roles on one day in September 2026). The re-published roles still count in openJobs and postedLast*, but not as fresh in hiringScore |
newSinceLastRun / closedSinceLastRun / newRoles | counts + titles and links of new roles |
engineeringShare, remoteShare (remote-eligible roles: roles that list remote as an option, e.g. "Remote", "London or Remote", "Home based - EMEA", or the job board's remote flag; a role marked only as hybrid doesn't count) | 0.29, 0.16 |
departments, topLocations (a role posted in several places counts toward each of them; a placeholder like Workday's "3 Locations" names no place and isn't counted, so on Workday boards the counts are a floor), seniorityMix | Account Executives (EMEA) 24, Singapore 50 … |
topTechnologies | SQL 136, Python 84, Java 64, Salesforce 38, AWS 36 … |
type | company on every charged report row; job rows are job (below). Free rows (not found, skipped, duplicate) have no type, so filter on found: true or type: "company" for reports |
ats, boardUrl | greenhouse, boards.greenhouse.io/stripe |
boardCompanyName, matchConfidence | Stripe, high (see "How companies are matched") |
Turn on Also output individual jobs to get one row per open role with title, department, location, remote flag, seniority, posted date, detected technologies, and URL. If the run's max charge is reached partway through a company's job rows, that company gets one extra free row after them:
| Field | Example |
|---|---|
type | jobs-truncated |
jobsTruncated / jobsDelivered / jobsAvailable | true / 120 / 691: how many of the company's job rows were returned out of how many real roles (openJobs also counts standing "General application" or talent-pool postings, which never get a job row) |
company / ats / slug / boardUrl | same as on the company report row, so you can join the two |
note | Why the rest are missing (the run's charge limit). Its company report is complete |
Use cases
- Sales & RevOps: find accounts hiring for the stack you sell into ("companies hiring Snowflake + dbt engineers"). Job posts are the most honest tech-stack signal there is.
- Recruiting agencies: spot companies ramping a department before they call anyone.
- Investors: track headcount momentum across a portfolio or watchlist.
- Competitive intel: see which teams a competitor is building, weekly.
- Full-stack account intel: pair with Tech Enricher for a company's website/email/DNS stack alongside its hiring signal.
Monitoring
Leave Track changes between runs on and put the Actor on a schedule (e.g. weekly). Each run reports new and closed roles since the previous run, so you can pipe newRoles straight into Slack, a CRM, or a sheet via Apify integrations.
Input
- Companies: names (
Datadog), domains or career-page URLs (stripe.com,https://www.airbnb.com/careers, matched by the domain), explicit boards (greenhouse:stripe,lever:palantir,ashby:ramp,workable:huggingface,breezy:census,personio:deskbird,workday:salesforce:wd12:External_Career_Site,rippling:rippling), or a job board's own URL, which is read as that explicit board:https://jobs.lever.co/palantir(orjobs.eu.lever.co, read from Lever's EU API),https://jobs.ashbyhq.com/resend,https://boards.greenhouse.io/stripe(orjob-boards.greenhouse.io,job-boards.eu.greenhouse.io,boards-api.greenhouse.io/v1/boards/stripe, an embed's?for=stripe),https://apply.workable.com/huggingface,https://census.breezy.hr,https://deskbird.jobs.personio.de,https://salesforce.wd12.myworkdayjobs.com/en-US/External_Career_Site,https://ats.rippling.com/rippling/jobs. A link to a single job on the board works too. Names and domains are matched automatically against the first six (Ashby only when you give the board, see below), then Workday; Rippling is explicit-board or board-URL only. SmartRecruiters links are recognised, not read (below). - Extra technologies: add your own keywords on top of ~150 built-in technologies (languages, frameworks, databases, cloud, data tools, AI/LLM tooling, CRMs, compliance frameworks).
If a company isn't found, or its lookup fails with an error, it's returned with found: false and an error at no charge. So is a board prefix with no valid board after it (personio:, lever: acme corp, workday:nvidia): its error says the board is malformed or incomplete and gives the expected format, e.g. personio:<slug> (e.g. personio:deskbird). A board with zero open jobs counts as not found, including one you pass explicitly, so an empty or nonexistent board is never charged. A SmartRecruiters board or link (smartrecruiters:experian, a jobs.smartrecruiters.com URL) is recognised but not read: SmartRecruiters asks automated tools not to read its job API (robots.txt), so we don't, and the row comes back found: false with notRead: "robots.txt", free. Some companies use an ATS not yet supported (iCIMS, in-house pages); pass an explicit board if you know it. Personio's public feed is opt-in per customer (Settings > Recruiting > Career page), so a real Personio company with that feed switched off also comes back found: false, same as a nonexistent one.
How companies are matched
A name or domain is turned into likely board names (Hugging Face → huggingface, hugging-face, …) and tried on every supported ATS except Workday (looked up its own way, see below) and Rippling. A guessed board can belong to a different company that happens to use the same name, so each one is checked against the company name the board gives for itself (boardCompanyName), and every report has a matchConfidence.
An Ashby board is matched only when you give it: pass ashby:<slug> or the board URL (ashby:ramp, https://jobs.ashbyhq.com/ramp). Ashby's public job API gives no company name to check a guessed board against, so a board found on Ashby from a name or domain (Ramp, ramp.com) comes back as a free low row with that board and a note to pass it explicitly. When such an Ashby board turns up next to another board for the same input, the other board is kept only if it is a high match with more open jobs; otherwise that row is free and low too.
matchConfidence | Meaning | Charged? |
|---|---|---|
explicit | You passed the board yourself (greenhouse:stripe, or its URL https://boards.greenhouse.io/stripe) | Yes |
high | The board's company name matches your input, ignoring case, punctuation, spaces, legal forms (Inc, LLC, Ltd, GmbH, Corp, AG, SE, B.V., S.A., PLC, …) and, for a board found under the name you typed, trailing words like Group/Holding/Technologies/AI/.com. A board found only by dropping a trailing word such as Technologies/Bank/Enterprises/Holdings/Group from your input (see below) must give your whole name, legal forms aside: Palantir Technologies Inc. finds Lever's "Palantir Technologies". Personio boards are checked against their career page's own title. For a domain input, the board must also point at that domain: the website it lists, or its job links, are on it (stripe.com: Stripe's Greenhouse jobs link to stripe.com), or your domain redirects to that website, or that website redirects to your domain (an old domain the company moved from). A board that lists no website to compare (many Greenhouse and Workable boards) must be tied to your domain another way: links in its job descriptions to your domain (figma.com), or a link to the board from your homepage or the careers page it links (calendly.com/careers), or your homepage, that careers page or the job listing it links listing the board's own job ids (gemini.com/careers), or the careers site the board lists being on your domain, or being a careers site named for it (wise.jobs, spotifyjobs.com) that your homepage or careers pages link. A board under your domain's full name that calls itself by the name after a get/go/use/try/join/with prefix counts as a matching name too (gomotive.com → Greenhouse's "Motive"), with the same need for a tie. Those careers pages are read on your domain, or on the domain it redirects to when that is the same name shortened or extended (abnormalsecurity.com → abnormal.ai). A board found under your domain's name plus a word like Labs, Industries, AI or Security, or your domain's ending, whose name your homepage doesn't give, is high when your homepage or careers pages link it or list its job ids (abnormal.ai → Greenhouse's abnormalsecurity, "Abnormal"); otherwise it isn't reported | Yes |
medium | The match couldn't be fully checked: the board gives no company name (for a domain input, only when its job descriptions mention your domain or your site links to the board); or, for a domain input, a board found under your domain's name plus a word like Labs or AI that your homepage names itself by, but that lists no website and that nothing else ties to your domain (when its jobs mention your domain it's high: grafana.com → Greenhouse's "Grafana Labs", whose jobs all mention grafana.com); or, for a domain input, a board under your domain's name whose own name starts with it and goes on (chime.com → Greenhouse's "Chime Financial, Inc"), kept only when at least two of its jobs, and half of them, give your domain as a link or email address (a passing mention such as "experience with monday.com" doesn't count) or your homepage or careers pages link the board or list its jobs. Check boardUrl | Yes |
low | The board gives a company name and it doesn't match your input; or, for a domain input, the board's website is on a different domain (census.com finds Breezy HR's "CENSUS SA", census-labs.com); or it's a Personio board that gives no name at all (seen only on placeholder or dormant boards); or, for a domain input, nothing ties the board to your domain: it lists no website on it, its jobs don't mention or link it, and your homepage and careers pages neither link the board nor list its jobs, whatever name it gives; or it's an Ashby board found from a name or domain (above); or it's a possible board found only under a shorter name (possibleMatch: true, below). Pass ats:slug explicitly if it's the right company | No |
When several boards are found, a higher confidence wins over a bigger board. A low match comes back free as found: false, with the board it found (ats, slug, boardUrl, boardCompanyName) and a note: if it is the right company, pass that board explicitly (e.g. personio:finanzguru) and it's reported normally. This happens when a company's board uses a legal-entity or longer name than the one you typed (Finanzguru's Personio board is "dwins GmbH").
When your input ends in a descriptor word (Technologies, Tech, Group, Holdings, Enterprises, Bank, Labs, Software, Systems, Solutions, Services, Global, International, Company, …) and no board with a matching name is found under the full name, the name without those words is tried too (Monzo Bank Ltd → monzo). A board found that way is charged only if its own name is your whole input (Palantir Technologies → Lever's "Palantir Technologies", high). A board that gives just the shorter name is often a different company ("Clark" for Clark Holdings, "Pioneer" for Pioneer Bank), so it comes back as a free low row with possibleMatch: true and a note: "Possible job board found under a shorter name: greenhouse:monzo ("Monzo") … If it is the right company, pass it explicitly as greenhouse:monzo. Not charged." The same free hint is given when a board under your full name calls itself by the shorter one (Trade Republic Bank GmbH → Greenhouse's traderepublicbank, "Trade Republic"). Passing that board explicitly reports it normally. A shorter name that is too generic on its own ("First Bank", "Global Tech Group") is never tried.
Where the name comes from: Greenhouse's board API, Workable's job API, Breezy HR's job list, Lever's and Personio's hosted career page titles (plus Personio's per-job legal entity). Ashby boards are not read for a name, since they are matched only when you give them. For domain inputs, the website comes from the "Home Page" link on Lever's hosted boards, the "Company Website" link on Breezy HR's, and the legal-notice link on Personio's; a site that is only a careers site with the company's name in it (spotifyjobs.com) is not counted either way.
A brand with a degree sign is also tried with the sign written out as "grad", the usual German spelling: 1KOMMA5° finds personio:1komma5grad ("1KOMMA5°", 320 open roles on 2026-10-01). So does 1Komma5 GmbH, typed without the sign: a name whose last word ends in a number is tried with "grad" added when nothing is found under the name itself, and a board found that way is used only when its own name is your input's name.
Workday
Workday by company name: postings checked first; unconfirmed sites are free. A name or domain with no confirmed board on the other six ATSes, and no Ashby board found for it, is also looked up on Workday: the company's Workday site is found from its public robots.txt, and a few of its postings are read to check they name this company as the employer (or, for a domain, that the domain's own site links the Workday site or its postings give the domain). Only then is it matched (medium, or high for a domain tie). A Workday site that exists under the name but isn't shown to be this company ("Liberty" finds Liberty University's) comes back as a free status row naming the site, never charged. Known gaps: companies whose Workday name differs from their brand (Johnson & Johnson is jj), domains whose homepage doesn't link the Workday site in its HTML, and only the main public site is read. A single common word can match another organisation's Workday site when its postings use the same name: "Prudential" matches Prudential plc's site for Asia and Africa at medium and is charged, not Prudential Financial's. Check workdayEvidence on name-only matches, give the company's website with the name (a Workday site is then matched only when the domain confirms it), or pass the board URL, which always works. Or pass it explicitly as workday:{tenant}:{wdN}:{site}, or paste the careers URL itself, which has the shape https://{tenant}.{wdN}.myworkdayjobs.com/{site} (e.g. Salesforce's is https://salesforce.wd12.myworkdayjobs.com/External_Career_Site → workday:salesforce:wd12:External_Career_Site). The tenant is read in lowercase, as Workday's API expects, so NVIDIA.wd5.myworkdayjobs.com works too.
Rippling
Rippling boards are read only when you name them, never auto-matched from a company name or domain: pass rippling:{slug}, or paste the board URL, https://ats.rippling.com/{slug}/jobs (a single job's URL, /{slug}/jobs/{id}, or the API's ats.rippling.com/api/v2/board/{slug}/jobs works too). Rippling's job list repeats a role once per location, so roles are counted once with all their locations (in topLocations a role counts toward each of its locations, so those counts can add up to more than openJobs), and each role's own page is read for its description and creation date (postedAt). A role whose page answers "not found" has closed since the list was read and is dropped. If any other role's page can't be read (an error, or not within the same 2-minute budget), the lookup fails and is not charged, rather than reporting roles without dates. Up to 1,000 list rows are read; a larger board is marked openJobsCapped: true with openJobsReported: null, because Rippling's own total counts location rows, not roles.
Pricing
Pay per result:
- Company report: $0.01 per company found with at least one open job (a
low-confidence match, a board that names a different company, is free) - Individual job: $0.002 per job row (only if enabled)
1,000 companies ≈ $10. Companies not found are free. Set a max charge per run in the run options and you're never charged more than that: once it's reached, every remaining input still gets a short free row with skipped: true and a reason, so no input goes missing from the dataset. A company whose job rows were cut short by the limit gets a free jobs-truncated row (see above).
Duplicates are charged once. Inputs are deduplicated on the job board they resolve to (ATS + slug), not on the text you typed: stripe.com, Stripe and greenhouse:stripe all resolve to Greenhouse stripe, so one run with all three gives one charged report. Each duplicate still gets its own row, free, with duplicateOf set to the input that was reported: the one that comes first in your input list. Exact repeats of the same text are collapsed to one row before processing.
Data sources & compliance
Uses only the official, public job-board APIs and feeds that Greenhouse, Lever, Ashby, Workable, Breezy HR, Workday, Personio and Rippling provide for publishing jobs. SmartRecruiters' job API asks automated tools not to read it (robots.txt), so SmartRecruiters links are recognised, not read. No login, no scraping of personal data, no LinkedIn. The output contains job and company information only.
Limitations
- Technology detection is keyword-based on job text: it shows what a company asks for, which strongly correlates with, but isn't proof of, what it runs.
- Company boilerplate is skipped for technology detection: a sentence repeated across at least half of a company's distinct job titles (about-us text, customer lists, benefits) doesn't count, so "trusted by OpenAI and Ramp" in every posting isn't reported as OpenAI. Repeated stack statements ("our stack is Go and Postgres", "proficiency in Python") still count. A custom keyword that appears only in that boilerplate won't be reported.
- Breezy HR's and Workday's public APIs return only title/department/location per posting (Workday also omits department), not the full job description — technology and seniority detection is weaker there than on the other boards. Personio's feed includes the full job description, on par with Greenhouse/Lever/Ashby/Workable.
postedAtreflects the ATS's first-published or created date; some companies repost roles one at a time, which can inflate freshness (a whole board re-published within 24 hours is caught and markedbulkRepublish). Workday only gives a relative age bucket, not a date — roles posted 30+ days ago showpostedAt: null(excluded from the freshness fields) rather than a guessed date.- Workday reports cover up to 1,000 open roles per company, read within 2 minutes per board (a board that answers too slowly keeps the roles read by then). A larger board is marked
openJobsCapped: true, with the job board's own total inopenJobsReported(Workday reports at most 2,000, so2000means 2,000+).hiringScore's freshness is then the 30-day count overopenJobsReported; that relies on the board listing newest roles first, as Workday does (if a capped board's roles come back in no date order, the share among the fetched roles is used instead). A Workday board reporting2000may be larger, and dividing by 2,000 then makes its freshness read higher than it is. - Automatic matching checks the board's company name, and for a domain input the site the board points at, not the company itself: two different companies with the same name (e.g. two "Clark"s) both come out
highfor a name input, and amediummatch is unchecked. A domain input whose company's board lists its website on another company's domain (for example an old domain that doesn't redirect) comes backlowand free; pass the board explicitly. Careers-only sites, link shorteners and a parent brand's site count neither way. CheckboardCompanyName/boardUrl, or pass an explicit board, for companies with generic names. - A Breezy HR board found from a company name that has no logo, no company website and at most 3 open roles is treated as an unused trial account and reported as not found (free): anyone can open a Breezy board under a famous brand's name. If it really is the company's board, pass it as
breezy:{slug}. - Large enterprises are often not found by name. Many use Workday, SAP SuccessFactors, iCIMS, Taleo or their own careers pages. Of those, only Workday is supported: by name or domain when its postings confirm the company, or as an explicit board (see above).
How-to guides
- Find which ATS a company uses: spot the ATS from a careers URL, and check a whole list with this Actor.
- Use it in Clay: add hiring columns to a Clay table with the Run Apify Actor action.
Related tools
- Company Jobs: the open jobs themselves, one row per job from the same 8 ATSes, at $0.001 per job row. Use it when you need only the jobs, not a score per company.
- Buyer Intent Signals: combines this hiring score with a tech-stack check into one 0–100 intent score per company, scored higher (×1.5, capped at 100) when a hiring company doesn't run the tool category you sell.
- Tech Enricher: a domain's website technologies, email provider and DNS host.
Support
Open an issue on the Actor's Issues tab or email hello@siftsmith.com. Issues are read daily and fixed promptly.