프로토타입 · 미리 보기: 공식 레지스트리의 모든 서버를 담고 있으며 30분마다 동기화해요. 리뷰와 계정 기능은 다음 단계에서 열려요.
PopNx MCPAI를 쓰는 사람을 위한 MCP 서버 · 쉬운 말로 설명해요

Jd Intel MCP

제작자: prPMDev버전 0.13.0i★ –i내 컴퓨터에서 실행
레지스트리 이름io.github.prPMDev/jd-intel-mcp

설치

개요

제작자가 쓴 설명(영어 원문)

Your AI fetches and reads full job descriptions across nine ATS platforms, no copy-paste.

PopNx MCP의 세 기둥

이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.

할 수 있는 일

이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.

  • 연결 방식: 내 컴퓨터에서 실행
  • 전송 방식: stdio
  • 카테고리: 기타

설치

쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.

설치하기 전에

  • 기본 점검: 1개 중 1개 통과
  • 내 컴퓨터에서 내 사용자 계정의 권한(파일, 네트워크, 앱)으로 실행돼요.
  • 레지스트리에 입력해야 할 키가 나와 있지 않아요.

필요한 것

  • npmNode.js 설치(npx 명령어용)

어떤 앱을 쓰세요?

위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.

Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요

{
  "mcpServers": {
    "jd-intel": {
      "command": "npx",
      "args": [
        "-y",
        "jd-intel-mcp"
      ]
    }
  }
}

터미널에서 이 명령어를 실행하세요

claude mcp add jd-intel -- npx -y jd-intel-mcp

Cursor에서 열기

또는 설정을 직접 복사하기

프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요

{
  "mcpServers": {
    "jd-intel": {
      "command": "npx",
      "args": [
        "-y",
        "jd-intel-mcp"
      ]
    }
  }
}

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

VS Code에서 열기

또는 설정을 직접 복사하기

프로젝트의 .vscode/mcp.json에 붙여 넣으세요

{
  "servers": {
    "jd-intel": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "jd-intel-mcp"
      ]
    }
  }
}

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.

선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.

이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.

할 수 있는 일

내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.

기본 점검i

누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 6일 점검

  • ✓ 통과

    제작자와 저장소 일치

    레지스트리 이름이 GitHub 계정 prPMDev 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요

  • … 아직 점검 안 함

    계속 관리되고 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • … 아직 점검 안 함

    라이선스 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • – 해당 없음

    엔드포인트 응답

    내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요

  • – 해당 없음

    OAuth로 로그인

    내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요

  • … 아직 점검 안 함

    도구 설명에 숨겨진 지시 없음

    내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요

기타 카테고리의 다른 서버와 비교i

  • 이 카테고리의 다른 서버 32410개 중 0%보다 스타가 많아요
  • 이 카테고리의 다른 서버 32410개 중 56%보다 최근에 레지스트리에 공개됐어요
  • 기본 점검 결과가 이 카테고리의 다른 서버 32410개 중 100%와 같거나 더 좋아요

레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.

자주 묻는 질문

Jd Intel MCP, 안전한가요?

해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.

어떤 키나 코드가 필요한가요?

레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.

내 컴퓨터에서 실행되나요, 클라우드에서 실행되나요?

내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).

아직 관리되고 있나요?

GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.13.0)은 32일 전 레지스트리에 올라왔어요.

어떤 앱에서 쓸 수 있나요?

Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Node.js도 있어야 해요.

대신 쓸 수 있는 건 뭐가 있나요?

같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, debuff

대안

같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.

카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i

Spec Driven Development

제작자: formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

내 컴퓨터에서 실행★ 440MIT14개월 전 업데이트
설치

Remote Desktop Commander

제작자: desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

클라우드에서 실행★ 211어제 업데이트
설치

debuff

제작자: debuffjp

Let coding agents play, test and tune your 2D web game: live state, explained errors, replays, fuzz.

내 컴퓨터에서 실행오늘 업데이트
설치

제작자의 README

README 열기

제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.

jd-intel

Stop pasting job descriptions into AI assistants. Let your AI fetch them directly.

Full text. Clean structure. Across nine major ATS. No copy-paste. No context loss.


Why this exists

Your AI assistant already knows a lot about you. Your resume is in its memory. Your target roles, your past projects, your background. Ready to help the moment you feed it a job description.

So you copy-paste.

A JD from one company. Another from the next. A half-dozen more from your target list. Half have broken HTML. Salary info dies in translation. Links get stripped. And for every role, the dance starts over.

