JobSlop

Check US job listings for ghost-job warning signs: look up a job link, search jobs, company reports.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
88%
Naming quality
85%
Poisoning risk
100%
Permission match
80%
Protocol compliance
100%

Findings (2)

  • LOWTool 'jobslop_find_job_by_url' suggests web access but openWorldHint=falsein jobslop_find_job_by_url
  • LOWTool 'fetch' suggests web access but openWorldHint=falsein fetch

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,588Tokens (tool definitions)
~1.5 KBTypical response size
Moderate attention impact (1.24% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "jobslop": {
      "url": "https://jobslop.io/mcp"
    }
  }
}

Remote endpoints

https://jobslop.io/mcpstreamable-http

What it can do

Tool inventory

Tools (8)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢jobslop_index_overview

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.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢jobslop_search_jobs(query, company, status, location, posted_within_days, ...)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "maxLength": 200,
      "description": "Words that must all appear in the title, company, location or source, e.g. \"senior data engineer\"."
    },
    "company": {
      "type": "string",
      "maxLength": 200,
      "description": "Exact company name, case-insensitive, e.g. \"Stripe\"."
    },
    "status": {
      "type": "string",
      "enum": [
        "all",
        "active",
        "inactive",
        "ghost"
      ],
      "default": "all",
      "description": "ghost = flagged listings; active = open and not flagged; inactive = no longer seen on its source and not flagged."
    },
    "location": {
      "type": "string",
      "maxLength": 100,
      "description": "Text the location must contain, e.g. \"Remote\", \"Austin\" or \"NY\"."
    },
    "posted_within_days": {
      "type": "integer",
      "minimum": 1,
      "maximum": 3650,
      "description": "Only listings posted (or first seen) within this many days."
    },
    "sort": {
      "type": "string",
      "enum": [
        "newest",
        "oldest",
        "most_reposted",
        "recently_seen"
      ],
      "default": "newest",
      "description": "newest/oldest by posting age; most_reposted by repost count; recently_seen by last sighting."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "default": 20,
      "description": "Results per page (1-50)."
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "default": 0,
      "description": "Results to skip, for paging. Use next_offset from the previous page."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢jobslop_get_job(id, include_description)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "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)."
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢jobslop_find_job_by_url(url)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "minLength": 8,
      "maxLength": 2000,
      "description": "The job posting URL, e.g. https://boards.greenhouse.io/acme/jobs/123."
    }
  },
  "required": [
    "url"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢jobslop_company_report(company, status, limit, offset)

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).

Input Schema

{
  "type": "object",
  "properties": {
    "company": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Company name, e.g. \"Stripe\". Case-insensitive."
    },
    "status": {
      "type": "string",
      "enum": [
        "all",
        "active",
        "inactive",
        "ghost"
      ],
      "default": "all",
      "description": "ghost = flagged listings; active = open and not flagged; inactive = no longer seen on its source and not flagged."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "default": 20,
      "description": "Results per page (1-50)."
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "default": 0,
      "description": "Results to skip, for paging. Use next_offset from the previous page."
    }
  },
  "required": [
    "company"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢jobslop_list_companies(query, sort, min_jobs, limit, offset)

Companies in the JobSlop index with their listing counts. Filter by name and sort by size or by how many listings are ghost-flagged.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "maxLength": 200,
      "description": "Text the company name must contain."
    },
    "sort": {
      "type": "string",
      "enum": [
        "most_jobs",
        "most_ghosts",
        "ghost_share",
        "name"
      ],
      "default": "most_jobs"
    },
    "min_jobs": {
      "type": "integer",
      "minimum": 1,
      "maximum": 1000,
      "default": 1,
      "description": "Leave out companies with fewer listings (useful with ghost_share)."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 25,
      "description": "Results per page (1-100)."
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "default": 0,
      "description": "Results to skip, for paging. Use next_offset from the previous page."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢search(query)

Search tracked US job listings by keywords such as role, company or location. Returns ids to pass to fetch.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "maxLength": 200,
      "description": "Search words, e.g. \"Stripe data engineer remote\"."
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢fetch(id)

Full text for one listing id returned by search: status, dates, reposts, ghost-job flag and description.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "An id from search."
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded8 tools