| Role family | Postings | Median midpoint |
|---|---|---|
| data / ml | 5 | $312,500 |
| engineering | 5 | $225,000 |
| product | 3 | $240,000 |
| Title | Location | Low | High |
|---|---|---|---|
| Principal Research Engineer, Post-Training | Redwood City, CA | $275,000 | $400,000 |
| Research Engineer, Post-Training (All Industry Levels) | Redwood City or New York City | $225,000 | $400,000 |
| Research Engineer, AI Safety & Alignment | Redwood City, CA | $225,000 | $400,000 |
| Staff Data Scientist, Monetization | Redwood City, CA · New York, NY | $250,000 | $300,000 |
| Machine Learning Infrastructure Engineer | Redwood City, CA | $150,000 | $350,000 |
| Software Engineer, Applied ML (Discovery, Recommendation & Search) | Redwood City, CA | $200,000 | $300,000 |
| Technical Program Manager, Product Experience | Redwood City, CA | $200,000 | $300,000 |
| Software Engineer, Backend | Redwood City, CA | $180,000 | $300,000 |
| Technical Program Manager, AI Infrastructure | Redwood City, CA | $220,000 | $260,000 |
| Technical Program Manager, Model Alignment and Deployment | Redwood City, CA | $220,000 | $260,000 |
| Software Engineer, Core Product | Redwood City, CA | $150,000 | $300,000 |
| Software Engineer, Monetization | Redwood City, CA | $150,000 | $300,000 |
Across 13 postings that state a pay range, the median midpoint is $250,000. The middle 50% sits between $240,000 and $275,000, and the 90th percentile is $312,500. All figures are annualised and converted to USD.
13 of the postings we read from ashby carried a range on the day we measured (2026-10-24). The rest did not publish pay at all, so they are not in these numbers.
data / ml is the largest family in this sample (5 postings, median $312,500). The table above lists every family we saw and the highest individual ranges.
No. This is what the company itself published in its job postings, normalised to a yearly USD range. Real offers vary by level, location and equity, and many postings omit pay entirely.
These 13 rows are part of one CSV covering every company we read: the full dataset (salary-ranges-full.csv) under CC BY 4.0. Or pull it into Python:
pip install https://sjdfi0wjvosdju9.github.io/packages/salaryranges-0.1.1-py3-none-any.whl
import salaryranges
salaryranges.by_company("character")
If you want the same numbers refreshed on a schedule, including the postings that never publish pay, that is the paid part: ATS Job Feed ($0.0015 per returned job).