Recruiter Roles - Job Board and Salary Reports
# Recruiter Roles MCP server
Query the [Recruiter Roles](https://recruiterroles.com) job board from any
MCP-capable AI client (Claude, Cursor, ChatGPT, VS Code, …). Ask in plain
language and get live recruiter and talent-acquisition jobs, company profiles,
sectors, locations, and market stats — straight from the board.
Read-only. Authenticated with a free Recruiter Roles API key.
- **Hosted (recommended):** `https://recruiterroles.com/api/mcp` (Streamable HTTP)
- **Local (this package):** `npx recruiter-roles-mcp` (stdio, for stdio-only clients)
- **Get a free API key:** https://recruiterroles.com/api-access
- **Docs:** https://recruiterroles.com/mcp · REST API: https://recruiterroles.com/api-docs
## Tools
| Tool | Description |
| --- | --- |
| `search_jobs` | Search & filter live jobs (sector, location, salary, remote, recency, full-text). |
| `get_job` | Full detail for one job — description, requirements, benefits, apply contact. |
| `list_companies` | Browse recruiting agencies & employers with active job counts. |
| `get_company` | A company profile plus its active jobs. |
| `list_sectors` | All recruiting sectors with live job counts. |
| `list_locations` | Countries, regions, and cities with live job counts. |
| `market_stats` | Aggregate market overview — totals, posting velocity, and breakdowns. |
All tools are annotated `readOnlyHint: true`, `destructiveHint: false`,
`openWorldHint: false`, and expose an `outputSchema`.
## Connect
### Hosted remote server (recommended)
Most clients can connect directly to the hosted Streamable HTTP endpoint with
your API key in the `Authorization` header (or as a `?key=` query param for
clients that can't set headers).
**Cursor** — `~/.cursor/mcp.json`:
```json
{
"mcpServers": {
"recruiter-roles": {
"url": "https://recruiterroles.com/api/mcp",
"headers": { "Authorization": "Bearer rr_live_YOUR_KEY" }
}
}
}
```
**VS Code** — `.vscode/mcp.json`:
```json
{
"servers": {
"recruiter-roles": {
"type": "http",
"url": "https://recruiterroles.com/api/mcp",
"headers": { "Authorization": "Bearer rr_live_YOUR_KEY" }
}
}
}
```
**Claude / ChatGPT custom connector** — add the URL with your key appended:
```
https://recruiterroles.com/api/mcp?key=rr_live_YOUR_KEY
```
### Local stdio server (this npm package)
For stdio-only clients or local development. Set your API key via the
`RECRUITER_ROLES_API_KEY` environment variable:
```json
{
"mcpServers": {
"recruiter-roles": {
"command": "npx",
"args": ["-y", "recruiter-roles-mcp"],
"env": { "RECRUITER_ROLES_API_KEY": "rr_live_YOUR_KEY" }
}
}
}
```
Run it directly:
```bash
RECRUITER_ROLES_API_KEY=rr_live_YOUR_KEY npx recruiter-roles-mcp
```
## How it works
This is a thin, read-only layer over the public Recruiter Roles
[v1 REST API](https://recruiterroles.com/api-docs). Each tool forwards your API
key to one `GET /api/v1/*` endpoint, so MCP usage shares the same rate limit
(1,000 requests/day per key), caching, and request logging as the REST API. The
server holds no database connection and no secrets of its own.
## Develop
```bash
npm install
npm run build
RECRUITER_ROLES_API_KEY=rr_live_YOUR_KEY node dist/index.js
```
Optional: point at a different origin during development with
`RECRUITER_ROLES_BASE_URL` (default `https://recruiterroles.com`).
## Backlink policy
Any page or product that publishes data obtained through this server must
include a visible, crawlable link back to Recruiter Roles. Keys may be
suspended if the backlink is removed.
## License
MIT — see [LICENSE](./LICENSE).
TDQS
Scored across 7 tools
Each tool has a clear, distinct purpose: get_company and get_job retrieve single entities, list_* tools browse catalogs, market_stats provides aggregate data, and search_jobs handles search. There is no functional overlap.
All tool names use lowercase with underscores, follow a consistent pattern (get_ for single items, list_ for browsing, search_ for search, and a descriptive noun for market stats). No mixed conventions.
Seven tools are well-scoped for a job board and salary reports domain, covering browsing, searching, and market statistics without being too few or excessive.
The tool set covers core CRUD-like operations (listing, reading, searching) and market aggregation. A dedicated salary report tool is missing, but salary data is accessible via search and market_stats, so gaps are minor.