LABSCO SUMMARY
Answers the questions a hiring manager actually asks.
"Find candidates with Elixir experience who were rejected over salary" is a filter no ATS interface makes easy, and it is the shape this server is built around — search, summarise, compute, rather than create and update. Pairing it with a charting server turns the statistics side into something you can put in front of people.
What it is
A Recruitee server aimed at the analytical end of recruitment data rather than record editing. It searches and filters candidates, assembles pipeline reports, and computes statistics, with prompt templates so the summaries come out consistent across clients.
What you get
- Candidate search across skills, status, talent pool, job and tags — including why someone was rejected
- Recruitment summaries: time in each stage, total process duration, stage-by-stage breakdown
- Statistics such as average expected salary for a role type, average time to hire, and contract type splits
- General search over candidates, recruitments and talent pools by name or attribute
- Prompt templates exposed to the client, so the same question yields a comparable summary
- Tool schemas generated from Pydantic models, carrying metadata written for a model to read
Requirements
A Recruitee company ID and API token. You run the server yourself: the repository's Makefile builds a Docker image that serves it over streamable HTTP on port 8000, reading its secrets from .env — including a bearer token you choose, which your client then sends. The README declares it MIT licensed.
Setup effort
Run a container — build the image from the repository, then point your client at it
USE CASES
01
Reopening a search you already ran once
Filter past candidates by skill and rejection reason instead of sourcing from scratch.
02
Explaining where a hire is getting stuck
Get a stage-by-stage breakdown with time spent in each, then look at total duration.
03
Answering how long a role takes to fill
Compute time to fill and salary averages across a role type rather than eyeballing it.
BEFORE YOU INSTALL
What to know first
Requires
- Docker and make (the repository Makefile builds and runs the image)
- RECRUITEE_COMPANY_ID in .env
- RECRUITEE_API_TOKEN in .env
- MCP_BEARER_TOKEN in .env
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
Build the image from the repository, then point your client at it.
Server setup
TERMINAL
git clone https://github.com/appunite/recruitee-mcp-server
cd recruitee-mcp-serverCreate a .env file in the repository root with the variables listed in .env.example: RECRUITEE_COMPANY_ID (from your Recruitee account), RECRUITEE_API_TOKEN (Recruitee > Settings > API) and MCP_BEARER_TOKEN (a secret of your choosing; clients send it as an Authorization: Bearer header)
Build the Docker image and run it on port 8000 with that .env file:
TERMINAL
make run-local-freshMCP Clients
Any MCP client — mcp-remote
ANY MCP CLIENT — MCP-REMOTE · JSON
{
"mcpServers": {
"recruitee": {
"command": "npx",
"args": [
"mcp-remote",
"http://localhost:8000/mcp/",
"--header",
"Authorization: Bearer ${MCP_BEARER_TOKEN}"
],
"env": {
"MCP_BEARER_TOKEN": "KEY"
}
}
}
}Values written as ${…} are filled in only by clients that expand variables.