DEV Community

Athirajan M
Athirajan M

Posted on AI-assisted

Track which companies are hiring for sales roles, every week, with no code

A company that opens ten Account Executive roles is about to spend money on its sales team. A company that just posted "Head of RevOps" is about to pick its tools. Job postings are one of the few buying signals that companies publish themselves, for free, and they update every day.

The catch is that checking 50 careers pages by hand every Monday doesn't happen. This guide sets up a weekly report that does it for you:

  • Input: your list of target accounts, as names or website domains.
  • Output: one row per company with open roles, new roles this week, how much of the hiring is Sales, and which leadership roles are open.
  • Later runs: the roles opened and closed since the last check.

No code, about 10 minutes, and it costs cents per run.

What the data looks like

I ran it on 9 well-known software companies on November 4, 2026:

Company Open roles New in last 7 days Sales share of open roles Titles matching "sales" / "account executive"
Stripe 754 79 36% 179
Datadog 396 25 56% 164
Ramp 168 13 41% 18
Notion 146 14 40% 8
Figma 145 13 37% 38
Vercel 88 4 35% 12
Spotify 85 0 (29 in 30 days) 20% 6
Linear 31 1 16% 5
Hugging Face 6 0 0% 0

Each row also has a list of plain-English signals. Here's what came back for Datadog:

  • 25 new roles posted in the last 7 days
  • Sales is the biggest hiring area: 222 of 396 open roles (56%)
  • Go-to-market hiring: 222 Sales, 13 Marketing, 31 Customer Success & Support
  • Hiring leadership: Director, Enterprise Sales (SLED); Director, People Business Partner; Director, Product Design (+22 more)
  • Hiring in 25 countries; top: United States (211), Japan (32), France (28)

Some things you'd never spot by skimming a careers page: more than half of Datadog's open roles are in Sales, 90% of Ramp's roles are remote, and Ramp posts a salary range on 96% of its roles.

Step 1: Open the Actor

The tool is an Apify Actor called Career Page Jobs & Hiring Signals: https://apify.com/versant_nautilus/career-page-jobs

Click Try for free. You need an Apify account, and the free plan is enough to follow along.

Disclosure: I built this Actor.

Step 2: Paste your account list

In the Companies field, add one company per line. You can mix three kinds of input:

  • a website domain: stripe.com, datadoghq.com
  • a company name: Notion, Hugging Face
  • a careers-page URL, if you know it: https://jobs.lever.co/spotify

For a name or domain, the Actor finds the company's job board by itself. It checks the company's own /careers page for a job-board link, then tries the name on each supported board.

Then set:

  • What to return: One hiring-signals report per company
  • Job title contains any of (optional): account executive, sales. Reports always count all of a company's open roles, and the keywords add a matchingJobs count for just the roles you care about.
  • Track changes under this name: any short name, e.g. target-accounts-weekly. This makes the Actor remember what it saw, so the next run can tell you what changed.

If you prefer JSON input:

{
  "companies": ["stripe.com", "datadoghq.com", "ramp.com", "Notion", "figma.com", "vercel.com",
                "https://jobs.lever.co/spotify", "linear.app", "Hugging Face"],
  "outputType": "companies",
  "titleKeywords": ["account executive", "sales"],
  "monitorId": "target-accounts-weekly"
}
Enter fullscreen mode Exit fullscreen mode

Step 3: Run it

Click Start. Nine companies take about 15 seconds. The results tab shows one row per company, and two extra files are saved with every run:

  • SUMMARY: which job board was found for each company, and how it was matched.
  • EXPORT.csv: a spreadsheet-ready copy of the results.

A company that isn't found is listed in SUMMARY with a reason, and you aren't charged for it.

Step 4: Make it weekly

  1. Click Save as a new task so your company list and settings are kept.
  2. Open Schedules in the left menu, create a weekly schedule (e.g. Monday 08:00) and add your task to it.

The first run saves a baseline. From the second run on, every report adds:

  • newSinceLastRun and closedSinceLastRun, for roles opened and closed since the previous check.
  • A signal like "12 roles opened and 9 closed since the last check".

Step 5: Send it where you work

Under the task's Integrations tab you can send each finished run to Slack, a webhook, Zapier or Make. With Zapier or Make you can add each week's rows to a Google Sheet, which gives you a running history of your accounts' hiring.

Variation: get only new Sales roles

To get the new postings themselves instead of company reports, set What to return to One row per job and turn on Only return jobs not seen in earlier runs:

{
  "companies": ["stripe.com", "datadoghq.com", "ramp.com", "Notion", "figma.com"],
  "outputType": "jobs",
  "titleKeywords": ["account executive", "sales development", "sdr", "bdr"],
  "locationKeywords": ["united states", "remote"],
  "monitorId": "new-ae-roles",
  "onlyNewJobs": true,
  "includeDescription": false
}
Enter fullscreen mode Exit fullscreen mode

The first run returns every matching role and saves them as the baseline. After that, each run returns only roles that weren't there last time. Each job row has the title, department, seniority, location, country, remote flag, salary (when the company publishes it), posted date and apply link.

What it costs

You pay per result. There's no monthly fee from the Actor.

  • $0.01 per company report. The 9-company report above costs $0.09 a run, or about $0.40 a month weekly.
  • $0.002 per job row. A thousand jobs cost $2. With only-new-jobs on, a weekly run only pays for that week's new roles.

Companies that aren't found cost nothing. You can also set Max results for the whole run to cap any run.

Where it works and where it doesn't

The Actor reads the official public job-board feeds of seven applicant-tracking systems: Greenhouse, Lever, Ashby, Workable, Recruitee, Teamtailor and Breezy HR, which are common among startups and scale-ups.

It doesn't cover Workday, iCIMS, SuccessFactors, Taleo, SmartRecruiters or fully custom careers sites yet, so many large enterprises will come back as "not found". Function (Sales, Engineering…) and seniority are rule-based estimates from the job title, so treat the percentages as close, not exact.

Calling it from code

The same input works through the API. In Python:

from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("versant_nautilus/career-page-jobs").call(run_input={
    "companies": ["stripe.com", "datadoghq.com", "Notion"],
    "outputType": "companies",
})
for report in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(report["company"], report["openJobs"], report["hiringSignals"][:2])
Enter fullscreen mode Exit fullscreen mode

If you try it and a company you expected isn't found, paste its careers-page URL instead. If it's on a job board the Actor doesn't support yet, tell me which one in the Actor's Issues tab. That's how I'm deciding what to add next.

Top comments (0)