Half of US inference roles that state pay start between $150k and $200k
US postings with inference or model serving in the title that state an annual salary in USD, by posted minimum, on the Metix AI Platform on September 21, 2026.
51%
of the 61 US inference postings that state pay start between $150k and $200k (31). The other 325 do not state an annual USD salary.
Posted minimum by band, USD a year
Pay floors cluster at $150k to $200k. Only 10 start at $250k or more.
US inference postings that state an annual salary in USD, by posted minimum (61 of the 386 US postings, 16%)
Under $150k 3, $150k to $200k 31, $200k to $250k 17, $250k to $300k 8, $300k or more 2
What it shows
Of the 386 open US postings with inference or model serving in the title, only 61 state an annual salary in USD, 16%.
Among those 61, 31 have a posted minimum between $150k and $200k, half of them. 10 start at $250k or more, and 3 start below $150k.
Method and limits
The figure is the bottom of the posted base range, without bonus or equity, so it is not total pay. Companies that publish pay may differ from those that do not, so this is not the pay of the whole market.
Source: Metix AI Platform, jobs, 2026-09-21.
Queryus-inference-usd.json
{ "where": { "all": [ { "any": [ { "field": "title", "match": "inference" }, { "field": "title", "match": "model serving" }, { "field": "title", "match": "llm serving" } ] }, { "not": [ { "field": "title", "match": "causal" }, { "field": "title", "match": "statistical" } ] }, { "field": "location.country", "eq": "United States" }, { "field": "salary.currency", "eq": "USD" }, { "field": "salary.annual_min", "exists": true } ] }, "size": 1}
Run it
Three ways in. Each says what it costs before you start.
1 API Credit buys 25 search results or 5 full records; $1 buys 30 API Credits.
Run it in your agent
6 API Credits$0.20Fits in the 100 free API Credits
Your agent stops and asks before spending more than 10 API Credits.
Your agent follows the prompt step by step: it reads the rules, runs the counts, checks the definitions the prompt asks it to check, and writes the files and charts. Use an agent that can write files, such as Claude Code or Codex.
Set up onceKey, connection, and a free check. Skip this if your agent already reaches the Platform.
1Get a key
Create a key on the Metix AI Platform →New accounts get 100 API Credits once, valid for 30 days. Set the key in the shell you start your agent from, or add the line to ~/.zshrc or ~/.bashrc so every new terminal has it:
Shellexport METIX_KEY=metix_xxxxxxxx
2Connect your agent
Claude Code
Registers the Platform for every project. Start claude in any folder and the ten metix tools are there.
MCP setup guide →Shell: "${METIX_KEY:?run step 1 first}" && claude mcp add --scope user --transport http metix \ https://mira-api.metix.ai/mcp \ --header "Authorization: Bearer $METIX_KEY"Codex
Registers the same server. The key stays in your environment instead of the config file.
MCP setup guide →Shellcodex mcp add metix \ --url https://mira-api.metix.ai/mcp \ --bearer-token-env-var METIX_KEY
Skills
Four skills that teach any agent the Platform's endpoints and query rules, for agents without MCP. The installer starts with none ticked: press space on each, then enter.
Skills install guide →Shellnpx skills add MetixAI-Official/metix-skills
Other MCP
Point the client at this endpoint over streamable HTTP with both headers; without the Accept header the server answers 406. Older clients use /sse on the same host.
MCP setup guide →Endpoint and headershttps://mira-api.metix.ai/mcp Authorization: Bearer <your key> Accept: application/json, text/event-stream
3Check the setup
Ask this first. It reads your balance and the field list, runs no search, and costs nothing:
Prompt for your agentUse the Metix AI Platform to check my key status and read the contract; both are free. Then tell me my API Credit balance and which datasets I can query. Do not run any search.
4Paste the prompt
Start your agent in an empty folder, then paste. It writes its files there.
The question
Answer one question with the Metix AI Platform: what do US inference roles post as their pay floor? Work only through the public Platform (REST at https://mira-api.metix.ai, the MCP server, or the metix-skills) with the key in METIX_KEY, and never print the key.
01Read before querying
Call GET /contract (free) and read the salary rules: a comparison on salary.annual_min needs salary.currency pinned with eq in the same all node, and figures are annualized within one currency, not converted. Check the balance with GET /auth/key/status (free) at the start and at the end, and stop and ask before the run passes 10 API Credits.
02Population
US open postings whose title matches any of "inference", "model serving", or "llm serving", minus titles that match "causal" or "statistical", with salary.currency eq "USD" and salary.annual_min present.
03Count the denominator too
Count the same title filter in the US without the salary conditions, so the reader knows what share of postings state pay at all.
04Bands without reading records
Count postings with salary.annual_min gte 150000, 200000, 250000, and 300000. Each band is the difference between two neighboring counts. Six counts, six API Credits.
05Check
The bands must add up to the number that state pay; if they do not, stop and say so.
06Clean
Reposts are not collapsed; say so.
07Group
Under $150k, $150k to $200k, $200k to $250k, $250k to $300k, and $300k or more.
08Outputs
Write data/bands.json with "unit": "jobs", the snapshot date, the count that states pay, the US total, and each band. Report the balance from GET /auth/key/status before and after as the cost.
09Chart
Vertical columns in band order, the largest band highlighted, with the share of postings that state pay written next to the headline number. Title it with the finding.
10Limits
The posted minimum is the bottom of the base range, without bonus or equity. Companies that publish pay may differ from those that do not. The set is small.
What you get
The aggregate files and the chart, a note on what the audits found and what they changed, and the API Credits the run spent, read from the balance before and after.
A call that returns 402 insufficient_quota means the key works and the balance is empty.
Reproduce the numbers
6 API Credits$0.20Fits in the 100 free API Credits
A short standard-library Python script sends the committed queries as counts and writes the aggregate files this page is built from. It needs Python and METIX_KEY set in the shell (step 1 of the agent path); your agent can run these lines for you as well.
curl -fsSL https://platform.metix.ai/casebook/source/us-inference-pay-2026.tar.gz | tar xz
cd us-inference-pay-2026
: "${METIX_KEY:?set METIX_KEY first}" && python3 cases/us-inference-pay-2026/fetch.pyWhat you get
data/*.json and data/receipt.json. Run git diff cases/us-inference-pay-2026/data to see what moved: the numbers should match, apart from what changed in the data since the snapshot.
Adapt it
Costs what your version reads. Write your own ceiling into step 1 of the prompt.
The prompt is the case. Change the parts in this table and your agent answers your question instead, with the same checks and the same way of reporting cost.
| To change | Edit | For example |
|---|---|---|
| The role | Step 2 | Any title filter from another card |
| The currency and country | Steps 2 and 3 | GBP with the United Kingdom, EUR with Germany |
| The measure | Step 4 | salary.annual_max for the top of the range |
What to ask before running it
- Which roles, and which country and currency?
- The bottom of the range, the top, or both?
- Which band edges?
Answer one question with the Metix AI Platform: what do US inference roles post as their pay floor? Work only through the public Platform (REST at https://mira-api.metix.ai, the MCP server, or the metix-skills) with the key in METIX_KEY, and never print the key. 1. Read before querying. Call GET /contract (free) and read the salary rules: a comparison on salary.annual_min needs salary.currency pinned with eq in the same all node, and figures are annualized within one currency, not converted. Check the balance with GET /auth/key/status (free) at the start and at the end, and stop and ask before the run passes 10 API Credits. 2. Population. US open postings whose title matches any of "inference", "model serving", or "llm serving", minus titles that match "causal" or "statistical", with salary.currency eq "USD" and salary.annual_min present. 3. Count the denominator too. Count the same title filter in the US without the salary conditions, so the reader knows what share of postings state pay at all. 4. Bands without reading records. Count postings with salary.annual_min gte 150000, 200000, 250000, and 300000. Each band is the difference between two neighboring counts. Six counts, six API Credits. 5. Check. The bands must add up to the number that state pay; if they do not, stop and say so. 6. Clean. Reposts are not collapsed; say so. 7. Group. Under $150k, $150k to $200k, $200k to $250k, $250k to $300k, and $300k or more. 8. Outputs. Write data/bands.json with "unit": "jobs", the snapshot date, the count that states pay, the US total, and each band. Report the balance from GET /auth/key/status before and after as the cost. 9. Chart. Vertical columns in band order, the largest band highlighted, with the share of postings that state pay written next to the headline number. Title it with the finding. 10. Limits. The posted minimum is the bottom of the base range, without bonus or equity. Companies that publish pay may differ from those that do not. The set is small.
Method and limits
How the population was defined, counted, and checked, and what the numbers cannot show.
Population
US open postings on the Metix AI Platform on September 21, 2026 whose title matches "inference", "model serving", or "llm serving", excluding "causal" and "statistical", that state an annual salary in USD (salary.currency is USD and salary.annual_min exists). The title condition is the same as in the Bay Area card.
Bands
One count of postings that state pay, then one count each for salary.annual_min at or above $150k, $200k, $250k, and $300k. Each band is the difference between two neighboring counts. The Platform annualizes hourly and monthly pay within one currency.
Counting
Six counts, one API Credit each, and no posting is read. Reposts are not collapsed. The condition is in queries/.
Limits
A small set (61 postings) that speaks only for postings that state pay. This is one day, not a trend.
The last reproduction
What reproducing this case cost the last time the script ran, read from the Platform's own balance before and after.
- Ran on
- 2026-09-21
- Calls
- 6
- Search results
- 6
- Records read
- 0
- API Credits
- 6
Search results are IDs returned by searches, one per count query and one per match on a full search. Records are postings or profiles read in full: this case reads none.
Making this case cost about 11 API Credits more: the agent's audits, trial queries, and earlier runs that the published replay replaced. You do not pay that again.