Quickstart
A key, one request, and a ranked list of engineers with the repos behind each one.
Get a key
In Vamo, open Setup, API keys and create one. It starts with vamo_sk_ and is
shown once, so put it in your environment.
export VAMO_API_KEY=vamo_sk_...Run a search
Engineers at AI labs who contribute to vLLM, strongest first. Facts go in filters, the code they work on in repos.
curl -X POST https://api.vamotalent.ai/v2/developers/search \
-H "Authorization: Bearer $VAMO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"repos": {"names": ["vllm-project/vllm"], "role": "contributor"},
"filters": ["And", [
["current_company_ids", "ContainsAny", {"company": ["OpenAI", "Anthropic", "Google DeepMind", "Meta"]}],
["is_bot", "Eq", false],
["is_org_account", "Eq", false]
]],
"sort": "devrank",
"limit": 20
}'Read the response
Trimmed to two people. Every result carries the same fields.
{
"results": [
{
"id": "17310766",
"login": "zhuohan123",
"name": "Zhuohan Li",
"match": {
"repos": [{"fullName": "vllm-project/vllm", "stars": 93518, "role": "contributor"}],
"status": "attributed"
},
"index": {
"profile": {
"devrank": 100,
"title": "AI Research Scientist",
"company": "Meta",
"location": "San Francisco, California, United States",
"languages": ["python"]
}
}
},
{
"id": "8262694",
"login": "comaniac",
"name": "Cody Yu",
"match": {
"repos": [{"fullName": "vllm-project/vllm", "stars": 93520, "role": "contributor"}],
"status": "attributed"
},
"index": {
"profile": {
"devrank": 95,
"title": "Member of Technical Staff",
"company": "OpenAI",
"location": "San Francisco, California, United States",
"languages": ["python", "c++"]
}
}
}
],
"cursor": "eyJvIjoyMH0"
}- results
- Developers, best match first.
- login, name
- The GitHub account. Use the login with every other call.
- match.repos
- The repositories that put this person in your results, with their role on each.
- index.profile
- devRank (0 to 100), title, company, location and top languages.
- cursor
- Send it back with the same body for the next page. Null on the last page.
Authentication
Every call takes the key as a bearer token: Authorization: Bearer vamo_sk_.... A key
belongs to one account and carries only the permissions you give it, such as search:read. Give each integration the narrowest set that works.
- 401
- No key, or it is invalid, expired or revoked.
- 403
- The key is valid but lacks the permission this call needs. Mint one with it.
- 402
- The plan does not include this, or the balance is short.
Every refusal carries a stable code to branch on and, when you can fix it yourself, a remedy. GET /v1/me shows who the API thinks you are.
Keys can also sign requests (HTTP Message Signatures, Ed25519); it is optional and per key.
Next steps
- API reference Every operation, its body and its response, from the live spec.
- Similar, enrich and deep research More people like one person, full profiles for logins you have, written reports.
- API errors Every error code, what it means and the fix.
Use it from your AI tool
The same four calls as an MCP server. Add it once, then ask in plain words. API and MCP guide
claude mcp add --transport http vamo https://mcp.vamotalent.ai/mcp/search- Claude Code
- Cursor
- Claude Desktop
- VS Code
- Windsurf
- Zed