search_docs
Search the Headcount Labs docs
Ask a question about Headcount Labs (filters, limits, MCP setup, errors) and get the best-matching sections of the headcountlabs.com docs, each with its URL. Works without an account.
limitquestion必填com.headcountlabs由 headcountlabs.com 發布官方發布者v1.2.0更新於 Oct 26, 2026
Job postings search: find, count and read open jobs from employer career sites, with pay and links.
託管式 MCP 伺服器,用來搜尋、統計與讀取雇主招募網站上的在徵職缺,附薪資資料與應徵連結。
Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。
把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。
閱讀 https://sourceweft.com/mcp/com.headcountlabs%2Fjobs/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。把它新增到你客戶端的 mcpServers 設定中。
{
"mcpServers": {
"headcount-labs": {
"type": "http",
"url": "https://api.headcountlabs.com/mcp/public"
}
}
}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.
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.
Add the public endpoint to any MCP client. In Claude Code:
Or call it directly. This counts every open job in the catalog:
Claude Code (then run /mcp and choose Authenticate):
Or install the Claude Code plugin, which adds the server and a job-search skill:
Codex:
Cursor, 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.
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.
Every tool carries a title and readOnlyHint or destructiveHint annotations. The tools read job data. They can't
apply to jobs or contact employers.
search_jobs returns a short summary of each job: rank, job_id, the employer-written title,
employer and a 200-character snippet (in job_ad), locations, work arrangement, pay with its period, dates and the
posting and apply links. Pass view: "full", name the fields you need, or call get_job for every field. Ten
typical searches came to 62% fewer tokens than with every field.untrusted_content notice, 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.invalid_arguments with each problem's field, what is
wrong, the accepted values or the nearest valid name (did_you_mean), and a working example. Rate-limit and
overload errors give retry_after_seconds.limit is the page size (10 to 100, default 50) and max_results is the most results one search returns across all its pages (10 to 1,000, default 250). They apply to search_jobs, search_jobs_json, search_jobs_dsl, list_company_jobs, list_companies, search_companies and list_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 returns next_cursor: null and a note. The no-account endpoint pages 1 to 50 jobs (default 10, or 1 to 10 with full descriptions) and stops at 250.search_jobs also 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.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.
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 [email protected].
The examples and docs in this repository are MIT licensed.
來源:README.md,提交 a15502d
Search the Headcount Labs docs
Ask a question about Headcount Labs (filters, limits, MCP setup, errors) and get the best-matching sections of the headcountlabs.com docs, each with its URL. Works without an account.
limitquestion必填Search jobs
Search current job postings by keyword, title, company, place, pay, date and more. No account needed. Call list_fields to find the filter names. Country and employment_type accept comma-separated values or arrays and match any listed value. Pages return up to 50 jobs (limit, default 10), or up to 10 jobs when descriptions is "full"; a larger limit is refused. Pass next_cursor as cursor to see the next page. One search shows up to 250 jobs in total (the last page is shortened to fit), so narrow it with filters to find the right ones; count_jobs tells you how many jobs match without listing them. sort is relevance (best match) or updated (most recently updated). By default each job is a compact summary: rank, job_id, job_ad (the employer-written title, employer and a 200-character snippet of the description), company_id, locations, work_arrangement, pay (min, max, currency, period), posted_at, first_seen_at, posting_url and apply_url. For every field of each job pass view: "full" (descriptions cut to 400 characters, or descriptions: "full" for the whole text), name the top-level properties you need in fields (job_id is always included), or call get_job for one job. You choose how much description each job gets: descriptions: "snippet" (the default) gives a short preview and allows up to 50 jobs per page; descriptions: "full" gives the whole text but allows only 10 jobs per page. To read the full text of just a few jobs, search with snippets, then call get_job on the ones you want. Leave description out of fields to drop it entirely. For job titles, title matches the words as one phrase in that order, so "senior software engineer" misses "Software Engineer, Senior"; title_advanced matches words in any order with AND, OR and NOT, for example senior AND ("software engineer" OR "software developer"), and usually finds more.
sortviewlimitcursorfieldsfiltersdescriptionsGet job details
Get a job by its job_id. No account needed. By default the answer has the same compact shape search_jobs returns (rank 1, job_id, job_ad, company_id, locations, work_arrangement, pay, posted_at, first_seen_at, posting_url, apply_url) with the whole description in job_ad.description, currentness, stale and last_checked_at (is it still open, and when was it last checked), and every linked posting in postings (status, last_fetched_at, application_check). Pass view: "full" for every field as the REST API returns it. Use fields to select top-level job properties; job_id is always included.
viewfieldsjob_id必填Count jobs
Count the current jobs matching the filters, without listing them. This is the live count: it reads the job database as it is now, so use it for "how many jobs" and "which employers are hiring" questions, and prefer its numbers over market_lookup and market_breakdown, which read a daily snapshot. No account needed. To answer "which companies are hiring for X" or "how are these jobs split by ...", pass group_by: employer (company works too), work_arrangement (remote, hybrid or in_person), title, state (US), city (metro works too), country or employment_type. The answer then also has group_by, groups (the top 25 values by number of matching jobs, each with value and jobs), groups_from_jobs (how many matching jobs were grouped, at most 1,000, taken in the default list order), groups_sampled (true when more jobs matched than were grouped, so the counts are from a sample) and groups_unknown_jobs (grouped jobs with no known value). A job with several locations or postings can count under more than one value. group_by employer keeps its own keys: employers (each with employer_name, company_id and jobs), employers_from_jobs, employers_sampled and employers_unknown_jobs. When a filter is too broad to count exactly in time, count is an estimate: the answer then has count_is_estimate: true, count_margin (the 95% range either side of count) and count_note.
filtersgroup_byLook up a job market figure
Job count, pay percentiles, share of jobs showing pay, remote/hybrid/in-person shares, posting age, new postings or top employers for up to two of title, place, company, seniority, employment_type and remote, such as the pay range for Registered Nurses in Texas. Leave metric out for every figure. Answers come from a daily snapshot of open US jobs and give their as_of date; for current job counts or the employers hiring right now, count_jobs is the live source. Cells with fewer than 30 jobs are left out. No account needed.
roleplacetitlemetricremotecompanyseniorityemployment_typeRank a job market dimension
Rank the values of one dimension (by: title, state, metro, city, company, seniority, employment_type or remote) by jobs, pay or another figure, over all jobs or inside one filter, such as which states pay Software Engineers the most (by=state, title=Software Engineer, sort=pay_median). Answers come from a daily snapshot of open US jobs and give their as_of date; for current job counts or the employers hiring right now, count_jobs is the live source. Cells with fewer than 30 jobs are left out. No account needed.
byrolesortlimitplacetitleremotecompanyseniorityemployment_typeSalary range for a role
What salary to ask for: for a title, a place (default US) and an optional seniority, the 25th, 50th, 75th and 90th percentile of posted pay, the sample size and a plain recommendation. Answers come from a daily snapshot of open US jobs and give their as_of date; for current job counts or the employers hiring right now, count_jobs is the live source. Cells with fewer than 30 jobs are left out. No account needed.
roleplacetitleseniorityList market dimensions
List what market_lookup, market_breakdown and salary_range accept: the dimensions, how many values each has and the metrics; with dimension (and optionally q) the values of that dimension, such as the metro names. No account needed.
qlimitdimensionList job fields and filters
Find the search_jobs filters and the job fields that match some keywords, with each one's type and a short description. Pass words such as ["pay", "remote"]; no keywords lists everything. kind is filter (pass it in search_jobs filters) or field (a property of each returned job; postings[].x is a property of each linked posting). A field state is an object whose state says whether the source published the value (known), Atlas derived it, the source omitted it, or extraction failed.
keywords已滿足適用檢查項的 100%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
claude mcp add --transport http headcountlabs-public https://api.headcountlabs.com/mcp/publiccurl -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":{}}}'claude mcp add --transport http headcountlabs https://api.headcountlabs.com/mcp/plugin install headcount-labs --marketplace HeadcountLabs/claude-plugincodex mcp add headcountlabs --url https://api.headcountlabs.com/mcpcodex mcp login headcountlabs