gtm.devdocs
signals

Hiring signals API: who is hiring

who_is_hiring

2.5 credits / company returned

Find companies actively hiring for a role — a broad function ("sales development") or a specific/niche title ("collections manager", "machine learning engineer") — ranked by open-role count. Backed by a regularly-refreshed index of LinkedIn + Indeed job postings, with an on-demand live scrape for roles/geos the index doesn't cover yet. Optionally filter by country and minimum number of openings, and paginate with limit/offset. Each company's source shows whether it came from the index (job_count/last_posted_at are exact) or a live scrape (matched_job_title only — no aggregate count). A `total` field (exact) is included when the whole answer came from the index; when a live scrape contributed, total is omitted and total_is_partial/total_note explain why.

Get an API key 1,000 free live credits · no card

Parameters

paramtypedescription
role requiredstringRole or function keyword to match against the hiring index (e.g. "sdr", "data engineer", "marketing", or a specific title like "collections manager").
geo_countrystringCountry where the roles are located (e.g. "United States", "India"). Optional — omit to search across every indexed country.
limitintegerCompanies per page (default 10, max 100). COST: each company returned costs 2.5 credits (plus a 0.1 base fee per call), so this limit sets the price of the call — ask for what you need.
min_openingsintegerOnly return companies with at least this many matching openings. Optional.
offsetintegerRows to skip for pagination (default 0; offset+limit must not exceed 5000).

Call it from your agent (MCP)

Connect once and who_is_hiring appears in your agent’s toolbox next to every other gtm.dev tool. Claude Code:

claude mcp add --transport http gtm https://mcp.gtm.dev \
  --header "Authorization: Bearer YOUR_API_KEY"

Under the hood, the client sends:

curl -X POST https://mcp.gtm.dev \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
       "params":{"name":"who_is_hiring","arguments":{"role":"sdr","geo_country":"United States","min_openings":5}}}'

other clients (cursor, claude desktop, openai agents sdk, langchain): mcp setup

Call it over REST

curl -X POST https://api.gtm.dev/v1/tools/who_is_hiring \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"role":"sdr","geo_country":"United States","min_openings":5}'

Errors (401, 402, 429, 400) are listed in the REST reference. Calls that error are not billed — see pricing.

Related tools