You could wait for the job boards to ship their own MCPs. They'll get there eventually. On their timeline. Filtered through their priorities, not yours. Tied to their query abstractions.

jd-intel skips that wait. Raw JDs, fetched directly by your AI, on your terms. One level below the curated layer.

Try asking your AI:

"Find AI/ML engineering jobs posted this week."

"What product designer roles are open at fintechs right now?"

"Pull the staff PM roles posted in the last 7 days."

Done.


Why not just scrape?

Because scraping breaks where jd-intel doesn't:

  • Full JDs when browsing fails. SPA-rendered boards, slow loads, auth walls, and geo-restrictions block a browser. They don't block a public API call.
  • Structured data, not HTML soup. Salary, location type, department, and clean markdown, normalized across nine ATS.
  • No keys, no browser. Public APIs only. Runs anywhere your AI does.
  • One schema, every platform. Greenhouse, Lever, Ashby, SmartRecruiters, Teamtailor, Recruitee, Personio, Workable, Workday return the same shape.

What you can do with it

  • Look up open roles at any company directly from your AI, no copy-paste
  • Tailor your resume across ten roles in one conversation
  • Rank openings by fit with your background
  • Scan a whole sector: "Pull open roles at fintech companies posted this week"
  • Research teams by reading their JDs in bulk

The toolkit fetches. Your AI thinks.


Install

Works with MCP-aware AI clients: Claude Desktop, Claude Code, Cursor, Windsurf, VS Code. ChatGPT, Gemini, and other non-MCP clients don't support this yet. They use different tool-calling systems. (We wish they did. The protocol works the same way regardless of which AI you talk to.)

Everything runs locally on your machine. That also means desktop only: mobile apps can't run a local MCP server, so jd-intel isn't available on phones or tablets.

Claude Desktop (one-file install, no terminal)

The simplest path. No Node.js, no terminal: Claude Desktop runs the server on its own bundled runtime.

  1. Download the extension: jd-intel.mcpb.
  2. In Claude Desktop, open Settings, then Extensions, then Advanced settings, and click Install Extension. Pick the file you downloaded.
  3. Review the access summary, click Install, then start a new chat. The tools appear automatically.

Shortcuts: drag the .mcpb onto the Settings window, or double-click it when your system opens .mcpb files with Claude Desktop. The extension is open source and unsigned, so Claude Desktop shows an "unverified" notice. Choose Install Anyway.

Prefer the terminal, or on an older Claude Desktop? Install Node.js 18+, run npx jd-intel-mcp install, then reopen Claude Desktop. Or edit the config file directly, see Manual install.

Other clients (Claude Code, Cursor, Windsurf, VS Code)

One-file .mcpb install is a Claude Desktop feature; these clients run the same server via npx and need Node.js 18+.

Claude Code

claude mcp add jd-intel -- npx -y jd-intel-mcp

Cursor (Settings, then Tools & MCP, then New MCP Server, or edit ~/.cursor/mcp.json):

{

"mcpServers": { "jd-intel": { "command": "npx", "args": ["-y", "jd-intel-mcp"] } } }

Windsurf (Settings, then Tools, then Windsurf Settings, then Add Server, or View Raw Config to edit mcp_config.json). Use the same mcpServers block as Cursor, then press refresh.

VS Code (Copilot agent mode): run the MCP: Add Server command, or create .vscode/mcp.json. The key is servers and the type is stdio:

{

"servers": { "jd-intel": { "type": "stdio", "command": "npx", "args": ["-y", "jd-intel-mcp"] } } }

Confirm it's working

Start a new chat and ask: "What fintech companies are in your jd-intel registry?" If it lists companies, you're set. Then try the real thing: *"Find senior PM roles open right now that I'd be a fit for."*

Tools not appearing?

  • Fully quit and reopen the client (quit, do not just close the window). Claude Desktop: system tray then Quit (Windows), or ⌘Q (macOS).
  • For npx clients (Claude Code, Cursor, Windsurf, VS Code), run npx clear-npx-cache, then restart.
  • Confirm node --version is 18 or newer for the npx paths. The one-click .mcpb does not need Node.
For developers
npm install jd-intel
import { fetchJobs } from 'jd-intel';

const jobs = await fetchJobs({ company: ' ', titleFilter: 'designer', postedWithinDays: 14, limit: 50, });

