Find machine learning engineers by skill and city
Start from a job title, narrow to a country, a city and a skill one filter at a time, and see what each filter costs you before you read a single profile.
Who does this
The job this saves, and who it is for.
A recruiter or hiring manager with an open role and a city in mind, who wants a shortlist without writing Boolean strings, and wants to know early whether the pool is 30 people or 3,000.
How the search narrows
Each row adds one filter to the row above. Count before you read: each count costs 1 API Credit.
- Current title is machine learning engineer
current_title match "machine learning engineer"66,492 - Based in the United States
+ location.country eq "United States"22,17933% of the row above - Based in San Francisco
+ location.city eq "San Francisco"3,16114% of the row above - Lists PyTorch as a skill
+ skills match "pytorch"230Your list7.3% of the row above
Bar length on a log scale
What comes back
The counts from the last replay. Your agent reads the records behind them on your key.
The same search in six US cities
Lists PyTorchAll with the title
The light bar is everyone with the title in the city; the dark bar is the part that also lists PyTorch. Groups under 10 people are shown as <10.
Which skills the 3,161 in San Francisco list
Lists itAll 3,161
All 3,161 list at least one skill, but tool names are rare: Python on 40%, TensorFlow on 7.8%, PyTorch on 7.3%. A tool filter on skills keeps only the people who wrote the tool down.
What the 1,658 open US postings for the title ask for
Names itAll 1,658 postings
Open postings in the United States whose title matches machine learning engineer, by whether the description names the tool. Postings ask for PyTorch far more often than profiles list it.
What your agent reads
The record fields the prompt asks for. This page shows field names and counts, never a record.
current_titlelocation.cityskillsexperience.company.nameexperience.tenure_monthseducation.school.name
Then
Where the task goes after the list.
Read the shortlist
Ask the agent to read the 25 best matches (5 API Credits) and rank them by how recently they worked with the skill, not only whether it is listed.
Widen before you give up
Skills lists are sparse. If the last step leaves too few people, match the skill in the headline or job titles as well, or add the nearest metro area.
Move it to your ATS
Have the agent write the shortlist as a table with the fields your ATS imports, so the next step happens where your team already works.
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
9 to 21 API Credits$0.30 to $0.70Fits in the 100 free API Credits
Your agent stops and asks before spending more than 30 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
Help me find machine learning engineers in San Francisco who work with PyTorch, using the Metix AI Platform. 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 profile fields current_title, location.country, location.city and skills, and the operators each allows. Check the balance with GET /auth/key/status (free) at the start and at the end, and stop and ask before the run passes 30 API Credits.
02Population
Profiles whose current_title matches "machine learning engineer". Then add, one at a time and in this order: location.country eq "United States", location.city eq "San Francisco", skills match "pytorch". All conditions sit in one all node.
03Count each step
Send each of the four filters with size 1 and record the total. Four counts, four API Credits. Show me the four totals as a table before going further.
04Budget
Read records only after I have seen the counts. If the last step has fewer than 10 people, say so and suggest how to widen it instead of reading.
05Compare cities (optional)
Ask me whether to repeat the title count and the title plus skill count in New York, Seattle, Boston, Austin and Chicago. That is 10 more counts.
06Read the shortlist
Search the last filter with size 25 and read those 25 profiles with only current_title, location.city, skills, experience and education (5 API Credits).
07Audit
Tell me how many of the 25 are really machine learning engineers who used PyTorch in a recent role, and how many only list it. If more than a third are off target, propose a tighter filter.
08Outputs
A table of the 25 with current title, current company, city, years in the current role and the evidence for the skill. Keep the records to our conversation; do not publish them.
09Ranking
Order the table by how recently each person worked with the skill, then by time in role. Say what you ranked on.
10Limits
Tell me what the search misses: people who never list skills, other titles for the same work, and people outside the city limits.
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
24 API Credits$0.80Fits 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. It costs more than an agent run because it also counts everything behind the charts on this page, which an agent run leaves out.
curl -fsSL https://platform.metix.ai/casebook/source/find-engineers-by-skill-and-city.tar.gz | tar xz
cd find-engineers-by-skill-and-city
: "${METIX_KEY:?set METIX_KEY first}" && python3 cases/find-engineers-by-skill-and-city/fetch.pyWhat you get
data/*.json and data/receipt.json. Run git diff cases/find-engineers-by-skill-and-city/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, the title | "data engineer", "backend engineer" |
| The place | Step 2, the country and city | "London" with "United Kingdom" |
| The skill | Step 2, the skill | "kubernetes", "rust" |
| The shortlist size | Step 6 | 50 profiles cost 10 API Credits |
What to ask before running it
- Which title, and are there other titles for the same work?
- Which city, and does a nearby city count?
- Which skill is a must-have, and which is only nice to have?
Help me find machine learning engineers in San Francisco who work with PyTorch, using the Metix AI Platform. 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 profile fields current_title, location.country, location.city and skills, and the operators each allows. Check the balance with GET /auth/key/status (free) at the start and at the end, and stop and ask before the run passes 30 API Credits. 2. Population. Profiles whose current_title matches "machine learning engineer". Then add, one at a time and in this order: location.country eq "United States", location.city eq "San Francisco", skills match "pytorch". All conditions sit in one all node. 3. Count each step. Send each of the four filters with size 1 and record the total. Four counts, four API Credits. Show me the four totals as a table before going further. 4. Budget. Read records only after I have seen the counts. If the last step has fewer than 10 people, say so and suggest how to widen it instead of reading. 5. Compare cities (optional). Ask me whether to repeat the title count and the title plus skill count in New York, Seattle, Boston, Austin and Chicago. That is 10 more counts. 6. Read the shortlist. Search the last filter with size 25 and read those 25 profiles with only current_title, location.city, skills, experience and education (5 API Credits). 7. Audit. Tell me how many of the 25 are really machine learning engineers who used PyTorch in a recent role, and how many only list it. If more than a third are off target, propose a tighter filter. 8. Outputs. A table of the 25 with current title, current company, city, years in the current role and the evidence for the skill. Keep the records to our conversation; do not publish them. 9. Ranking. Order the table by how recently each person worked with the skill, then by time in role. Say what you ranked on. 10. Limits. Tell me what the search misses: people who never list skills, other titles for the same work, and people outside the city limits.
Questions
What people ask before running it.
Does this page show any candidates?
No. It shows counts only. Your agent reads the profiles on your key; nothing about a person is published here.
Why count first?
A count costs 1 API Credit and tells you whether the filter is too tight or too loose before you pay to read records.
Can I use another skill or city?
Yes. Change the title, the city and the skill in step 2 of the prompt; the cost stays about the same.
Method and limits
Who is counted, how, and what the counts miss.
- Population
- Profiles visible through the Metix AI Platform on September 30, 2026 whose current title matches "machine learning engineer". Counts are visible profiles, not everyone in the market.
- Filters
- Each step adds one condition to the step before it, all in one all node. City is the city the person lists; skills are the skills the person lists.
- Limits
- Many people leave their skills list short or out of date, so a skill filter undercounts. Titles vary; "ML engineer" and "applied scientist" are not included here.
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-30
- Calls
- 24
- Search results
- 24
- Records read
- 0
- API Credits
- 24
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 79 API Credits more: the agent's audits, trial queries, and earlier runs that the published replay replaced. You do not pay that again.