If you want to know what AI startups pay, the best source isn't a salary survey. It's the companies' own job posts, because many of them list a salary range. A lot of AI startups run their careers page on Ashby, which makes those ranges easy to collect. I pulled every open job from 23 AI companies' Ashby boards in November 2026: 2,822 jobs. Here's what they pay, and how to run the same research for the companies you care about.

What the numbers say
On November 5, 2026, the 23 boards listed 2,822 open jobs. OpenAI alone had 811 of them.
- 59% listed a salary range in US dollars per year (1,677 jobs). The rest listed pay in another currency or not at all; a few companies list no ranges anywhere.
- For engineering roles (not managers), the median range was $230,000 to $385,000, with a midpoint of $300,000. That's 640 jobs with a listed range.
- At OpenAI, the median midpoint for engineering roles was $355,500, across 284 roles with a range.
- 61% of jobs mentioned equity in the pay summary.
- Hybrid was the most common setup: 42% of jobs were hybrid, 27% on-site and 14% remote; the rest didn't say.
Two caveats. These are listed ranges, not what people accepted, and ranges for the same title vary by location and level. Use them as a starting point for a negotiation or a budget, not as the final word.
What you need
- A list of companies. If a company's job links go to
jobs.ashbyhq.com/<name>, the part after the slash is its board name. - A Selextract account. The Ashby Jobs Scraper is ready-made, so there's nothing to build. Runs don't use AI; they run the same tested code every time.
- A spreadsheet: Google Sheets or Excel.
Step 1: Pull the jobs
Open the scraper and fill in:
- Companies: up to 20 board names or links, like
openaiorhttps://jobs.ashbyhq.com/openai - Job title must contain (optional):
engineer, if you only want engineering roles - Locations (optional):
San Francisco,New YorkorRemote, for example - Number of jobs:
1000
You get one row per job:
| Column | What it holds |
|---|---|
company, title, department, team |
The company and the role |
location, secondary_locations |
Where the job is |
workplace_type, remote |
On-site, hybrid or remote |
employment_type |
Full-time, part-time, contract or intern |
compensation |
Pay as the company summarizes it, like $266K – $445K • Offers Equity |
salary_min, salary_max, salary_currency, salary_interval |
The salary range as numbers, when listed |
published_at |
When the job was posted |
url, apply_url |
The job and its application page |
description |
The full job description |
Here's what a few rows look like. The companies are made up; the columns and formats are the real ones:
company |
title |
workplace_type |
compensation |
salary_min |
salary_max |
|---|---|---|---|---|---|
| quillstack | Research Engineer | hybrid | $230K – $385K • Offers Equity | 230000 | 385000 |
| lumenforge | Applied ML Engineer | remote | $190K – $260K | 190000 | 260000 |
| brightmind | Product Engineer | remote | (empty) | (empty) | (empty) |
Step 2: Compare pay
Filter salary_currency to USD and salary_interval to a yearly value, then add a midpoint column:
=(L2 + M2) / 2
Here L is salary_min and M is salary_max. Change the letters to match your file. A pivot table with company as rows and the median of the midpoint as values gives you a pay table in a minute. Add department as a second row to compare, say, engineering with sales.
Step 3: Use it
- Job seekers: know the range before the first call. If a company lists $200,000 to $260,000 for your role, you can aim for the top half without guessing.
- Founders and hiring managers: see what you're competing against before you set your own ranges.
- Recruiters: a company with 40 open engineering roles and a fresh
published_atis hiring hard right now.
Step 4: Watch it over time
Your run is saved as a task in your account. Schedule it monthly and keep the rows. You'll see which companies raise their ranges, which teams grow, and when a company stops hiring.
The same approach works for careers pages on other systems. The Greenhouse Jobs Scraper and Lever Jobs Scraper cover many more companies, and Salary Ranges on Careers Pages: Who Lists Them looks at where pay is listed at all.
FAQ
How do I know if a company uses Ashby?
Open one of its job posts. If the address starts with jobs.ashbyhq.com, it does. Many AI startups and other young companies use Ashby.
Does every job have a salary range?
No. Companies list ranges where the law asks for them, such as in several US states, and some list them everywhere. Others don't list any. When there's no range, the salary fields are empty.
Why is a description empty?
Very large boards, with hundreds of matching jobs, get descriptions for the first 150 matching jobs in a run. Narrow the search with a job title or location to get descriptions for all of them.
Can I get jobs from LinkedIn too?
Yes, with the LinkedIn Jobs Scraper. Careers pages are often more complete and list pay more often.
Good to know
- Each run takes up to 20 companies and returns up to 1,000 jobs.
- The numbers above come from the companies' public job boards on November 5, 2026, and they change daily.
- Runs use your own Selextract credit.