Results come back newest first by postedAt, undated last (order: 'board' keeps the ATS's own order). fetchJobs returns the page as an array. fetchJobsDetailed returns the same page plus total_matched, the number of matches before offset and limit, so you can tell a small board from a cut and page through the rest:

import { fetchJobsDetailed } from 'jd-intel';

const { jobs, total_matched } = await fetchJobsDetailed({ company: ' ', titleFilter: 'engineer', limit: 20, offset: 20, // second page });

The same result says how the company was resolved and which boards answered:

  • match: registry (a known company, one adapter call), probe (not in the registry, every adapter asked) or workday_override (an explicit Workday config).
  • company: { key, name } from the registry row on a registry match, null otherwise.
  • boards: one entry per board that answered, { ats, slug, name, site, board_url, org_name, org_url, jobs_found, matched, selected, scan }. jobs_found counts the rows the board listed before any filter. Workday and SmartRecruiters filter their list before fetching details, so for them it is the list count, not the rows that came back (a lower bound when the list scan caps). matched is the rows left after filters and before offset and limit, so a board whose rows were all cut from the page still shows up. board_url is built from the slug. org_name and org_url are what the board states about itself, the organization name in the ATS response and the careers or company host its links point at, and they are null where the platform exposes nothing (Lever and Ashby expose neither); nothing is filled in from the slug or the registry name. A probe match is a slug match, not a confirmed identity: compare org_name and org_url with the company you meant, and open board_url when they are null, before treating the jobs as that company's.
  • failed: adapters that threw during discovery, { ats, slug, name, code, message }, with code either rate_limited or ats_unreachable. When no board answered and a check failed, fetchJobs throws that error instead of returning [], so an outage never reads as "not found".
  • total_before_filters: the sum of jobs_found. Zero matches with a positive total_before_filters means the company is hiring and nothing passed the filters, on every ATS.

detectAtsDetailed(company) returns { boards, failed }: registry rows first (source: 'registry', never probed), then every live probe that answered (source: 'probe'), in platform order; failed lists the probes that could not be checked, with the same codes. detectAts keeps returning [{ ats, slug }].

A call the library cannot make throws ArgumentError (code: 'invalid_args'): no company, an unknown ats, or a titleFilter or filter that does not compile as a regex. It is thrown before any request goes out.

CLI usage: npx jd-intel fetch --title-filter "engineer" --posted-within-days 14. Full filter reference below.

Each ATS request gives the server 10 seconds to start responding. A 429, a 5xx or a network error is retried up to three attempts with backoff (1s, 2s), honoring Retry-After when the ATS sends one, and at most 4 requests run at a time per host. A failure that outlasts the retries throws an AtsError whose code is rate_limited or ats_unreachable.

Node.js 18+. No API keys. No configuration.

Manual install (fallback)

If npx jd-intel-mcp install fails, edit the config directly.

Config file location:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{

"mcpServers": { "jd-intel": { "command": "npx", "args": ["-y", "jd-intel-mcp"] } } }

Restart Claude Desktop.

Updating
  • Claude Desktop extension (`.mcpb`): install a newer .mcpb over the current one, or manage it in Settings, then Extensions. Remove and reinstall to reset.
  • npx clients (Claude Code, Cursor, Windsurf, VS Code): npx -y jd-intel-mcp picks up new versions from npm's cache (within ~24h). Force it now with npx clear-npx-cache, then restart the client.
  • Library or CLI: npm install jd-intel@latest (force latest) or npm update jd-intel (respect semver).

The company registry refreshes on its own: jd-intel fetches the current list at startup and falls back to the bundled copy offline, so new companies show up without reinstalling.


MCP tools

ToolPurpose
fetch_jobsGet open roles at a company with filters for role type, topic, location, and recency
search_registryFind companies by name or sector
detect_atsIdentify which ATS platform a company uses

Plus one Resource: registry://jd-intel/all. Full company registry, grouped by ATS. Fetched lazily for broad catalog surveys.


What you get back

Every job normalizes to one schema, across every platform:

{

"id": "a1b2c3d4e5f6", "company": "Example Co", "title": "Senior Software Engineer, Platform", "department": "Engineering", "location": "Remote - US", "locations": ["Remote - US", "Toronto, Canada"], "locationType": "remote", "workplace": { "type": "remote", "source": "ats" }, "salary": { "min": 180000, "max": 240000, "currency": "USD", "period": "year", "source": "text" }, "description": "Design and build the API surface our customers integrate against...", "url": "https://boards.example.com/jobs/12345", "postedAt": "2026-04-10T14:30:00Z" }

No custom parsing per company.

Data model
FieldDescription
titleFull job title
companyNormalized company name
departmentTeam or department (when provided)
locationPrimary location: city, state, country, or remote

| locations | Every location the posting is open in

앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요

PopNx에게 묻기