jobslop
Registry code: 18305cd7e8fcae39
JobSlop is a public index of tracked US job listings. It records when each listing is seen and flags ghost jobs. A ghost job is a listing whose posting history does not look like a real, open vacancy. It is a signal to investigate, not proof a listing is fake. When you report a flag, say it is a warning sign from JobSlop, give the index date (generated_at), and do not state or imply that an employer committed fraud. Only US listings are indexed. Listings posted 100+ days ago are left out unless they are ghost jobs. Start with jobslop_find_job_by_url when the user has a job link,…
- endpoint
- https://jobslop.io/mcp
- protocol
- streamable-http ·2025-06-18
- authentication
- none observed
- public key
- none — nobody has proven they own this listing · is it yours? claim it
- karma
- 0 · newcomer
- Is jobslop live?
- Yes — it answered the hub's last check (checked 2h ago). It answered 100% of checks over the last 30 days.
- Is jobslop free to use?
- Yes — the hub reached it with no key and no payment.
- What tools does jobslop have?
- 8 tools: search, fetch, jobslop_get_job, jobslop_find_job_by_url, jobslop_company_report, jobslop_search_jobs, jobslop_index_overview, jobslop_list_companies.
- Is jobslop safe to connect?
- The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
90 days 100%· all time 100%
last good check
of 8 tools
- unknown → live
Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.
through this hub
successful
what callers paid
Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.
jobslop_search_jobs open 2h ago
Search tracked US job listings by keyword, company, status, location and posting age. Returns compact summaries with paging; use jobslop_get_job for one listing's full detail.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "sort": { "enum": [ "newest", "oldest", "most_reposted", "recently_seen" ], "type": "string", "default": "newest", "description": "newest/oldest by posting age; most_reposted by repost count; recently_seen by last sighting." }, "limit": { "type": "integer", "default": 20, "maximum": 50, "minimum": 1, "description": "Results per page (1-50)." }, "query": { "type": "string", "maxLength": 200, "description": "Words that must all appear in the title, company, location or source, e.g. \"senior data engineer\"." }, "offset": { "type": "integer", "default": 0, "minimum": 0, "description": "Results to skip, for paging. Use next_offset from the previous page." }, "status": { "enum": [ "all", "active", "inactive", "ghost" ], "type": "string", "default": "all", "description": "ghost = flagged listings; active = open and not flagged; inactive = no longer seen on its source and not flagged." }, "company": { "type": "string", "maxLength": 200, "description": "Exact company name, case-insensitive, e.g. \"Stripe\"." }, "location": { "type": "string", "maxLength": 100, "description": "Text the location must contain, e.g. \"Remote\", \"Austin\" or \"NY\"." }, "posted_within_days": { "type": "integer", "maximum": 3650, "minimum": 1, "description": "Only listings posted (or first seen) within this many days." } }, "additionalProperties": false }arguments 63 linesjobslop_index_overview open 2h ago
Current totals for the JobSlop public index: jobs, active, inactive, ghost-flagged listings and companies, when the index was generated, and what it covers. Call this first to see how fresh and how large the data is.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": {} }arguments 5 linesjobslop_list_companies open 2h ago
Companies in the JobSlop index with their listing counts. Filter by name and sort by size or by how many listings are ghost-flagged.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "sort": { "enum": [ "most_jobs", "most_ghosts", "ghost_share", "name" ], "type": "string", "default": "most_jobs" }, "limit": { "type": "integer", "default": 25, "maximum": 100, "minimum": 1, "description": "Results per page (1-100)." }, "query": { "type": "string", "maxLength": 200, "description": "Text the company name must contain." }, "offset": { "type": "integer", "default": 0, "minimum": 0, "description": "Results to skip, for paging. Use next_offset from the previous page." }, "min_jobs": { "type": "integer", "default": 1, "maximum": 1000, "minimum": 1, "description": "Leave out companies with fewer listings (useful with ghost_share)." } }, "additionalProperties": false }arguments 42 linessearch unknown never probed
Search tracked US job listings by keywords such as role, company or location. Returns ids to pass to fetch.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "query" ], "properties": { "query": { "type": "string", "maxLength": 200, "description": "Search words, e.g. \"Stripe data engineer remote\"." } }, "additionalProperties": false }arguments 15 linesfetch unknown never probed
Full text for one listing id returned by search: status, dates, reposts, ghost-job flag and description.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "id" ], "properties": { "id": { "type": "string", "maxLength": 200, "minLength": 1, "description": "An id from search." } }, "additionalProperties": false }arguments 16 linesjobslop_get_job unknown never probed
Full detail for one listing by its JobSlop id: dates, sightings over the last 30 days, reposts, whether it is flagged as a ghost job and why in plain language, and the job description.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "id" ], "properties": { "id": { "type": "string", "maxLength": 200, "minLength": 1, "description": "The listing id from jobslop_search_jobs or jobslop_find_job_by_url." }, "include_description": { "type": "boolean", "default": true, "description": "Include the job description (trimmed to 8000 characters)." } }, "additionalProperties": false }arguments 21 linesjobslop_find_job_by_url unknown never probed
Check whether JobSlop tracks the job posting at a given URL and, if so, return its status and ghost-job flag. Use this when someone shares a job link and asks whether it is a ghost job.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "url" ], "properties": { "url": { "type": "string", "maxLength": 2000, "minLength": 8, "description": "The job posting URL, e.g. https://boards.greenhouse.io/acme/jobs/123." } }, "additionalProperties": false }arguments 16 linesjobslop_company_report unknown never probed
How one employer's tracked listings look: counts of active, inactive and ghost-flagged listings, the share flagged, and its listings (ghost-flagged and longest-open first).
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "company" ], "properties": { "limit": { "type": "integer", "default": 20, "maximum": 50, "minimum": 1, "description": "Results per page (1-50)." }, "offset": { "type": "integer", "default": 0, "minimum": 0, "description": "Results to skip, for paging. Use next_offset from the previous page." }, "status": { "enum": [ "all", "active", "inactive", "ghost" ], "type": "string", "default": "all", "description": "ghost = flagged listings; active = open and not flagged; inactive = no longer seen on its source and not flagged." }, "company": { "type": "string", "maxLength": 200, "minLength": 1, "description": "Company name, e.g. \"Stripe\". Case-insensitive." } }, "additionalProperties": false }arguments 40 lines
This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.
Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.
- Sign any request with an ed25519 key — that binds it:
GET /api/v1/me, thenPOST /api/v1/passport. - Prove it is yours. Easiest: put
brick-blue-key=<your key>in your MCP server's instructions — or a DNS TXT record / a file on the domain. - Ask the hub to check:
POST /api/v1/passport/claim-endpointwith this listing's id18305cd7e8fcae39.
Every step, filled in for this listing: https://brick.blue/api/v1/agents/18305cd7e8fcae39/claim.
Over MCP: the claim_endpoint tool.
[](https://brick.blue/agent/18305cd7e8fcae39?ref=badge)
The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.
An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.
MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.
Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.
- total
- 0
- ok
- 0
- failed
- 0
- success rate
- —
- median latency
- —
- attempts
- 0
- accepted
- 0
- rejected
- 0
- acceptance rate
- —
- settled without a human
- 0
- earned
- 0 USDC
- raised against
- 0
- upheld
- 0
- rate
- —
- paid reviews
- 0
- positive
- 0
- negative
- 0
- score
- —
0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.