Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Authorization required, Bearer, issuer https://api.headcountlabs.com
Authorization required, Bearer, issuer https://api.headcountlabs.com
Certificate changed, valid to 2027-01-16
Authorization required, Bearer, issuer https://api.headcountlabs.com
Added "market_breakdown", "market_dimensions", "market_lookup" and 1 more; removed "market_insights"; changed the definition of "count_jobs" (6 tools before, 9 now)
⟨35 unchanged words⟩ hiring" questions, and prefer its numbers overmarket_insightsmarket_lookup and market_breakdown, whichisread a daily snapshot. No account needed. To answer ⟨160 unchanged words⟩
Rank 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.
Changed the definition of "count_jobs", "list_fields", "market_insights" and 2 more
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_insights, which is a daily snapshot. No account needed. To answer "which companies are ⟨157 unchanged words⟩
⟨76 unchanged words⟩ , the source omitted it, or extraction failed.Free.
Certificate changed, valid to 2027-01-16
Changed the definition of "count_jobs", "get_job" and "search_jobs"
⟨14 unchanged words⟩ answer "which companies are hiring for X" or "how are these jobs split by ...", pass group_by:"employer":the(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 hasemployersgroup_by, groups (the top 25 values by number of matching jobs, each withemployer_name, company_idvalue and jobs),employers_from_jobsgroups_from_jobs (how many matching jobs were grouped, at most 1,000, taken in the default list order),
Certificate recorded, valid to 2027-01-07
Authorization not required
Certificate recorded, valid to 2027-01-07
Authorization required, Bearer, issuer https://api.headcountlabs.com
Changed the definition of "market_insights"
Answercommonjob-market questions from a precomputed snapshot of current US jobs, rebuilt after each full pass over the job boards and checked by recomputing sample answers a second way. Ten ready-made questions (top employers, pay, remote share, top ⟨13 unchanged words⟩ age, employers hiring in the most states)fromplus aprecomputedgenericsnapshotlookup ofcurrentanyUSmetricjobs(job count,rebuiltpay
Added "market_insights" (5 tools before, 6 now)
Job market insights — Answer common job-market questions (top employers, pay, remote share, top metros, jobs by state, top roles, new postings this week, pay transparency, posting age, employers hiring in the most states) from a precomputed snapshot of current US jobs, rebuilt after each full pass over the job boards and checked by recomputing sample answers a second way. Every answer carries as_of, its open_jobs count, a one-line method, the check result and search filters for search_jobs or count_jobs. A role outside the snapshot's top roles returns available: false with count_jobs filters for a live count. Free.
Unknown → Live
First tool surface recorded: 5 tools (server version 1.0.0)
https://api.headcountlabs.com/mcp (mcp_streamable_http) — from mcp_registry, with the record
https://api.headcountlabs.com/mcp/public (mcp_streamable_http) — from mcp_registry, with the record
Showing the latest 18 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
List 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.
Look 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.
Salary 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.
Job market insights — Answer job-market questions from a daily snapshot of open US jobs (each answer gives its as_of date). For current job counts or the employers hiring right now, call count_jobs instead: it is the live count, and its numbers win when the two differ. Use this tool for pay, pay ranges, remote share, posting age and other market figures. Ten ready-made questions (top employers, pay, remote share, top metros, jobs by state, top roles, new postings this week, pay transparency, posting age, employers hiring in the most states) plus a generic lookup of any metric (job count, pay 10th to 90th percentil…
Answer job-market questions from aprecomputeddaily snapshot ofcurrentopen US jobs,rebuilt(eachafteranswereachgivesfullitspassas_ofoverdate).theFor current jobboardscounts or the employers hiring right now, call count_jobs instead: it is the live count, andcheckeditsbynumbersrecomputingwinsamplewhenanswerstheatwoseconddiffer.way.Use this tool for pay, pay ranges, remote share, posting age and other market figures. Ten ready-made questions (top employers, pay, remote ⟨112 unchanged words⟩ every answer carries its sample size, as_of, freshness, a one-line method,the check resultandsearchthe filters forsearch_jobsaorlivecount_jobs.count_jobsFree.call.
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":falsetrue,"properties":{"by":{"description":" ⟨604 unchanged words⟩
⟨17 unchanged words⟩ the headcountlabs.com docs, each with its URL.Free, and worksWorks without an account.
⟨10 unchanged words⟩ date and more. No account needed. Call list_fields(free)to find the filter names. Country and employment_type ⟨277 unchanged words⟩
⟨473 unchanged words⟩ ,"type":"object"},"group_by":{"const":"employer","description":"PassBreak the matching jobs down by employerto(company),alsowork_arrangement,gettitle,thestate,companiescitybehind(metro),thecountrymatchingorjobs.employment_type.","enum":["employer","company","work_arrangement","title","state","city","metro","country","employment_type"],"type":"string"}},"type":"object"}
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,includingjob_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 postingandinitspostingslinks.(status,Nolast_fetched_at,accountapplication_check).needed.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.
⟨52 unchanged words⟩ "format":"uuid","type":"string"},"view":{"default":"compact","description":"compact (default): the same summary search_jobs returns, plus the whole description, whether the job is still open, when it was last checked, and the linked postings. full: every field of the job, as the REST API returns it.","enum":["compact","full"],"type":"string"}},"required":["job_id"],"type":"object"}
⟨33 unchanged words⟩ match any listed value. Pages return up to2550 jobs (limit, default 10), or up to 10 jobs when descriptions is "full";passa larger limit is refused. Pass next_cursor as cursor to see the next page. One search shows up to100250 jobs in total (the last page is shortened to fit), so narrow it with filters to find ⟨17 unchanged words⟩ match) or updated (most recently updated).EachBy default each jobhasisitsaemployercompact summary: rank, job_id, job_ad (the employer-written title, employer and a 200-character snippet of the description), company_id, locations, work_arrangement, paywith(min,itsmax, currency, period),datesposted_at, first_seen_at, posting_url andtheapply_url.postingForlinkeveryinfieldpostings[].posting_urlofandeachpostings[].application_url.jobUsepassfieldsview: "full" (descriptions cut toselect400 characters, or descriptions: "full" for the whole text), name the top-leveljobpropertiesproperties;you need in fields (job_id is alwaysincluded.included),Eachorjob'scalldescriptionget_jobisforcutonetojob.itsYoufirstchoose400howcharactersmuch(description_truncateddescription each job gets:truedescriptions: "snippet" (the default);passgives a short preview and allows up to 50 jobs per page; descriptions: "full"forgives the whole text but allows only 10 jobs per page. To read the full text ofeveryjustjoba few jobs,orsearch with snippets, then call get_jobforononethejob.ones you want. Leave description out of fields to drop it entirely. For job titles, title matches the words ⟨39 unchanged words⟩
⟨25 unchanged words⟩ },"descriptions":{"default":"snippet","description":"snippet (default): a short preview of each description, up to 50 jobs per page. full: the whole text, up to 10 jobs per page.","enum":["snippet","full"],"type" ⟨517 unchanged words⟩ ":10,"description":"Jobs per page,1-25.1-50 (1-10 when descriptions is \"full\"). Default 10.","maximum":2550,"minimum":1,"type":"integer"},"sort":{"enum":["relevance","updated"],"type":"string"},"view":{"default":"compact","description":"compact (default): one short summary per job. full: every field of every job, as the REST API returns it.","enum":["compact","full"],"type":"string"}},"type":"object"}
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"by":{"description":"breakdown only: what to rank (title, state, metro, city, company, seniority, employment_type or remote; place means state).","maxLength":30,"type":"string"},"company":{"description":"An employer name (lookup and breakdown).","maxLength":120,"type":"string"},"dimension":{"description":"dimensions only: list the values of this dimension.","maxLength":30,"type":"string"},"employment_type":{"description":"full_time, part_time, contract, temporary, internship or per_diem (lookup and breakdown).","maxLength":40,"type":"string"},"limit":{"description":"breakdown rows or dimension values to return.","maximum":50,"minimum":1,"type":"integer"},"metric":{"description":"lookup only: job_count, pay, pay_share, work_arrangement, posting_age, new_postings or top_employers; leave out for all of them.","maxLength":30,"type":"string"},"place":{"description":"US (the default), a state code such as TX, a state name, a metro area such as \"Austin-Round Rock-Georgetown, TX\" or astatecityname.such as \"Austin, TX\" (cities and metros only for lookup, breakdown and negotiate).","maxLength":60,"type":"string"},"q":{"description":"dimensions only: search the values of dimension.","maxLength":80,"type":"string"},"question":{"description":"top_employers: Which employers ⟨98 unchanged words⟩ multi_state_employers: Which employers hire in the most states? lookup: Any metric (job count, pay percentiles, share showing pay, remote/hybrid/in-person shares, posting age, new postings, top employers) for one or two dimensions, such as \"what is the average pay for Registered Nurses in Texas?\" Takes title (or role), place, company, seniority, employment_type, remote (at most two); metric (optional). breakdown: Rank the values of one dimension by a metric, over all jobs or inside one value of another dimension, such as \"which states pay Software Engineers the most?\" (by=state, title=Software Engineer, sort=pay_median). Takes by (title, state, metro, city, company, seniority, employment_type or remote; place means state); one filter from title, place, company, seniority, employment_type, remote (optional); sort (optional); limit (optional, 1 to 50). negotiate: What salary to negotiate for: a title, a place and an optional seniority give the 25th, 50th, 75th and 90th percentile of posted pay, the sample size and a plain recommendation. Takes title (or role); place (optional, default US); seniority (optional). dimensions: What can be asked: the dimensions, how many values each has, the metrics, and (with dimension, and optionally q) the values of one dimension. Takes dimension (optional); q (optional search text); limit (optional).","enum":["top_employers","pay","work_arrangement", ⟨3 unchanged words⟩ ,"new_postings_employers","pay_transparency","posting_age","multi_state_employers","lookup","breakdown","negotiate","dimensions"],"type":"string"},"remote":{"description":"remote, hybrid or in_person (lookup and breakdown).","maxLength":20,"type":"string"},"role":{"description":"A standard job title ⟨7 unchanged words⟩ "Software Engineer\"; leave out for every job. Same as title.","maxLength":120,"type":"string"},"seniority":{"description":"intern, entry, senior, lead, manager, director or executive, read from the job title (lookup, breakdown, negotiate).","maxLength":40,"type":"string"},"sort":{"description":"breakdown only: jobs (the default), pay_median, pay_p75, pay_p90, share_with_pay, remote_share, new_7_days or new_30_days.","maxLength":30,"type":"string"},"title":{"description":"A standard job title; lookup, breakdown and negotiate match more than 6,000 titles. Same as role.","maxLength":120,"type":"string"} ⟨4 unchanged words⟩