com.headcountlabs/jobs
OfficialProvides access to open job postings sourced from Greenhouse, enabling search, count, and retrieval of jobs by title, keywords, company, location, work arrangement, pay, and dates, with links to original postings.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@com.headcountlabs/jobsshow me remote software engineer jobs paying over $150k"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Headcount Labs MCP server
Job postings for AI agents. Headcount Labs is a hosted Model Context Protocol server that lets Claude, ChatGPT, Codex, Cursor, VS Code and other MCP clients search, count and read open jobs from employers' own career sites and the hiring platforms they use (Workday, Greenhouse, Lever, iCIMS, SmartRecruiters and others). Copies of the same opening are merged into one job, and every job keeps the link to the original posting.
There is nothing to install or run. This repository holds the connection instructions, client examples and the
official MCP Registry entry (server.json, name com.headcountlabs/jobs). The server itself is hosted.
Endpoint | Sign-in | Tools |
| None | 6 read-only tools; one search shows up to 250 matching jobs, 50 per page |
| OAuth 2.1 (PKCE, dynamic client registration) or an API key as a bearer token | 26 tools, including exports, the company registry, the job change feed and usage |
Both use the Streamable HTTP transport.
Pricing. Every organization gets 100,000 records free each calendar month (UTC), with no card. After that, records cost a flat $0.01 per 1,000. Counts, market insights, field lookups and doc searches are free. See headcountlabs.com/pricing.
Try it without an account
Add the public endpoint to any MCP client. In Claude Code:
claude mcp add --transport http headcountlabs-public https://api.headcountlabs.com/mcp/publicOr call it directly. This counts every open job in the catalog:
curl -s https://api.headcountlabs.com/mcp/public \
-H "content-type: application/json" -H "accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"count_jobs","arguments":{}}}'Related MCP server: Job Board MCP Server
Connect with an account
Claude Code (then run /mcp and choose Authenticate):
claude mcp add --transport http headcountlabs https://api.headcountlabs.com/mcpOr install the Claude Code plugin, which adds the server and a job-search skill:
/plugin install headcount-labs --marketplace HeadcountLabs/claude-pluginCodex:
codex mcp add headcountlabs --url https://api.headcountlabs.com/mcp
codex mcp login headcountlabsCursor, Windsurf and other clients that read mcp.json: examples/mcp.json.
VS Code: examples/vscode-mcp.json.
claude.ai and Claude Desktop: add a custom connector with the endpoint URL.
ChatGPT: headcountlabs.com/mcp/chatgpt. Grok:
headcountlabs.com/mcp/grok.
Clients without remote server support: run npx mcp-remote https://api.headcountlabs.com/mcp as the server command.
Tools
The public endpoint serves the first six tools in this table. The signed-in endpoint serves all of them. The full reference, with scopes and limits, is at headcountlabs.com/docs/mcp-tools.
Tool | What it does | Uses records |
| Finds jobs by title, keywords, company, city, state, country, work arrangement, pay and dates. Signed in, | Yes |
| Counts the jobs that match a set of filters, optionally grouped by employer. | No |
| Reads one job with every linked posting and its source links. | Yes |
| Pay, top employers, remote share, metros, jobs by state and more, from a dated snapshot. | No |
| Finds the filters and job fields that match your words, such as "pay" or "remote". | No |
| Returns the best-matching sections of the Headcount Labs docs. | No |
| Pages through a file that | No |
| Re-opens a random sample of original postings and checks link, status, title, employer, location and pay. | Sampled jobs |
| Matches your own job list against Headcount Labs, row by row. | Matched jobs |
| The same search with a JSON body or Elasticsearch-style clauses. | Yes |
| New, changed and closed jobs since a time or cursor. | Yes |
| The company registry and each company's jobs (needs the | Jobs only |
| Asynchronous exports of up to 100,000 jobs. | Completed exports |
| Your plan, records used and left, overage status and request reports. | No |
| How large a search may be before the agent must ask you, and overage billing on or off. Agents change them only when you ask. | No |
Every tool carries a title and readOnlyHint or destructiveHint annotations. The tools read job data. They can't
apply to jobs or contact employers.
What results look like
Compact by default.
search_jobsreturns a short summary of each job: rank,job_id, the employer-written title, employer and a 200-character snippet (injob_ad), locations, work arrangement, pay with its period, dates and the posting and apply links. Passview: "full", name thefieldsyou need, or callget_jobfor every field. Ten typical searches came to 62% fewer tokens than with every field.Job ad text is data. Results that carry employer-written text start with an
untrusted_contentnotice, and the server tells the AI never to follow instructions inside a job ad. Hidden text (zero-width and text-direction characters, HTML comments, hidden elements) is removed before it is sent.Errors say how to fix the call. A bad argument returns
invalid_argumentswith each problem'sfield, what is wrong, the accepted values or the nearest valid name (did_you_mean), and a workingexample. Rate-limit and overload errors giveretry_after_seconds.Paging. Signed in,
limitis the page size (10 to 100, default 50) andmax_resultsis the most results one search returns across all its pages (10 to 1,000, default 250). They apply tosearch_jobs,search_jobs_json,search_jobs_dsl,list_company_jobs,list_companies,search_companiesandlist_job_changes. Set both on the first call and keep them the same on every page, because the cursor carries them. A search that reaches the cap returnsnext_cursor: nulland a note. The no-account endpoint pages 1 to 50 jobs (default 10, or 1 to 10 with full descriptions) and stops at 250.Job cards. In clients that support MCP Apps,
search_jobsalso shows the jobs as cards with pay, remote and location filters and an Apply button that opens the original posting. Other clients get the normal result.
Example prompts
"How many data engineer jobs are open in Germany right now?"
"Find 5 remote software engineer jobs in the US posted in the last week, with pay and apply links."
"Which employers have the most open registered nurse jobs in Texas?"
"What share of project manager jobs are remote, hybrid or on-site?"
"Pull every open job at Deloitte in Germany into a file."
The data
Open jobs read from employer career sites and hiring platforms, refreshed continuously, with closed jobs removed. Each job carries the employer, title, locations, work arrangement, pay as the employer published it, dates, and the posting and apply links.
Coverage by platform, country and company: headcountlabs.com/coverage
Fields in a job record: headcountlabs.com/docs/data-fields
REST API with the same filters: headcountlabs.com/docs
Bulk download of the whole job dataset on Hugging Face (CC BY 4.0): HeadcountLabs/job-postings, with example queries and the schema in the job-postings repository
Privacy and support
Your client sends search filters and job IDs to api.headcountlabs.com and gets job data back. Headcount Labs keeps only the usage counts needed for billing. See the privacy policy and terms.
Support: headcountlabs.com/contact or support@headcountlabs.com.
The examples and docs in this repository are MIT licensed.
This server cannot be deployed
Maintenance
Related MCP Connectors
Public MCP server for discovering open jobs. Search, filter, and get application links.
A jobs data API and MCP server. Every listing comes from the employer's own career site, an ATS feed or a government employment service, never resold from another board. Each row names its source and when we last confirmed the vacancy existed, and a role that disappears keeps a closure date and a reason. Six tools: search_jobs, get_job, company_hiring, market_signals, coverage, changes_since.
JobsPipe — data pipeline of every job posting on the web. Search live, normalized job postings from 30+ ATS feeds and job boards for AI agents via MCP.
Job search over employers' own hiring systems. Search with no key; a free key opens every read tool.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server that aggregates and deduplicates job listings from multiple public sources, ranks them against a user's resume, and exposes tools for searching, viewing details, explaining fit, and tracking applications.MIT
- AlicenseAqualityBmaintenanceEnables searching and retrieving job listings from multiple platforms through MCP.2MIT
- AlicenseNot gradedqualityCmaintenanceEnables any MCP host to search job listings and retrieve individual job details from a public job board's API/RSS through standardized tools. It provides read-only search and detail lookup with polite rate limiting and remote/location filtering.MIT
- AlicenseNot gradedqualityCmaintenanceEnables users to search job postings with keyword, location, remote-only, date, and limit filters, and retrieve individual job details via MCP tools.MIT