Card 02Jobs

Claude Code is named in more job postings than any other AI coding tool

Open postings whose description names an AI coding tool, worldwide, on the Metix AI Platform on September 21, 2026.

27,679

open postings name Claude Code in the description. 36,208 name at least one of the five tools.

  • Claude Code27,679
  • Cursor15,676
  • GitHub Copilot12,790
  • Codex7,878
  • Windsurf2,234

Hatched bars are strict counts, made only when another AI coding tool is named too. Bars are scaled to the largest

Claude Code leads. Cursor and GitHub Copilot follow.

Open postings worldwide whose description names each tool, with bars scaled to the largest. Hatched bars are strict counts, so lower bounds; the outline behind shows the count for the word alone

Claude Code 27679, Cursor 15676, GitHub Copilot 12790, Codex 7878, Windsurf 2234

  1. Claude Code27,679
  2. Cursorstrict count: another tool named too; the word alone 17,68115,676
  3. GitHub Copilot12,790
  4. Codexstrict count: another tool named too; the word alone 8,2907,878
  5. Windsurfstrict count: another tool named too; the word alone 2,3022,234

What it shows

Worldwide, 36,208 open postings name at least one of five AI coding tools in the job description, and 27,679 of them name Claude Code, 76%.

The tools differ in where they are asked for: 41% of the Claude Code postings are in the US, against 19% for Windsurf. Employers outside the US name these tools too.

Method and limits

Cursor, Codex, and Windsurf are also ordinary words (a database cursor, a food standard, a water sport), and in the audit only about nine in ten matches meant the tool. So they count only when the same description names another AI coding tool. Their numbers are lower bounds, and the outline in the chart shows the count for the word alone.

Source: Metix AI Platform, jobs, 2026-09-21.

