Signal recipe · Hiring
A hiring signal: 227 RevOps and sales-leadership jobs at 59 of 100 SaaS companies, in one 49-second run for $0.45
A company that advertises for a deal desk analyst, a sales compensation manager or three regional sales directors is telling you what it is about to build. Here is how to read that signal for a list of accounts, every morning, from the companies' own job boards.
A job ad is the most honest buying signal there is. The company wrote it, dated it and put a budget next to it. When a software company posts for a deal desk analyst, it has more quotes and discount requests than its sales team can handle. When it posts for a sales compensation manager, its commission plans have outgrown a spreadsheet. When it posts for a GTM systems lead, its CRM is about to change. And when it posts six regional sales directors at once, it is opening territories.
If you sell to sales teams (CPQ, commissions, forecasting, enablement, data), recruit for them, or want to work in one, that is the list you want: which of your target accounts are hiring for these roles right now, and which ones started this week.
We built it for 100 B2B software companies on 14 October 2026 with our careers-jobs Actor on Apify. It reads each company's own public job board on Greenhouse, Lever, Ashby, Personio or Teamtailor, so the jobs are the employer's own postings, with the employer's own dates and pay ranges. No job aggregator, no login, no people data: the rows are jobs, not candidates or recruiters. Every number below is from that run.
The signal, written as an input
Who we wanted: RevOps and sales operations roles (including deal desk, enablement, sales compensation and GTM systems), plus sales leadership from director up, at 100 B2B software companies. The 100 boards are in recipe-1-companies.txt; the first five are shown here.
{
"companies": ["ashby:1password", "greenhouse:abnormalsecurity", "greenhouse:airtable", "greenhouse:algolia", "greenhouse:apolloio"],
"titleKeywords": [
"revenue operations", "revops", "rev ops", "sales operations", "sales ops",
"gtm operations", "go-to-market operations", "gtm systems", "sales systems",
"deal desk", "sales enablement", "revenue enablement", "sales strategy", "sales compensation",
"head of sales", "vp sales", "vp of sales", "vp, sales", "vice president of sales", "vice president, sales",
"director of sales", "sales director", "director, sales",
"regional vice president", "area vice president", "chief revenue", "head of revenue"
],
"includeDescription": false,
"onlyNew": true
}Three notes on the fields:
companiestakes a board token with its system (greenhouse:datadog), a careers-board URL, or just a name (figma), which the Actor looks up on the five systems in turn. Tokens are faster and never pick the wrong company.titleKeywordskeeps a job if its title contains any of the phrases, ignoring case. Phrases match as text, sosales directoralso catches "Regional Sales Director" and "Enterprise Sales Director - Majors".includeDescription: falseleaves out the job text. You don't need it for a signal, and the rows stay small enough for a spreadsheet.
Our first draft also had sales manager and manager, sales. That run returned 344 jobs instead of 227, and most of the extra 117 were partner, channel and territory sales managers who carry a quota. They are sellers, not sales leadership, so we dropped the two phrases.
What came back
- 227 open jobs at 59 of the 100 companies. The run took 48.5 seconds. At $2 per 1,000 jobs plus a $0.00005 start fee, a user on the free or Starter plan pays $0.45 for it.
- 114 RevOps and sales operations jobs at 52 companies, and 113 sales-leadership jobs at 30. 23 companies are hiring for both, which is the strongest version of the signal.
- 96 of the 227 were posted in the last 30 days, at 42 companies; 26 in the last seven. The posting date is the board's own first-published date.
- 133 jobs (59%) publish a pay range. In US dollars the median published range was $242,500 to $277,500 for sales leadership (50 postings), $125,000 to $164,500 for revenue and sales operations (28) and $110,820 to $147,500 for deal desk (10). Sales ranges are often on-target earnings, base plus commission; the posting says which.
- A second run with the same input, started 66 seconds after the first, returned nothing and cost $0.00005. That is what
onlyNewis for, and it is how the daily version below stays cheap.
Sample rows
Ten of the 227, one per company, newest first. These are the employer's own titles and locations, unedited.
| Company | Title | Location | Posted | Published pay range |
|---|---|---|---|---|
| MongoDB | Regional Vice President, Enterprise, Growth, UKI | London | 2026-10-14 | none |
| Temporal | Senior Manager, Global Deal Desk | United States (Remote) | 2026-10-14 | USD 224,000 to 285,000 |
| Vercel | Senior Deal Desk Analyst, EMEA | Hybrid - London | 2026-10-14 | GBP 65,000 to 85,000 |
| Twilio | Sales Operations Planning Analyst | Remote - US | 2026-10-13 | USD 128,560 to 160,700 |
| Sierra | Sales Compensation Systems | San Francisco, CA | 2026-10-13 | USD 170,000 to 220,000 |
| LaunchDarkly | Senior Director, GTM Systems | Remote - US | 2026-10-12 | USD 240,600 to 330,700 |
| Abnormal Security | Regional Sales Director, US SLED West | Remote - USA | 2026-10-12 | USD 197,650 to 232,500 |
| Starburst | Director of Sales Enablement | Boston, MA | 2026-10-08 | USD 185,000 to 225,000 |
| Webflow | Senior Manager, Sales Compensation | U.S. Remote | 2026-09-01 | USD 188,000 to 235,000 |
| Klaviyo | Head of Sales, ANZ | Sydney, AU | 2026-09-17 | AUD 280,000 to 420,000 |
Each row also carries department, team, every listed location, a country code, workplaceType (remote, hybrid or onsite when the board says), employmentType, postedAt, updatedAt on Greenhouse boards, the pay fields split into salaryMin, salaryMax, salaryCurrency and salaryPeriod, and the job and apply URLs.
Reading it as an account list
Grouped by company, the 227 jobs become a ranked account list. These are the twelve with the most matching openings.
| Company | RevOps and sales ops | Sales leadership | Newest posting |
|---|---|---|---|
| Sierra | 4 | 33 | 2026-10-13 |
| Elastic | 3 | 12 | 2026-09-30 |
| Cato Networks | 1 | 13 | 2026-10-13 |
| Braze | 4 | 7 | 2026-10-09 |
| GitLab | 5 | 4 | 2026-10-13 |
| MongoDB | 7 | 2 | 2026-10-14 |
| Verkada | 8 | 1 | 2026-09-02 |
| Airwallex | 4 | 4 | 2026-09-17 |
| Datadog | 4 | 2 | 2026-09-29 |
| JFrog | 3 | 3 | 2026-10-05 |
| Navan | 6 | 0 | 2026-10-07 |
| Fivetran | 0 | 6 | 2026-10-09 |
The full list of 59 companies, with the ATS board and how many jobs publish pay, is accounts.csv.
The two columns mean different things, so read them separately:
- Sales leadership, many at once means territories are opening. Sierra had 33 such postings, and 27 of them were "Enterprise Sales Director" roles split by industry (financial services, healthcare, retail, public sector) and region. That is a company building an enterprise sales team from close to nothing, and it will need everything a new team needs.
- RevOps and sales ops is the machinery behind the team. Of the 114, 53 were general revenue or sales operations roles, 23 deal desk, 19 enablement, 10 sales compensation and 9 GTM systems. Each one points at a different purchase: deal desk at quoting and contract tools, compensation at commissions software, GTM systems at CRM work and data tools, enablement at training and call-coaching tools.
- Both columns at once (23 companies, including Datadog, GitLab, MongoDB, Okta and Braze) means the sales team is growing and the company is paying to make it run better at the same time.
Read the titles once
Text matching is simple, so look at the titles before you load them anywhere. In this run 3 of the 227 were not what we meant: head of sales matched Notion's "Head of Sales Recruiting", director, sales matched "Director, Sales Engineering" at Datadog, and regional vice president matched a solutions-engineering leader at JFrog. A filter step in n8n, or a glance in the sheet, removes them.
Two more things to know. The country field was empty on 27 jobs, mostly postings that list several countries; the full location text is always there. And workplaceType is only filled in when the board has the field (Ashby does, Greenhouse mostly doesn't), so 119 jobs (112 of them from Greenhouse) say nothing about remote work.
The daily version: only new jobs, posted to Slack
The useful form of this signal is a message every morning with the jobs that appeared since yesterday. onlyNew: true makes that cheap: the Actor remembers which jobs it has already returned for this exact list of companies and keywords, in your own Apify account, and returns only the rest. Our second run returned zero rows. In the seven days before our run, these 100 companies first published 26 matching jobs, about four a day, so a daily run costs about a cent. Change the companies or the keywords and the memory starts fresh.
We use an n8n workflow with five nodes for it:
- Schedule Trigger, every day at 09:00.
- Companies and filters (a Set node): your boards, one per line, and your title keywords.
- Apify, Run actor and get dataset: runs careers-jobs with
onlyNew: true,includeDescription: falseandmaxResults: 500, with a $1 cap on the run. - Code: groups the new jobs by company into one message, with location and pay range when the posting has one. A quiet day sends nothing.
- Slack: posts it to the channel you pick.
Download hiring-signal-to-slack.json. It is our standard new-jobs workflow with this article's 100 companies and 27 keywords already filled in, one keyword per line (several of them contain commas). The plain version, for your own list, is new-company-jobs-to-slack.json.
Setup takes about five minutes:
- In n8n, open Workflows > Import from file and pick the JSON.
- The workflow uses the verified Apify node (
@apify/n8n-nodes-apify). n8n Cloud installs it from the canvas; on self-hosted n8n, add it under Settings > Community nodes. - In the Apify node, create an Apify API credential with your token from the Apify console (Settings > API & Integrations).
- In Post to Slack, pick your Slack credential and the channel.
- Edit Companies and filters for your own accounts. Run it once by hand: the first run returns every open job that matches and posts the first 40 (the rest are in the run's dataset on Apify). From the next morning you only see new ones.
For a list instead of a feed, swap the Slack node for Google Sheets > Append row and map company, title, location, postedAt, salaryMin, salaryMax, salaryCurrency and url.
One limit to know: on Apify's free plan a run returns up to 100 jobs, and any paid Apify plan removes the cap. On the free plan the first run of this list would stop at 100 of the 227; the rest arrive with the next runs, because onlyNew only remembers jobs it has actually returned. After that, a daily run is far below 100.
If you work from Claude Code or another MCP client
With the Apify MCP server connected, this prompt does the same job and gives you a table:
Use the Apify Actor locaihost/careers-jobs. Companies: the boards in recipe-1-companies.txt.
titleKeywords: revenue operations, revops, sales operations, deal desk, sales enablement,
sales compensation, gtm systems, head of sales, vp of sales, sales director, regional vice president,
chief revenue. includeDescription false, onlyNew false. Before running, tell me how many companies
you are sending; the price is $2 per 1,000 jobs. After the run, group the jobs by company into two
counts (RevOps and sales ops vs sales leadership), list any title that is clearly not a sales or
revenue role, and give me the 15 companies with the most matching jobs and their newest posting date.More ways to use the hiring signal
- Your own customers. Put your customer list in
companies. A new sales compensation or GTM systems hire at a customer means a tool review is coming; be in it. - Competitor displacement. Add
keywords: ["salesforce cpq"]or the name of a competitor's product.keywordssearches the job text as well as the title (turnincludeDescriptionback on to see the line), so you learn which accounts run the tool you replace. - Region launches.
locations: ["Japan", "Tokyo"]or["Germany", "DACH"]on the leadership keywords shows who is opening a country, before the press release. - Recruiting. Agencies: the leadership column is a list of hiring managers about to need a team. Swap the keywords to
account executiveandsales developmentto see the volume roles. - Job seekers. Drop the company list down to the twenty places you would join, set
withSalaryOnly: true, and run it daily. You get the posting the morning it appears, with the pay range. - Other functions. The method is one field.
titleKeywords: ["data engineer", "analytics engineer"]is a list for data tooling,["payroll", "people operations"]for HR software,["procurement", "sourcing"]for spend management.
Notes
- The sample. 100 B2B software companies we picked by hand from the 300 tech employers whose job boards we confirmed for an earlier analysis. Big platforms, developer tools, data and security software, HR and finance software. It is not a random sample of SaaS.
- The run. Run
wLJP9qnbf3BdkJf3ron 14 October 2026 at 16:53 UTC, then runshW3oBZWh8Txc6rruwith the same input. Boards answered: Greenhouse 151 jobs, Ashby 74, Lever 1, Teamtailor 1. - A posting is not a hire. One ad can cover several openings, some ads stay up for months, and a few are internships. A Mirakl sales enablement internship first published in October 2025 was still open.
- Reproduce it. The company list, the run script and the analysis script are next to this post, with the computed results.
If you run this on your own account list, post two numbers in the comments: how many of your accounts had at least one matching job, and how many matches were new after a week. That tells the next reader how often to run it.
Source: the public job boards of 100 employers on Greenhouse, Ashby, Lever and Teamtailor, read by locaihost data on 14 October 2026.