MCP tool
who_is_hiring_for
WHEN an agent needs to FIND the companies worth working -- the sourcing step, before it knows which companies exist. Reverse who's-hiring-for {role, geo} search: companies with active reqs matching `role`/`geo`/`since`, deduped by company, keyset-paginated via `cursor`. `role` is free text matched against the posting title, not an id. `geo` is resolved to a stored country before matching; an unresolvable one is an explicit error, never a quietly partial page. `limit` is bounded -- page through the full set with `cursor` instead of raising it. Billed per company returned (~0.10 USD each) -- an empty result bills nothing. role="backend engineer", geo="USA" -> the companies with matching active reqs, each with its pulse and its matched reqs. geo="Atlantis" -> an explicit unresolvable-country error rather than an empty page. No key yet? On the hosted HTTP endpoint the first calls are free: pass `plane_api_key` as an empty string and the search runs on a shared demo credential -- a smaller page, billed to nobody -- until a per-IP limit is reached, after which the answer becomes a signup link whose minted key finishes this exact search. On any other transport a blank key answers with that signup link straight away. Already holding a company_id and only need a yes/no? Use `is_hiring`.
Read from com.reqbeat/hiring-signals v1.0.0 on July 30, 2026 at 12:01 UTC · Refreshed every 3 hours
Connect
Reqbeat Hiring Signals is a remote MCP server over streamable HTTP. Paste this into your client's server config, replacing the placeholder with your own key:
{
"url": "https://mcp.reqbeat.com/mcp",
"headers": {
"X-API-Key": "YOUR_REQBEAT_API_KEY"
}
}
Endpoint https://mcp.reqbeat.com/mcp, authenticated
with the X-API-Key request header.
Input schema
{
"properties": {
"role": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Role"
},
"geo": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Geo"
},
"since": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Since"
},
"cursor": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Cursor"
},
"limit": {
"default": 20,
"title": "Limit",
"type": "integer"
},
"idempotency_key": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Idempotency Key"
},
"plane_api_key": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Plane Api Key"
}
},
"title": "who_is_hiring_forArguments",
"type": "object"
}
Calling it
Request
{
"name": "who_is_hiring_for",
"arguments": {
"role": "backend engineer",
"geo": "USA",
"limit": 5,
"plane_api_key": ""
}
}
Response
Captured against the live server on this build — not written by hand, and not an example. Run the request above and you get the same shape.
{
"content": [
{
"type": "text",
"text": "{\n \"status\": \"signup_required\",\n \"reason\": \"no_api_key\",\n \"signup_url\": \"/v1/account/email/signup?pending_call=351305e1d897a9e1a85c7760e56851e98b44bae6c2171ee0fd47496ec53cb76a&surface=mcp\",\n \"pending_call\": \"351305e1d897a9e1a85c7760e56851e98b44bae6c2171ee0fd47496ec53cb76a\",\n \"message\": \"This tool needs your own plane API key. Sign up at `signup_url` -- the emailed link mints a free key and, when `pending_call` is set, finishes this exact call on it.\"\n}"
}
],
"isError": false
}