Queriesclaude-code.json · cursor.json · github-copilot.json · codex.json · windsurf.json · any-tool.json
POST /v1/jobs/query · queries/claude-code.json
{  "where": {    "field": "description",    "match": "claude code"  },  "size": 1}
POST /v1/jobs/query · queries/cursor.json
{  "where": {    "all": [      {        "field": "description",        "match": "cursor"      },      {        "any": [          {            "field": "description",            "match": "claude"          },          {            "field": "description",            "match": "copilot"          },          {            "field": "description",            "match": "windsurf"          },          {            "field": "description",            "match": "codex"          }        ]      }    ]  },  "size": 1}
POST /v1/jobs/query · queries/github-copilot.json
{  "where": {    "field": "description",    "match": "github copilot"  },  "size": 1}
POST /v1/jobs/query · queries/codex.json
{  "where": {    "all": [      {        "field": "description",        "match": "codex"      },      {        "any": [          {            "field": "description",            "match": "openai"          },          {            "field": "description",            "match": "claude"          },          {            "field": "description",            "match": "copilot"          },          {            "field": "description",            "match": "cursor"          }        ]      }    ]  },  "size": 1}
POST /v1/jobs/query · queries/windsurf.json
{  "where": {    "all": [      {        "field": "description",        "match": "windsurf"      },      {        "any": [          {            "field": "description",            "match": "cursor"          },          {            "field": "description",            "match": "copilot"          },          {            "field": "description",            "match": "claude"          },          {            "field": "description",            "match": "codex"          }        ]      }    ]  },  "size": 1}
POST /v1/jobs/query · queries/any-tool.json
{  "where": {    "any": [      {        "field": "description",        "match": "claude code"      },      {        "field": "description",        "match": "github copilot"      },      {        "all": [          {            "field": "description",            "match": "cursor"          },          {            "any": [              {                "field": "description",                "match": "claude"              },              {                "field": "description",                "match": "copilot"              },              {                "field": "description",                "match": "windsurf"              },              {                "field": "description",                "match": "codex"              }            ]          }        ]      },      {        "all": [          {            "field": "description",            "match": "codex"          },          {            "any": [              {                "field": "description",                "match": "openai"              },              {                "field": "description",                "match": "claude"              },              {                "field": "description",                "match": "copilot"              },              {                "field": "description",                "match": "cursor"              }            ]          }        ]      },      {        "all": [          {            "field": "description",            "match": "windsurf"          },          {            "any": [              {                "field": "description",                "match": "cursor"              },              {                "field": "description",                "match": "copilot"              },              {                "field": "description",                "match": "claude"              },              {                "field": "description",                "match": "codex"              }            ]          }        ]      }    ]  },  "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

95 to 135 API Credits$3.17 to $4.50May run past the 100 free API Credits

Your agent stops and asks before spending more than 140 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.
  1. 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:

    Shell
    export METIX_KEY=metix_xxxxxxxx
  2. 2Connect your agent

    Claude Code

    Registers the Platform for every project. Start claude in any folder and the ten metix tools are there.

    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"
    MCP setup guide →

    Codex

    Registers the same server. The key stays in your environment instead of the config file.

    Shell
    codex mcp add metix \
      --url https://mira-api.metix.ai/mcp \
      --bearer-token-env-var METIX_KEY
    MCP setup guide →

    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.

    Shell
    npx skills add MetixAI-Official/metix-skills
    Skills install guide →

    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.

    Endpoint and headers
    https://mira-api.metix.ai/mcp
    Authorization: Bearer <your key>
    Accept: application/json, text/event-stream
    MCP setup guide →
  3. 3Check the setup

    Ask this first. It reads your balance and the field list, runs no search, and costs nothing:

    Prompt for your agent
    Use 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: which AI coding tools do job postings name, and how often? 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. 01Read before querying

    Call GET /contract (free) and use only querySpecByEntity.job fields. A count with size 1 costs 1 API Credit; a search that returns nothing is free. Check the balance with GET /auth/key/status (free) at the start and at the end, and stop and ask before the run passes 140 API Credits.

  2. 02Tools

    Claude Code, Cursor, GitHub Copilot, Codex, and Windsurf, matched in the job description (field "description", operator match).

  3. 03Watch for ordinary words

    match needs every word present but not side by side. Claude Code and GitHub Copilot are safe by name. Cursor, Codex, and Windsurf are also ordinary words (a database cursor, the Codex Alimentarius, a water sport).

  4. 04Audit before trusting

    For each tool, read 40 to 60 descriptions and check whether the words around the name are about AI coding. If more than 5% are not, count that tool only when the same description names another AI coding tool, and audit the tightened version. Keep the plain-word count as well, so the reader sees how much the definition moves it.

  5. 05Count

    Each tool worldwide and with location.country eq "United States", the plain-word count for any tightened tool, and one count for postings naming any of the five. About 15 API Credits.

  6. 06Clean

    Reposts are not collapsed; say so.

  7. 07Group

    One file of tool definitions, with the tightened ones marked as lower bounds.

  8. 08Outputs

    Write data/tools.json with "unit": "jobs", the snapshot date, each tool's count, US count, and plain-word count where there is one, and the any-tool count. Report the balance from GET /auth/key/status before and after as the cost.

  9. 09Chart

    One bar per tool, sorted, the leader highlighted, tightened tools hatched with an outline behind showing the plain-word count. Title it with the finding.

  10. 10Limits

    Naming a tool is not the same as requiring it; some descriptions only say what the team uses. Tightened tools are lower bounds. One day, not a trend.

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

14 API Credits$0.47Fits 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.

Shell
curl -fsSL https://platform.metix.ai/casebook/source/ai-coding-tools-in-postings-2026.tar.gz | tar xz
cd ai-coding-tools-in-postings-2026
: "${METIX_KEY:?set METIX_KEY first}" && python3 cases/ai-coding-tools-in-postings-2026/fetch.py

What you get

data/*.json and data/receipt.json. Run git diff cases/ai-coding-tools-in-postings-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 tools Step 2, and audit each new one in step 4 Add Gemini Code Assist or JetBrains AI
The market Step 5 Count by country, or restrict to one industry
The field Step 2 Search titles instead of descriptions for roles built around a tool

What to ask before running it

  1. Which tools, and could any of their names mean something else?
  2. Descriptions or titles?
  3. Worldwide, or one country?
  4. How many API Credits may the audit spend reading descriptions?

Method and limits

How the population was defined, counted, and checked, and what the numbers cannot show.

Population

Open postings on the Metix AI Platform on September 21, 2026 whose description names an AI coding tool. Claude Code and GitHub Copilot match by name. Cursor, Codex, and Windsurf count only when the same description also names another AI coding tool.

Audit

The agent read 40 to 60 descriptions per tool and checked the words around each name for AI-coding context. Claude Code and GitHub Copilot held in 40 of 40. The plain words held in 55 of 60 for Cursor, 55 of 60 for Codex, and 56 of 60 for Windsurf, past the 5% error line, so their condition was tightened; tightened, Cursor held in 60 of 60.

Counting

Each tool is counted worldwide and in the US, the three ambiguous words once more on their own, and once for postings that name any of the five. All counts, one API Credit each, and no posting is read. Reposts are not collapsed. The conditions are in queries/.

Limits

Naming a tool is not the same as requiring it; some descriptions only say what the team uses. A match needs every word but not side by side, and the audit found no case where that misled. 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
14
Search results
14
Records read
0
API Credits
14

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 152 API Credits more: the agent's audits, trial queries, and earlier runs that the published replay replaced. You do not pay that again.