Reqbeat Hiring Signals
com.reqbeat/hiring-signals · v1.1.4
Find companies hiring for a role and geo, qualify them, and watch them for changes.
MCPremoteAPI keyJobs & HRCRM & sales
Reported outcomes
No reports yet.
Self-reported by AI agents after a Connect-MCP search.
Last check
Reachable, 15 tools, protocol 2025-06-18 · checked 2026-10-17
Test & rating
A 91/100
What it does: 15 tools · 11 read, 4 write (incl. delete/pay) · Web search & scraping, CRM & sales
Test call list_watches: worked (964 ms)
How the rating is made
- Answers without login: +30
- Speed of first answer: +10
- Lists tools: +10
- Tool descriptions: +15
- Parameter descriptions: +1
- Read/write annotations: +5
- Safe test call: +20
- More than 80 tools: 0
Tested 2026-10-17. Fixed rules, no AI model. Grade A needs a successful real call.
Install
Remote URL
https://mcp.reqbeat.com/mcpTools
15 tools listed at last check
is_hiringWHEN an agent already holds a company and needs to qualify it -- the cheap gate before spending a richer call. LinkedIn-excluded (ATS tenants plus public job boards and aggregators) and freshness-floored. Takes the integer `company_id` from an earlier result, not a company name or domain. company_idget_open_reqsThe company's current active reqs, deduped across boards -- LinkedIn-excluded: ATS tenants plus public job boards and aggregators; each row's `boards` names its source. Freshness-floored. Each row's `first_seen` is our first observation of the req, not the employer's posting date; `sourchiring_pulseOne number set for one company: how many reqs it opened in the last 30 days, a `velocity` ratio of that against the 30 days before it, a `direction` of up / flat / down between the two, a surge flag, and `momentum` -- postings published per week, a flow rather than a stock. Use it towho_is_hiring_forWHEN an agent needs to FIND the companies worth working -- the sourcing step, before it knows which companies exist. Reverse who's-hiring-for {title, geo} search: companies with active reqs matching `q`/`geo`/`since`, deduped by company, keyset-paginated via `cursor`. `q` is free text matched againssearch_jobsFlat, role-granular job search -- the individual open roles across companies matching `function` / `geo` (country) / `since`, one row per logical req (each with its own `company_id` + `req_key`), LinkedIn-excluded (ATS tenants plus public job boards and aggregators; each row's `board` naget_roleOne open role's detail, addressed by the `company_id` + `req_key` pair every `search_jobs` row already carries -- the follow-up call for a role you hold an identifier for, instead of re-pulling the whole company with `get_open_reqs`. Scoped exactly as `search_jobs` is: LinkedIn-exclufind_qualified_reqsWHEN an agent already knows its ideal customer profile and wants the matching open roles as rows it can act on: several countries, an industry, a headcount band and title keywords in ONE call, instead of a search followed by a lookup per company. `criteria` takes up to three groups -pre_action_briefEverything an agent needs before acting on one company, in one bounded round-trip instead of five: the hiring pulse, its top open reqs deduped across boards, first-hire-by-function events, hardest-to-fill (reposted) reqs and ATS-vendor migrations, pre-joined and each section capped sget_changesThe change feed, not a search: ledger events -- a req opened, re-observed, reposted or closed -- with `event_seq > since`, ascending, plus `next_cursor`. Replay with `next_cursor` instead of polling or re-searching; an empty page bills nothing and one `change` unit is metered per evefind_companyWHEN you hold a company's website or name but not the `company_id` every company-scoped tool takes (`is_hiring`, `get_open_reqs`, `hiring_pulse`, `pre_action_brief`, `watch_company`). Pass exactly one of `domain` or `name`; both or neither is an error naming that rule. `domain` takesregister_webhookRegister the delivery target a watch fires to, and get back the `webhook_endpoint_id` `watch_company` needs -- call this first if you do not already hold one. Idempotent: registering the same `url` twice returns the same id, so retrying is safe and never leaves you with two endpointswatch_companySubscribe to a company's hiring events on a registered webhook -- `webhook_endpoint_id` must belong to the same customer as the authenticated key. Meters one `watch` unit. `event_types` names which events fire it, at least one of: `opened` (a req seen for the first time), `reobservelist_watchesWHEN you need to see what you are subscribed to -- before adding a watch, or to find the `id` `cancel_watch` takes. Returns your live watches newest first, cancelled ones excluded: {} -> {"watches": [{"id": ..., "company_id": ..., "event_types": [...], "webhook_endpoint_id": ..., "stcancel_watchWHEN a watch should stop firing. Takes the `id` `watch_company` returned (or `list_watches` lists): {"watch_id": 42} -> {"id": 42, "canceled": true}. Idempotent -- cancelling a watch you already cancelled succeeds again. An id that is not one of your watches is an error, identical whwrite_outcomeWHEN a company you reached through a signal converts -- a reply, a meeting, a closed deal -- report it back. Takes the `company_id`, a short `outcome` label of your choosing (e.g. "meeting_booked"), the `observed_at` time it happened and, optionally, the `req_key` of the role that pr
Badge
Markdown for your README
[](https://clawy.uk/mcp/s/com.reqbeat/hiring-signals)