卡片 03岗位

美国近一半推理岗位集中在旧金山湾区

2026 年 9 月 21 日,Metix AI Platform 上职位名称含 inference 或 model serving 的美国在招岗位,按都市区统计。

49.9%

美国 353 个推理岗位(合并重复发布后)中,有 176 个在旧金山湾区。

  • 旧金山湾区49.9%
  • 纽约12.2%
  • 西雅图10.8%
  • 美国其他城市和未注明城市27.2%

条形按占全部岗位(合并重复发布后)的比例画,虚线是一半

一个都市区就占了近一半,接下来两个再占 23%

职位名称含 inference 或 model serving 的美国岗位(合并重复发布后),按都市区统计,占全部 353 个的比例

条形图:旧金山湾区 176 个(49.9%),纽约 43 个(12.2%),西雅图 38 个(10.8%),其余都市区各不到 5%。

  1. 旧金山湾区176
  2. 纽约43
  3. 西雅图38
  4. 华盛顿和巴尔的摩16
  5. 波士顿11
  6. 奥斯汀9
  7. 美国其他城市23
  8. 未注明城市37

图中所见

美国标题含 inference 或 model serving 的去重岗位共 353 个,旧金山湾区占 176 个,即 49.9%。纽约(43 个)和西雅图(38 个)合计再占 23%,其余都市区都不到 5%。

共有 120 家公司在招这类岗位,前五家占了 118 个,约三分之一:NVIDIA(44)、Capital One(21)、Anthropic(20)、Amazon Web Services(19)、CoreWeave(14)。名单里有一家芯片公司、两家云服务商、一家模型公司和一家银行。

方法与局限

这个 49.9% 是下限:分母里包含 37 个未注明城市的岗位。只看写了城市的 316 个岗位,湾区的占比是 55.7%。

放到全球看,Platform 上符合同一标题条件的在招岗位共 585 个,其中 386 个在美国,约占 66%。这两个数都是去重前的数字,所以要和读取的 386 个美国岗位比,而不是和去重后的 353 个比。

来源:Metix AI Platform 岗位数据,2026-09-21。

查询world-total.json · us-postings.json · us-postings-detail.json
POST /v1/jobs/query · queries/world-total.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"          }        ]      }    ]  },  "size": 1}
POST /v1/jobs/query · queries/us-postings.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"      }    ]  },  "size": 10000}
POST /entity/v1/jobs/detail-by-id · queries/us-postings-detail.json
{  "job_ids": "<the job_ids returned by us-postings.json, 100 per request>",  "_source": [    "title",    "company.name",    "location.city",    "location.state"  ]}

运行这个案例

三种方式,每一种都先告诉你要花多少。

1 API Credit 可以买 25 个搜索结果或 5 条完整记录;1 美元可以买 30 API Credits。

交给你的 agent 来跑

96 到 110 API Credits3.20 到 3.67 美元可能超出赠送的 100 API Credits

花费超过 150 API Credits 之前,agent 会先停下来问你。

你的 agent 按提示词一步步执行:先读规则,再计数,按提示词的要求检查定义,最后写出文件和图表。请使用能写文件的 agent,比如 Claude Code 或 Codex。

一次性配置key、连接和一次免费检查。如果你的 agent 已经接入 Metix AI Platform,可以跳过。
  1. 1获取 key

    在 Metix AI Platform 上创建 key →

    新账户一次性赠送 100 API Credits,30 天内有效。在启动 agent 的终端里设置,或者把这一行写进 ~/.zshrc 或 ~/.bashrc,新开的终端也能用:

    终端
    export METIX_KEY=metix_xxxxxxxx
  2. 2连接你的 agent

    Claude Code

    为所有项目注册 Metix AI Platform。在任意目录启动 claude,就能看到十个 metix 工具。

    终端
    : "${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"
    MCP 配置指南 →

    Codex

    注册同一个服务。key 留在环境变量里,不写进配置文件。

    终端
    codex mcp add metix \
      --url https://mira-api.metix.ai/mcp \
      --bearer-token-env-var METIX_KEY
    MCP 配置指南 →

    Skills

    四个 skill,教任何 agent 使用 Metix AI Platform 的接口和查询规则,适合不支持 MCP 的 agent。安装程序默认一项都不勾选:在每一项上按空格,再按回车。

    终端
    npx skills add MetixAI-Official/metix-skills
    Skills 安装说明 →

    其他 MCP

    让客户端通过 streamable HTTP 连接这个地址,并带上这两个请求头;缺少 Accept 请求头时服务器会返回 406。较旧的客户端使用同一主机上的 /sse。

    地址和请求头
    https://mira-api.metix.ai/mcp
    Authorization: Bearer <your key>
    Accept: application/json, text/event-stream
    MCP 配置指南 →
  3. 3检查配置

    先问这一句。它只读取余额和字段列表,不做任何搜索,不花 API Credits:

    发给 agent 的提示
    使用 Metix AI Platform:查询我的 key 状态并读取 contract,这两项都免费。然后告诉我我的 API Credit 余额和可以查询哪些数据集。不要做任何搜索。

