{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_z57mvhzvdq56","handle":"roleset-job-postings-index","url":"https://wellknown.network/agents/roleset-job-postings-index","links":{"self":"https://wellknown.network/agents/roleset-job-postings-index/record.json","html":"https://wellknown.network/agents/roleset-job-postings-index","markdown":"https://wellknown.network/agents/roleset-job-postings-index/record.md","api":"https://wellknown.network/api/v1/agents/roleset-job-postings-index","status":"https://wellknown.network/api/v1/agents/roleset-job-postings-index/status","claim":"https://wellknown.network/agents/roleset-job-postings-index/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/roleset-job-postings-index/claim.json","badge":"https://wellknown.network/agents/roleset-job-postings-index/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/roleset-job-postings-index/history","tools":"https://wellknown.network/api/v1/agents/roleset-job-postings-index/tools"},"ard":{"identifier":"urn:air:mcp.roleset.io:server:roleset-job-postings-index","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"Roleset — job postings index","summary":"Search 690k open jobs from official ATS feeds, and what changed since your last check.","description":"Search 690k open jobs from official ATS feeds, and what changed since your last check.","publisher":{"name":"io.roleset","url":null},"homepage":"https://roleset.io","repository":null,"version":"0.1.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://mcp.roleset.io/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-09-07T14:58:55.054606Z","publishedAt":"2026-09-07T14:58:55.054606Z","registryName":"io.roleset/jobs"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"productivity.hr","name":"HR & Recruiting","confidence":1,"provenance":"derived"}],"categories":["productivity"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 3h ago.","lastOkAt":"2026-10-11T20:24:49.230Z","lastProbedAt":"2026-10-11T20:24:49.230Z","statusComputedAt":"2026-10-11T20:26:25.593Z","reliability30d":{"probes":111,"successRate":1,"p50Ms":40,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":108,"ok":108,"authBoundaryOk":0,"serviceOk":108,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-11T20:24:49.230Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":36,"error":null,"detail":{"tools":[{"name":"search_jobs","description":"Search the index of open job postings. Use for a one-off question about the job market: who is hiring for a role, what is open in a city or country, which compa"},{"name":"job_changes","description":"What has opened, changed, closed or reopened in the index. This is the tool to poll: pass `since` (ISO-8601) the first time, then keep passing the returned `met"},{"name":"get_job","description":"Fetch a single posting by its Roleset id, including the full description text and HTML. Use after search_jobs or job_changes when you need the body of a specifi"},{"name":"company_jobs","description":"Every open posting at one company. Accepts a domain (acme.com), an ATS board slug, or the company name. Use when the company is already known and you want its r"},{"name":"hiring_signal","description":"Whether a company is hiring, and where. Returns open roles broken down by department plus how many opened and closed over the last 7 and 30 days, and the net ch"},{"name":"stats","description":"Size and freshness of the whole index: companies, boards per ATS, open and total postings, events in the last 24 hours, and when the oldest active board was las"}],"toolCount":6,"toolsHash":"d22e9483a5ab95a6b0ef85cbb15d128abdaf7e6b6344bdd5c91bfc778ac9cae2","serverName":"roleset","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-11T13:24:37.620Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":36,"error":null,"detail":{"tools":[{"name":"search_jobs","description":"Search the index of open job postings. Use for a one-off question about the job market: who is hiring for a role, what is open in a city or country, which compa"},{"name":"job_changes","description":"What has opened, changed, closed or reopened in the index. This is the tool to poll: pass `since` (ISO-8601) the first time, then keep passing the returned `met"},{"name":"get_job","description":"Fetch a single posting by its Roleset id, including the full description text and HTML. Use after search_jobs or job_changes when you need the body of a specifi"},{"name":"company_jobs","description":"Every open posting at one company. Accepts a domain (acme.com), an ATS board slug, or the company name. Use when the company is already known and you want its r"},{"name":"hiring_signal","description":"Whether a company is hiring, and where. Returns open roles broken down by department plus how many opened and closed over the last 7 and 30 days, and the net ch"},{"name":"stats","description":"Size and freshness of the whole index: companies, boards per ATS, open and total postings, events in the last 24 hours, and when the oldest active board was las"}],"toolCount":6,"toolsHash":"d22e9483a5ab95a6b0ef85cbb15d128abdaf7e6b6344bdd5c91bfc778ac9cae2","serverName":"roleset","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-11T06:23:18.917Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":35,"error":null,"detail":{"tools":[{"name":"search_jobs","description":"Search the index of open job postings. Use for a one-off question about the job market: who is hiring for a role, what is open in a city or country, which compa"},{"name":"job_changes","description":"What has opened, changed, closed or reopened in the index. This is the tool to poll: pass `since` (ISO-8601) the first time, then keep passing the returned `met"},{"name":"get_job","description":"Fetch a single posting by its Roleset id, including the full description text and HTML. Use after search_jobs or job_changes when you need the body of a specifi"},{"name":"company_jobs","description":"Every open posting at one company. Accepts a domain (acme.com), an ATS board slug, or the company name. Use when the company is already known and you want its r"},{"name":"hiring_signal","description":"Whether a company is hiring, and where. Returns open roles broken down by department plus how many opened and closed over the last 7 and 30 days, and the net ch"},{"name":"stats","description":"Size and freshness of the whole index: companies, boards per ATS, open and total postings, events in the last 24 hours, and when the oldest active board was las"}],"toolCount":6,"toolsHash":"d22e9483a5ab95a6b0ef85cbb15d128abdaf7e6b6344bdd5c91bfc778ac9cae2","serverName":"roleset","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-11T00:27:49.143Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":37,"error":null,"detail":{"tools":[{"name":"search_jobs","description":"Search the index of open job postings. Use for a one-off question about the job market: who is hiring for a role, what is open in a city or country, which compa"},{"name":"job_changes","description":"What has opened, changed, closed or reopened in the index. This is the tool to poll: pass `since` (ISO-8601) the first time, then keep passing the returned `met"},{"name":"get_job","description":"Fetch a single posting by its Roleset id, including the full description text and HTML. Use after search_jobs or job_changes when you need the body of a specifi"},{"name":"company_jobs","description":"Every open posting at one company. Accepts a domain (acme.com), an ATS board slug, or the company name. Use when the company is already known and you want its r"},{"name":"hiring_signal","description":"Whether a company is hiring, and where. Returns open roles broken down by department plus how many opened and closed over the last 7 and 30 days, and the net ch"},{"name":"stats","description":"Size and freshness of the whole index: companies, boards per ATS, open and total postings, events in the last 24 hours, and when the oldest active board was las"}],"toolCount":6,"toolsHash":"d22e9483a5ab95a6b0ef85cbb15d128abdaf7e6b6344bdd5c91bfc778ac9cae2","serverName":"roleset","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T18:26:37.692Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":62,"error":null,"detail":{"tools":[{"name":"search_jobs","description":"Search the index of open job postings. Use for a one-off question about the job market: who is hiring for a role, what is open in a city or country, which compa"},{"name":"job_changes","description":"What has opened, changed, closed or reopened in the index. This is the tool to poll: pass `since` (ISO-8601) the first time, then keep passing the returned `met"},{"name":"get_job","description":"Fetch a single posting by its Roleset id, including the full description text and HTML. Use after search_jobs or job_changes when you need the body of a specifi"},{"name":"company_jobs","description":"Every open posting at one company. Accepts a domain (acme.com), an ATS board slug, or the company name. Use when the company is already known and you want its r"},{"name":"hiring_signal","description":"Whether a company is hiring, and where. Returns open roles broken down by department plus how many opened and closed over the last 7 and 30 days, and the net ch"},{"name":"stats","description":"Size and freshness of the whole index: companies, boards per ATS, open and total postings, events in the last 24 hours, and when the oldest active board was las"}],"toolCount":6,"toolsHash":"d22e9483a5ab95a6b0ef85cbb15d128abdaf7e6b6344bdd5c91bfc778ac9cae2","serverName":"roleset","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T11:26:02.727Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":61,"error":null,"detail":{"tools":[{"name":"search_jobs","description":"Search the index of open job postings. Use for a one-off question about the job market: who is hiring for a role, what is open in a city or country, which compa"},{"name":"job_changes","description":"What has opened, changed, closed or reopened in the index. This is the tool to poll: pass `since` (ISO-8601) the first time, then keep passing the returned `met"},{"name":"get_job","description":"Fetch a single posting by its Roleset id, including the full description text and HTML. Use after search_jobs or job_changes when you need the body of a specifi"},{"name":"company_jobs","description":"Every open posting at one company. Accepts a domain (acme.com), an ATS board slug, or the company name. Use when the company is already known and you want its r"},{"name":"hiring_signal","description":"Whether a company is hiring, and where. Returns open roles broken down by department plus how many opened and closed over the last 7 and 30 days, and the net ch"},{"name":"stats","description":"Size and freshness of the whole index: companies, boards per ATS, open and total postings, events in the last 24 hours, and when the oldest active board was las"}],"toolCount":6,"toolsHash":"d22e9483a5ab95a6b0ef85cbb15d128abdaf7e6b6344bdd5c91bfc778ac9cae2","serverName":"roleset","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T05:28:17.746Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":36,"error":null,"detail":{"tools":[{"name":"search_jobs","description":"Search the index of open job postings. Use for a one-off question about the job market: who is hiring for a role, what is open in a city or country, which compa"},{"name":"job_changes","description":"What has opened, changed, closed or reopened in the index. This is the tool to poll: pass `since` (ISO-8601) the first time, then keep passing the returned `met"},{"name":"get_job","description":"Fetch a single posting by its Roleset id, including the full description text and HTML. Use after search_jobs or job_changes when you need the body of a specifi"},{"name":"company_jobs","description":"Every open posting at one company. Accepts a domain (acme.com), an ATS board slug, or the company name. Use when the company is already known and you want its r"},{"name":"hiring_signal","description":"Whether a company is hiring, and where. Returns open roles broken down by department plus how many opened and closed over the last 7 and 30 days, and the net ch"},{"name":"stats","description":"Size and freshness of the whole index: companies, boards per ATS, open and total postings, events in the last 24 hours, and when the oldest active board was las"}],"toolCount":6,"toolsHash":"d22e9483a5ab95a6b0ef85cbb15d128abdaf7e6b6344bdd5c91bfc778ac9cae2","serverName":"roleset","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T22:28:09.063Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":62,"error":null,"detail":{"tools":[{"name":"search_jobs","description":"Search the index of open job postings. Use for a one-off question about the job market: who is hiring for a role, what is open in a city or country, which compa"},{"name":"job_changes","description":"What has opened, changed, closed or reopened in the index. This is the tool to poll: pass `since` (ISO-8601) the first time, then keep passing the returned `met"},{"name":"get_job","description":"Fetch a single posting by its Roleset id, including the full description text and HTML. Use after search_jobs or job_changes when you need the body of a specifi"},{"name":"company_jobs","description":"Every open posting at one company. Accepts a domain (acme.com), an ATS board slug, or the company name. Use when the company is already known and you want its r"},{"name":"hiring_signal","description":"Whether a company is hiring, and where. Returns open roles broken down by department plus how many opened and closed over the last 7 and 30 days, and the net ch"},{"name":"stats","description":"Size and freshness of the whole index: companies, boards per ATS, open and total postings, events in the last 24 hours, and when the oldest active board was las"}],"toolCount":6,"toolsHash":"d22e9483a5ab95a6b0ef85cbb15d128abdaf7e6b6344bdd5c91bfc778ac9cae2","serverName":"roleset","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T16:32:24.391Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":40,"error":null,"detail":{"tools":[{"name":"search_jobs","description":"Search the index of open job postings. Use for a one-off question about the job market: who is hiring for a role, what is open in a city or country, which compa"},{"name":"job_changes","description":"What has opened, changed, closed or reopened in the index. This is the tool to poll: pass `since` (ISO-8601) the first time, then keep passing the returned `met"},{"name":"get_job","description":"Fetch a single posting by its Roleset id, including the full description text and HTML. Use after search_jobs or job_changes when you need the body of a specifi"},{"name":"company_jobs","description":"Every open posting at one company. Accepts a domain (acme.com), an ATS board slug, or the company name. Use when the company is already known and you want its r"},{"name":"hiring_signal","description":"Whether a company is hiring, and where. Returns open roles broken down by department plus how many opened and closed over the last 7 and 30 days, and the net ch"},{"name":"stats","description":"Size and freshness of the whole index: companies, boards per ATS, open and total postings, events in the last 24 hours, and when the oldest active board was las"}],"toolCount":6,"toolsHash":"d22e9483a5ab95a6b0ef85cbb15d128abdaf7e6b6344bdd5c91bfc778ac9cae2","serverName":"roleset","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T10:22:09.437Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":37,"error":null,"detail":{"tools":[{"name":"search_jobs","description":"Search the index of open job postings. Use for a one-off question about the job market: who is hiring for a role, what is open in a city or country, which compa"},{"name":"job_changes","description":"What has opened, changed, closed or reopened in the index. This is the tool to poll: pass `since` (ISO-8601) the first time, then keep passing the returned `met"},{"name":"get_job","description":"Fetch a single posting by its Roleset id, including the full description text and HTML. Use after search_jobs or job_changes when you need the body of a specifi"},{"name":"company_jobs","description":"Every open posting at one company. Accepts a domain (acme.com), an ATS board slug, or the company name. Use when the company is already known and you want its r"},{"name":"hiring_signal","description":"Whether a company is hiring, and where. Returns open roles broken down by department plus how many opened and closed over the last 7 and 30 days, and the net ch"},{"name":"stats","description":"Size and freshness of the whole index: companies, boards per ATS, open and total postings, events in the last 24 hours, and when the oldest active board was las"}],"toolCount":6,"toolsHash":"d22e9483a5ab95a6b0ef85cbb15d128abdaf7e6b6344bdd5c91bfc778ac9cae2","serverName":"roleset","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"search_jobs","description":"Search the index of open job postings. Use for a one-off question about the job market: who is hiring for a role, what is open in a city or country, which compa"},{"name":"job_changes","description":"What has opened, changed, closed or reopened in the index. This is the tool to poll: pass `since` (ISO-8601) the first time, then keep passing the returned `met"},{"name":"get_job","description":"Fetch a single posting by its Roleset id, including the full description text and HTML. Use after search_jobs or job_changes when you need the body of a specifi"},{"name":"company_jobs","description":"Every open posting at one company. Accepts a domain (acme.com), an ATS board slug, or the company name. Use when the company is already known and you want its r"},{"name":"hiring_signal","description":"Whether a company is hiring, and where. Returns open roles broken down by department plus how many opened and closed over the last 7 and 30 days, and the net ch"},{"name":"stats","description":"Size and freshness of the whole index: companies, boards per ATS, open and total postings, events in the last 24 hours, and when the oldest active board was las"}],"package":null,"toolSurface":{"id":"ts_46jdvmprb8mf","endpointId":"ep_4k85kamznx9e","hash":"d22e9483a5ab95a6b0ef85cbb15d128abdaf7e6b6344bdd5c91bfc778ac9cae2","toolCount":6,"serverName":"roleset","serverVersion":"0.1.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-09-12T11:27:11.661Z","lastSeenAt":"2026-10-11T20:24:49.223Z","observations":107,"toolNames":["search_jobs","job_changes","get_job","company_jobs","hiring_signal","stats"],"distinctSurfaces":1},"endpointFacts":[{"id":"ep_4k85kamznx9e","url":"https://mcp.roleset.io/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-10T18:26:37.690Z","auth":{"observedAt":"2026-10-10T18:26:37.783Z","authRequired":false,"scheme":null,"resourceMetadata":null,"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":false,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-10-10T18:26:37.845Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"mcp.roleset.io","issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validFrom":"2026-09-06T20:00:03.000Z","validTo":"2026-12-05T20:00:02.000Z","daysToExpiry":54,"sanCount":1,"fingerprint256":"67:C0:0D:1A:F4:B9:CE:D5:AB:C3:1E:13:97:F9:60:57:CB:77:D6:5B:3C:7B:53:4C:05:00:73:F6:EF:50:F2:6C"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"io.roleset/jobs","url":"https://registry.modelcontextprotocol.io/v0/servers/io.roleset%2Fjobs","firstSeenAt":"2026-09-09T06:18:23.440Z","fetchedAt":"2026-10-11T12:19:19.221Z","normalizedAt":"2026-10-11T12:19:19.221Z"}]},"firstSeenAt":"2026-09-09T06:18:23.440Z","updatedAt":"2026-10-11T20:27:22.524Z"}