Check US job listings for ghost-job warning signs: look up a job link, search jobs, company reports.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Full text for one listing id returned by search: status, dates, reposts, ghost-job flag and description.
An id from search.
Full text for one listing id returned by search: status, dates, reposts, ghost-job flag and description.
| Argument | Type | Description |
|---|---|---|
| id* | string | An id from search. |
{
"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
}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).
| Argument | Type | Description |
|---|---|---|
| limit | integer | Results per page (1-50). |
| offset | integer | Results to skip, for paging. Use next_offset from the previous page. |
| status | string | ghost = flagged listings; active = open and not flagged; inactive = no longer seen on its source and not flagged. |
| company* | string | Company name, e.g. "Stripe". Case-insensitive. |
{
"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
}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.
| Argument | Type | Description |
|---|---|---|
| url* | string | The job posting URL, e.g. https://boards.greenhouse.io/acme/jobs/123. |
{
"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
}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.
| Argument | Type | Description |
|---|---|---|
| id* | string | The listing id from jobslop_search_jobs or jobslop_find_job_by_url. |
| include_description | boolean | Include the job description (trimmed to 8000 characters). |
{
"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
}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.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Companies in the JobSlop index with their listing counts. Filter by name and sort by size or by how many listings are ghost-flagged.
| Argument | Type | Description |
|---|---|---|
| sort | string | |
| limit | integer | Results per page (1-100). |
| query | string | Text the company name must contain. |
| offset | integer | Results to skip, for paging. Use next_offset from the previous page. |
| industry | string | Only companies tagged with this industry: technology, finance, media, logistics. Untagged companies are left out when set. |
| min_jobs | integer | Leave out companies with fewer listings (useful with ghost_share). |
{
"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."
},
"industry": {
"enum": [
"technology",
"finance",
"media",
"logistics"
],
"type": "string",
"description": "Only companies tagged with this industry: technology, finance, media, logistics. Untagged companies are left out when set."
},
"min_jobs": {
"type": "integer",
"default": 1,
"maximum": 1000,
"minimum": 1,
"description": "Leave out companies with fewer listings (useful with ghost_share)."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| sort | string | newest/oldest by posting age; most_reposted by repost count; recently_seen by last sighting. |
| limit | integer | Results per page (1-50). |
| query | string | Words that must all appear in the title, company, location or source, e.g. "senior data engineer". |
| offset | integer | Results to skip, for paging. Use next_offset from the previous page. |
| status | string | ghost = flagged listings; active = open and not flagged; inactive = no longer seen on its source and not flagged. |
| company | string | Exact company name, case-insensitive, e.g. "Stripe". |
| industry | string | Only companies tagged with this industry: technology, finance, media, logistics. Untagged companies are left out when set. |
| location | string | Text the location must contain, e.g. "Remote", "Austin" or "NY". |
Search tracked US job listings by keywords such as role, company or location. Returns ids to pass to fetch.
| Argument | Type | Description |
|---|---|---|
| query* | string | Search words, e.g. "Stripe data engineer remote". |
{
"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
}| posted_within_days | integer | Only listings posted (or first seen) within this many days. |
{
"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\"."
},
"industry": {
"enum": [
"technology",
"finance",
"media",
"logistics"
],
"type": "string",
"description": "Only companies tagged with this industry: technology, finance, media, logistics. Untagged companies are left out when set."
},
"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
}