4粘贴提示词

在一个空文件夹里启动 agent,再粘贴。它会把文件写在那里。

要回答的问题

用 Metix AI Platform 回答一个问题:现在美国哪些地方在招模型推理(inference)方向的人?只通过公开的 Platform 访问(REST 地址 https://mira-api.metix.ai、MCP 服务或 metix-skills),密钥从 METIX_KEY 读取,任何时候都不要打印密钥。

  1. 01先读规则再查询

    调用 GET /contract(免费),所有条件只用 querySpecByEntity.job 里的字段。阅读 https://mira-api.metix.ai/docs/credits.md 了解价格:搜索按 ceil(返回的 ID 数 / 25) 计费,详情按 ceil(找到的记录数 / 5) 计费,没有结果的搜索不收费。

  2. 02统计范围

    在招岗位,标题匹配 "inference"、"model serving"、"llm serving" 中任意一个,并排除标题匹配 "causal" 或 "statistical" 的岗位(这些是统计岗位,不是模型部署)。关键词放在一个 any 节点里,排除词放在一个 not 节点里。

  3. 03先计数

    用 size 1 分别记录全球总数和 location.country eq "United States" 的总数,每次计数花 1 API Credit。

  4. 04预算

    现在和结束时各调用一次 GET /auth/key/status(免费),两次余额之差就是本次花费。如果美国总数少于 1,000,就读取全部美国岗位:先用 size 10000 搜索,再按每批 100 个调用 POST /entity/v1/jobs/detail-by-id,_source 取 ["title", "company.name", "location.city", "location.state"]。任何会让总花费超过 150 API Credits 的步骤,先停下来问我。

  5. 05抽检

    列出出现最多的 40 个标题,标出与生产环境模型部署或推理优化无关的。如果无关岗位超过 5%,在第 2 步补充排除词,重跑,并说明改了什么。

  6. 06清洗

    标题(转小写)、公司、城市、州都相同的岗位只算一次,报告去掉了多少条重复发布。

  7. 07按都市区分组

    用六个都市区:旧金山湾区、纽约、西雅图、华盛顿和巴尔的摩、波士顿、奥斯汀。每个都市区写成明确的"城市加州名"列表,保存到 metros.json。用实际读到的城市核对列表,避免大的卫星城被漏掉。不在任何列表里的城市记为"美国其他城市";没有城市、或城市字段里写的是州名的,记为"未注明城市"。这两类都要保留。

  8. 08输出

    写出 data/metros.json(各都市区的去重岗位数和占比)、data/companies.json(去重岗位数最多的 5 家公司)、data/context.json(全球总数、美国总数、读取记录数、去重岗位数),每个文件都带 "unit": "jobs"、快照日期和来源查询文件。原始记录放在 data/raw/,永远不公开。

  9. 09图表

    一张横向条形图,按去重岗位数排序,"美国其他城市"和"未注明城市"放在最后并用灰色。条形长度按占全部美国去重岗位的比例画,不按最长的那条缩放,并在 50% 处画一条标记线。每根条形直接标出数量和占比。图表标题写结论,不写主题。

  10. 10局限

    写清楚这些数字不能说明什么:岗位数衡量的是需求,不是在职人数;同一个岗位挂在几个城市就按城市各算一次;索引里是快照当天仍在招的岗位,发布日期是估算值。

查看 PROMPT.md →

你会得到

聚合文件和图表,一段说明抽检发现了什么、改了什么,以及这次运行花了多少 API Credits(取自运行前后的余额)。

如果调用返回 402 insufficient_quota,说明 key 有效,只是余额用完了。

复现数字

96 API Credits3.20 美元新账户赠送的 100 API Credits 够用

一个只用 Python 标准库的小脚本,把已提交的查询发出去,读取方法需要的 386 条记录,写出这个页面所用的聚合文件。需要 Python,并在终端里设置好 METIX_KEY(见 agent 路径的第 1 步),也可以让你的 agent 替你运行这几行。

终端
curl -fsSL https://platform.metix.ai/casebook/source/inference-roles-us-metros-2026.tar.gz | tar xz
cd inference-roles-us-metros-2026
: "${METIX_KEY:?set METIX_KEY first}" && python3 cases/inference-roles-us-metros-2026/fetch.py

你会得到

data/*.json 和 data/receipt.json。运行 git diff cases/inference-roles-us-metros-2026/data 看哪些数字变了:除去快照之后数据本身的变化,数字应该一致。

改成你的问题

花费取决于你的版本读取多少。在提示词第 1 步里写上你自己的上限。

提示词就是这个案例本身。改掉下表里的部分,你的 agent 就会回答你的问题,用同样的检查和同样的花费记录方式。

想改的 改哪里 例子
岗位 第 2 步的标题关键词和排除词,以及第 5 步的抽检规则 "post-training" 或 "reinforcement learning",排除 "sales"
国家 第 3 步的国家和第 7 步的都市区列表 英国,用伦敦、剑桥、爱丁堡
分组方式 第 7 步和第 9 步的图表 按公司分组,而不是按都市区
预算 第 4 步的上限 20 API Credits:只计数,每个都市区一次计数查询,不读记录

运行前先问清楚

如果有人带着更宽泛的问题来("推理岗位都在哪?"),先把下面几件事问清楚,每一项都会改变查询或花费:

  1. 哪些岗位?用标题里的哪些词,要排除什么?
  2. 看哪个地理范围,细到什么层级:国家、州,还是都市区?
  3. 看哪些岗位:今天所有在招的,还是只看最近 30 天或 90 天发布的?
  4. 数什么:岗位数、去重后的岗位数,还是公司数?
  5. 这次最多能花多少 API Credits?
查看 PROMPT.md →

方法与局限

统计范围怎么定义、怎么计数和抽检,以及这些数字不能说明什么。

统计范围

2026 年 9 月 21 日 Metix AI Platform 上的在招岗位,标题匹配 "inference"、"model serving" 或 "llm serving",并排除匹配 "causal" 或 "statistical" 的标题。被排除的是因果推断之类的统计岗位,不是模型部署。

计数

一个去重岗位指同一标题、公司、城市和州。重跑读取了 386 个美国岗位,合并了 33 条同城重复发布,剩下 353 个。同一岗位挂在三个城市就算三次,每个城市各一次。

都市区

每个都市区是一份按州列出的城市清单,见 metros.json。不在任何清单里的城市记为美国其他城市;没有城市、或城市字段里写的是州名的,记为未注明城市。

怎么做出来的

一个 AI agent 通过公开的 REST API 完成了这个案例。写重跑脚本之前,它先把所有符合条件的美国岗位读了一遍,发现 426 个里有 40 个是统计岗位,也发现重复发布会抬高城市计数。最终确定的查询放在 queries/ 目录,fetch.py 不需要 agent 就能重跑它们。

局限

岗位数衡量的是需求,不是在职人数。同一家公司把一个岗位挂在几个都市区,就在每个都市区各算一次。未注明城市的 37 个岗位留在分母里,所以各都市区的占比都是下限。索引里是快照当天仍在招的岗位,发布日期是估算值,所以这是某一天的截面,不是趋势。标题里没有这些词的推理工作(比如 "ML performance engineer")没有被算进来,所以总数也是下限。

最近一次复现

上一次复现花了多少,取自运行前后 Metix AI Platform 记录的余额。

运行日期
2026-09-21
调用次数
7
搜索结果
388
读取记录
386
API Credits
96

搜索结果是搜索返回的 ID 数,每次计数查询算一个,完整搜索按命中数算。记录是完整读取的岗位或档案:这里读了 386 条。

做这个案例另外花了大约 206 API Credits:agent 做的抽检、试探性查询,以及被公开复现取代的早先运行。你不需要再花这部分。