| Role family | Postings | Median midpoint |
|---|---|---|
| security | 2 | $88,051 |
| engineering | 2 | $77,395 |
| support / ops | 1 | $55,523 |
| Title | Location | Low | High |
|---|---|---|---|
| Security Engineer Senior - GRC | Anywhere in France | $93,098 | $112,167 |
| Senior IT Engineer | Paris, France | $78,517 | $93,098 |
| Security Engineer Junior - GRC | Anywhere in France | $68,422 | $78,517 |
| IT Engineer | Paris, France | $59,448 | $78,517 |
| IT Operations Specialist | Paris, France | $51,597 | $59,448 |
Across 5 postings that state a pay range, the median midpoint is $73,469. The middle 50% sits between $68,983 and $85,808, and the 90th percentile is $95,903. All figures are annualised and converted to USD.
5 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.
security is the largest family in this sample (2 postings, median $88,051). 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 5 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.2-py3-none-any.whl
import salaryranges
salaryranges.by_company("alan")
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).