Skip to content

Data

The sales hiring market, as data

What sits behind SalesJobs.Now: today's open sales roles counted by kind of work and by company, and the pay their postings state. Files go to your work email, cut from the same reads of each company's careers system that refresh the board every hour.

8,381
sales roles open now
Last read 30 Oct 2026, 17:06 UTC

The files

Three files, cut from the latest read

Every file comes from the same pass over the companies' hiring systems that the pages use, so a number in a file always matches the number on screen. Request them above and one email brings all three links.

Open sales roles

/roles.json

How deep the sales hiring market is this hour: open roles tallied per kind of sales work and per company, and the new arrivals of the last 7 days beside those of each recent week. Expect totals here, never one posting at a time.

name, description
A plain statement of what the file holds.
source
The page on this site that shows the same figures.
license
CC BY 4.0.
measurement_technique
A note on how each figure is counted.
updated
The moment the companies' careers systems were last read, in ISO 8601 UTC.
temporal_coverage
The date the numbers stand for (YYYY-MM-DD). Quote it whenever you cite them.
totals.open_roles
Open sales roles summed over every company we read.
totals.platforms_live
Companies hiring now: the ones whose careers system we read that hold one open role or more (Hiring now in the companies directory).
totals.new_last_7d
Of today's open roles, those our reads first caught in the last 7 days (a window of 7 UTC days closing today).
recent_market_momentum.weekly[]
One row per recent ISO week, week_start and the new_roles counted in it, then the mean across those weeks.
open_by_work_type[]
slug, label and open_count, plus the pay fields below wherever three or more companies post pay for that kind of work (null otherwise).
open_by_platform[]
slug, name and open_count for each company.

Base and OTE, kind by kind

/pay.json

The yearly pay sales postings state, for each kind of sales work where at least three different companies publish a figure, so no single employer's range ever stands in for the market.

name, description
A plain statement of what the file holds.
source
The page on this site that shows the same figures.
license
CC BY 4.0.
measurement_technique
A note on how each figure is counted.
updated
The moment the companies' careers systems were last read, in ISO 8601 UTC.
temporal_coverage
The date the numbers stand for (YYYY-MM-DD). Quote it whenever you cite them.
pay_by_work_type[].slug, label
The kind of sales work (account executive, sales development or customer success, for example).
currency, unit
USD, per year: base salary, or OTE where that is the figure the posting gives.
median
The middle of the stated yearly figures.
typical_low, typical_high
Typical pay: from the 25th percentile of the midpoints of posted ranges (each counted as yearly pay, a rate per hour at 2,080 hours) to the 90th percentile of their top ends.
rate_samples
How many distinct pay figures were measured, with relisted postings taken out.
platforms
How many companies stand behind those figures.
open_total, unpriced
open_total counts that kind's live openings; unpriced is the subset whose posting names no salary.

The pay table as a spreadsheet

/pay.csv

Every /pay.json row in a dated CSV file, ready for Excel or Google Sheets.

For developers

Read the files from code

Any program can fetch the three files over HTTPS without a key, from any origin. Open one of those addresses in a browser instead and it lands you back on this page, where people request them by email.

curl https://salesjobs.now/roles.json

const res = await fetch("https://salesjobs.now/pay.json");
const { pay_by_work_type } = await res.json();

For investors

Hiring radar

The records under every number on this page: each sales role at every company we read since the first read, with its pay, kind of sales work, countries and the days it opened and closed, each company day by day, and a log of every change, sent as files each day. See what is inside and the record counts.

For AI assistants

Ask Claude or ChatGPT about open sales roles

The data also runs as a remote MCP server. An assistant can search open sales roles and read the pay figures, and each role it returns links back to its page here, where the application starts.

Endpoint to add (Streamable HTTP transport)

https://salesjobs.now/api/mcp

search_sales_jobs
Open sales roles filtered by keywords, kind of work, company, country or a pay floor, each returned with its stated pay and an apply link.
get_sales_pay
Salary midpoints and the usual low-to-high band per kind of sales work, mirroring /pay.json.
get_sales_market
Open-role counts by kind of sales work and by company, for one country if you name it (what /roles.json returns).
get_hiring_radar
Sales hiring data for investors

Inside Claude it goes in as a custom connector (Settings, Connectors). For Cursor, VS Code, Claude Code or any client set up through a JSON file, paste:

{
  "mcpServers": {
    "salesjobs-now": { "url": "https://salesjobs.now/api/mcp" }
  }
}

Terms

Use it freely, name the source

  • License: CC BY 4.0, so republish or chart it as you like. Attribute it to SalesJobs.Now with a link to the sales pay report and quote the temporal_coverage day next to any number you use.
  • Access: a person gets them by email, at a company address; a script fetches them straight over HTTPS, keyless and cross-origin. Machine-readable spec: /openapi.json.
  • Freshness: each company's careers system is re-read every hour, and polling faster brings back identical numbers, so holding a copy for up to an hour loses nothing.
  • Method: which postings count, which are left out and why a pay figure needs three companies behind it are set out in our methodology.
Want it by country, company or kind of sales work, over a longer stretch, or down to the individual roles?