Method, in one paragraph. We read the public job feeds of 266 companies across Greenhouse, Ashby, Lever and Workable. Where the board publishes salary as a structured field we take it as-is; where it only appears in the job body we take the range next to a pay cue (such as “base pay range”) and annualise it. Ranges given per hour or per month are converted to a yearly figure; anything that lands outside $5,000–$5,000,000 is dropped rather than “fixed”. Currencies are converted to USD. Postings without a published range are excluded — this is not a survey of what everyone pays, it is a census of what companies chose to publish.
salary-ranges.csv — 1,522 rows, one per posting: company, ats, title, location, remote, role_family, salary_usd_low / high / mid, posted_at, url. Stratified so that every company in the pool appears at least once. CC BY 4.0 — use it, just link back here.
salary-ranges-full.csv — every single row (8,041), same columns, 1.3 MB. Use this one if you are computing statistics: the sample above is deliberately biased towards each company's best-paid roles, so its median is higher than the real one.
From Python, no key needed: pip install salaryranges → salaryranges.fetch().
Numbers move when the market moves and also when we were wrong. Every revision that changed a published value is listed in the change log, with the before/after numbers.
| Company | Postings | p25 | Median | p75 |
|---|---|---|---|---|
| anthropic | 589 | $282,500 | $347,500 | $402,500 |
| galileo | 3 | $312,500 | $315,000 | $520,000 |
| openai | 631 | $248,000 | $307,500 | $366,000 |
| pika | 6 | $215,000 | $292,500 | $300,000 |
| cohere | 78 | $199,807 | $257,500 | $280,087 |
| character | 13 | $240,000 | $250,000 | $275,000 |
| vercel | 71 | $195,500 | $245,000 | $260,000 |
| perplexity | 110 | $195,000 | $245,000 | $312,500 |
| render | 34 | $230,000 | $242,000 | $259,000 |
| figma | 79 | $207,000 | $236,000 | $264,500 |
| faire | 69 | $190,000 | $232,750 | $256,500 |
| baseten | 101 | $195,000 | $230,000 | $247,500 |
| togetherai | 41 | $195,000 | $230,000 | $250,000 |
| scaleai | 116 | $187,200 | $229,800 | $255,600 |
| vanta | 47 | $212,000 | $229,000 | $264,500 |
| launchdarkly | 35 | $203,300 | $227,735 | $285,650 |
| mintlify | 15 | $165,000 | $227,500 | $227,500 |
| modal | 42 | $200,000 | $225,000 | $275,000 |
| roboflow | 7 | $225,000 | $225,000 | $225,000 |
| latitude | 17 | $200,000 | $224,000 | $224,000 |
| demandbase | 3 | $178,000 | $223,000 | $258,000 |
| gridmaticinc | 10 | $190,000 | $222,500 | $225,000 |
| hex | 37 | $180,000 | $220,000 | $247,500 |
| elliptic | 8 | $202,000 | $218,750 | $230,500 |
| stripe | 22 | $196,000 | $218,105 | $245,843 |
| wrike | 6 | $137,000 | $217,500 | $277,500 |
| databricks | 473 | $195,500 | $216,104 | $246,525 |
| labelbox | 7 | $170,000 | $215,000 | $220,000 |
| llamaindex | 4 | $215,000 | $215,000 | $215,000 |
| plaid | 129 | $175,200 | $214,800 | $251,400 |
| Role family | Postings | Median |
|---|---|---|
| data / ml | 367 | $237,500 |
| product | 547 | $225,000 |
| engineering | 2201 | $223,000 |
| security | 331 | $204,000 |
| design | 219 | $195,000 |
| finance / legal | 728 | $193,568 |
| marketing | 512 | $186,424 |
| other | 681 | $180,500 |
| sales | 1238 | $164,000 |
| support / ops | 1217 | $162,000 |
| Board | Postings | With a range | Rate |
|---|---|---|---|
| greenhouse | 11,561 | 5,134 | 44.4% |
| ashby | 5,358 | 2,743 | 51.2% |
| lever | 1,751 | 164 | 9.4% |
| Company | Board | With pay / postings | Rate |
|---|---|---|---|
| sentry | ashby | 42/42 | 100.0% |
| rain | ashby | 37/37 | 100.0% |
| algolia | greenhouse | 28/28 | 100.0% |
| mercury | greenhouse | 76/77 | 98.7% |
| chime | greenhouse | 70/71 | 98.6% |
| faire | greenhouse | 69/70 | 98.6% |
| modal | ashby | 42/43 | 97.7% |
| klaviyo | greenhouse | 150/154 | 97.4% |
| temporal | ashby | 69/71 | 97.2% |
| sofi | greenhouse | 54/56 | 96.4% |
| Company | Board | With pay / postings | Rate |
|---|---|---|---|
| datadog | greenhouse | 0/417 | 0% |
| betterhelp | greenhouse | 0/154 | 0% |
| notion | ashby | 0/140 | 0% |
| langchain | ashby | 0/104 | 0% |
| spotify | lever | 0/89 | 0% |
| getyourguide | greenhouse | 0/74 | 0% |
| trading212 | ashby | 0/53 | 0% |
| mollie | ashby | 0/51 | 0% |
| jobber | ashby | 0/43 | 0% |
| qonto | lever | 0/41 | 0% |
Across all families: remote postings median $190,781 (n=2,255) vs on-site $204,000 (n=5,786) — a -6.5% gap.
| Role family | Remote n | Remote median | On-site n | On-site median | Gap |
|---|---|---|---|---|---|
| other | 235 | $150,800 | 446 | $200,000 | -24.6% |
| data / ml | 88 | $206,000 | 279 | $250,000 | -17.6% |
| finance / legal | 183 | $181,022 | 545 | $200,950 | -9.9% |
| support / ops | 386 | $153,318 | 831 | $167,575 | -8.5% |
| marketing | 135 | $180,000 | 377 | $192,500 | -6.5% |
| engineering | 563 | $212,000 | 1638 | $226,000 | -6.2% |
| product | 165 | $222,500 | 382 | $225,425 | -1.3% |
| design | 60 | $195,642 | 159 | $195,000 | +0.3% |
| sales | 340 | $175,000 | 898 | $160,000 | +9.4% |
| security | 100 | $216,902 | 231 | $197,500 | +9.8% |
Snapshot 2026-10-24 is in the bank, and it is the first one — a change table needs a second point at least six days later, so there is nothing honest to compare yet. The weekly refresh keeps appending, and this section turns into a real "who is expanding, who is freezing hiring" table as soon as there are two points.
This page is a snapshot. The live version is the
ATS Job Feed actor: set
useVerifiedPool: true and salaryOnly: true and it returns the same schema for the current day,
$0.0015 per job. There is also a browsable sample.