io.github.prPMDev/jd-intel-mcp
NPM · JD-INTEL-MCP
Your AI fetches and reads full job descriptions across nine ATS platforms, no copy-paste.
Available components
Last scanned (4 hours ago)
Scores higher than 61% of npm servers
Category CRM and Sales
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security81
- No malware found by supply-chain analysis.Pass
- CVE check failed: a known high-severity CVE affects zod 3.25.76, a direct dependency. A fixed version is available. View diagnostics → Fail
- No install/post-install scripts declared.Pass
- 30 of 94 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency45
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 31 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability74
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 3669 tokens (~917/item across 4 items; 3 tools + 1 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
- No destabilizing schema changes in the last 30 days.Pass
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 3 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 4 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 27 Oct 26 +1
- Stability: 0.97 → pass security
- 25 Oct 26 −1
- Stability: pass → 0.93 functional
- 24 Oct 26 −5
- CVE-2023-54404 affects this package: high ▼ security
- Known CVEs: pass → fail ▼ security
- 19 Oct 26 +1
- Stability: 0.97 → pass security
- 17 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.
- 15 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 14 Oct 26 +43
- Injection markers: unverified → pass ▲ security
- Tool coverage: unverified → 100 ▲ functional
- Stability: unverified → 0.83 ▲ functional
- Schema quality: unverified → 100 ▲ functional
- MCP protocol: unverified → pass ▲ functional
- Package version: 0.12.1 → 0.13.0 functional
- 11 Oct 26 −20
- Stability: 0.97 → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Malware scan: unverified → pass ▲ security
- Known CVEs: unverified → pass ▲ security
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Schema quality: 100 → unverified ▼ functional
- Dependency health: unverified → 0.85 ▲ functional
- Package version: 0.12.1 → 0.13.0 functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Analysed npm/jd-intel-mcp@0.13.0
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | npm |
Background: How many MCP packages publish verified provenance →
Vulnerabilities 1 finding
| ID | CVE | Severity | Vector | Fix available |
|---|---|---|---|---|
| GHSA-mrhx-c7xc-m3w5 | CVE-2023-54404 | high | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H | yes |
Background: What a vulnerability scan can and cannot prove →
Dependencies 94 packages
| Packages resolved | 94 |
|---|---|
| Stale | 30 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
detect_ats Detect which ATS a company answers on ~607
List the ATS platforms a company answers on: registry rows first (all nine platforms, Workday included, no request made), then a live probe of every probeable ATS (Greenhouse, Lever, Ashby, SmartRecruiters, Teamtailor, Recruitee, Personio, Workable) the registry did not list. Workday cannot be probed, so a Workday board appears only from the registry. USE WHEN: user asks about the ATS platform explicitly ("What ATS does Stripe use?") or for debugging. DON'T USE WHEN: you want to fetch jobs. Call fetch_jobs directly (it auto-detects internally). ARGUMENT GUIDE: company: company name or slug. Hyphens and spaces stripped automatically ("Cockroach Labs" → "cockroachlabs"). A missing or non-string company or an unknown key fails the input schema and returns isError with plain text naming the field and no envelope; fix that argument and call again. RESPONSE: { status, data: "greenhouse" | "lever" | "ashby" | "smartrecruiters" | "teamtailor" | "recruitee" | "personio" | "workable" | "workday" | null, metadata: { attempted, succeeded, boards, failed, notes } }. boards: every board known for this slug, [{ ats, slug, source }], in platform order. source "registry": a registry row, not probed. source "probe": the ATS answered to this slug live; the registry does not vouch that it is the company asked about. A listed board exists and may hold zero postings. data: the ats of the first board, null when boards is empty. succeeded: the ats of each board. attempted: the ATS probed live (every probeable ATS the registry did not list). failed: probes that could not be checked, [{ ats, slug, code, message }]; a failed probe is neither a match nor a miss. notes: present only when boards spans several platforms, stating that data is the first in platform order, not a ranking, and that every board is in metadata.boards. STATUSES: - success: every probe completed (failed is empty). data null with boards empty means no registry row and no probeable ATS answered. - partial: at least…
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | yes | Company name or slug |
| Name | Type | Req | Description |
|---|---|---|---|
| data | string|null | yes | – |
| error | object | – | – |
| metadata | object | yes | – |
| status | string | yes | – |
No examples provided.
fetch_jobs Fetch jobs from a company ATS ~2,440
Fetch open job postings from one company's ATS board (Greenhouse, Lever, Ashby, SmartRecruiters, Teamtailor, Recruitee, Personio, Workable, Workday). USE WHEN: the user asks about roles at a known company ("Is Stripe hiring?", "What's open at Figma?"). DON'T USE WHEN: - User doesn't know the company → read the registry Resource or call search_registry - User only asks which ATS a company uses → call detect_ats ARGUMENT GUIDE: company: lowercase slug, no spaces (e.g. "stripe", "cockroachlabs"). Hyphens and spaces auto-stripped. A registry slug costs one board fetch; any other slug is probed on every probeable ATS. title_filter: JavaScript-compatible regex matched against TITLE ONLY. Case-insensitive by default. Do NOT use inline flags like (?i) (not supported by V8). Use for role identity ("product manager", "staff engineer"). Does NOT match description text. That's the distinction from filter. filter: JavaScript-compatible regex matched across title + department + description. Case-insensitive by default. Do NOT use inline flags like (?i). Use for topic/scope ("integrations", "growth"). AND'd with title_filter. posted_within_days: number. "recent" or "new" → 30. "this week" → 7. "today" → 1. location_includes: array of keywords. Case-insensitive substring match; short codes (US, UK) use word-boundary matching automatically. Checked against every entry of a job's locations array: a job open in Berlin and New York matches ["New York"]. For US queries prefer ["United States", "US", "Remote - US"]. Avoid bare "Remote". It matches Remote-EMEA, Remote-LatAm. location_excludes: array. Drops a job only when every one of its locations matches a keyword: the Berlin and New York job survives ["US"] because it is still open in Berlin, and drops under ["Germany", "US"]. Use as refinement on top of includes. limit: max jobs per page, default 100. max_tokens usually stops output first, so on a large board a default call returns a few complete postings. total_matched and…
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | yes | Company slug or name (e.g. "stripe") |
| filter | string | – | Regex matched across title, department, description: topic/scope |
| limit | integer | – | Max jobs per page (default 100). max_tokens usually stops output first. |
| location_excludes | array | – | Drop jobs only when every listed location contains a keyword |
| location_includes | array | – | Keep jobs where any listed location contains any keyword |
| max_tokens | integer | – | Response budget in tokens, chars/4 of the text block (default 12000, any integer from 1). Whole jobs only; at least one is always returned. Larger returns more complete postings per call; smaller is… |
| offset | integer | – | Matches to skip after sorting (default 0). Pass next_offset from the previous response to get the next page. |
| order | string | – | "newest" (default): by postedAt, undated last. "board": the ATS's own order. |
| posted_within_days | integer | – | Only jobs posted within N days |
| title_filter | string | – | Regex matched against title only: role identity |
| workday | object | – | Override the registry for a Workday board not indexed. Derive all three from the careers URL https://{tenant}.{env}.myworkdayjobs.com/{site}. Never guess these. |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | – |
| error | object | – | – |
| metadata | object | yes | – |
| status | string | yes | – |
No examples provided.
search_registry Search the company registry ~493
Find companies in the indexed registry by name or sector. USE WHEN: a company name or a sector word is in hand ("Is Stripe in your index?", "Show me fintech companies"). DON'T USE WHEN: - User wants the whole catalog, across every sector → read the registry://jd-intel/all Resource instead (one large read) - User asks about a specific company's jobs → call fetch_jobs directly ARGUMENT GUIDE: query: optional. Case-insensitive substring match against company name or sector. sector: optional. Case-insensitive substring match against sector only ("fintech", "developer tools"). limit: optional. Max rows returned, default 50, max 200. At least one is required. Passing both narrows: a row must match query (on name or sector) and sector (AND). An argument that fails the input schema (wrong type, unknown key) returns isError with plain text naming the field and no envelope; fix that argument and call again. RESPONSE: { status, data: [{ slug, name, sector, ats }] | null, metadata: { count, total, truncated, query, sector, version, registry_source } }. Each row is one board; ats is the platform it is on. Rows are ranked: an exact name or slug, then names starting with the query, then names containing it, then sector-only matches. count is rows in data. total is every row that matched. truncated: null, or { reason: "limit", not_returned } when more matched than limit; narrow the term or combine query with sector before raising limit. query and sector echo the arguments, null when not passed. registry_source is "network", "disk-fallback" (the bundled copy) or "mixed". STATUSES: - success: the registry was searched. data may be []. - error: data is null and error.code says why. ERROR CODES: - invalid_args: both query and sector missing. - internal_error: an exception inside the server, not an argument problem.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Max rows returned, best match first (default 50, max 200). |
| query | string | – | Case-insensitive substring match against company name or sector |
| sector | string | – | Case-insensitive substring match against sector only (e.g. "fintech", "developer tools"). With query, both must match. |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | – |
| error | object | – | – |
| metadata | object | yes | – |
| status | string | yes | – |
No examples provided.
How do I install the io.github.prPMDev/jd-intel-mcp server?
io.github.prPMDev/jd-intel-mcp runs locally as an npm package, launched with npx -y jd-intel-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · jd-intel-mcp
claude mcp add prpmdev-jd-intel-mcp -- npx -y jd-intel-mcp
What is the io.github.prPMDev/jd-intel-mcp server?
io.github.prPMDev/jd-intel-mcp is listed in the public MCP registry as io.github.prPMDev/jd-intel-mcp. Your AI fetches and reads full job descriptions across nine ATS platforms, no copy-paste. This page covers its npm package (jd-intel-mcp).
Is the io.github.prPMDev/jd-intel-mcp server safe to use?
io.github.prPMDev/jd-intel-mcp scores 79 out of 100 on VerifyMCP. We recorded 1 known advisory against it as of 5 November 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the io.github.prPMDev/jd-intel-mcp server expose?
io.github.prPMDev/jd-intel-mcp exposes 3 tools: fetch_jobs, search_registry, detect_ats. Their descriptions and schemas cost roughly 3,540 tokens of context every time the server is loaded.
Is the io.github.prPMDev/jd-intel-mcp server still maintained?
io.github.prPMDev/jd-intel-mcp is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the io.github.prPMDev/jd-intel-mcp server under?
io.github.prPMDev/jd-intel-mcp declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.