job-radar
Linkedin Posts Job Radar
LinkedIn의 노이즈 없이 실제 채용 공고를 찾아보세요
AI 어시스턴트에게 LinkedIn을 검색해 달라고 요청하세요. Linkedin Posts Job Radar는 결과를 수집해서, 관심 있는 시장에서 채용 중인 고용주의 공고가 아닌 것은 전부 버립니다. 그리고 남은 항목을 Ok, Maybe, Not interested로 분류할 수 있는 대시보드를 제공합니다.
모든 것은 사용자 컴퓨터에만 보관됩니다. 계정도, 서버도 없고, 데이터가 노트북 밖으로 나가지 않습니다.

왜
LinkedIn에서 "Senior Data Scientist"를 검색하면, 실제 채용 공고와 함께 구직 가능하다고 알리는 게시물, 강좌 광고, 뉴스레터 정리글, 그리고 같은 인력 에이전시의 재게시물이 무려 스무 번도 넘게 섞여 나옵니다 — 대부분 일할 수 없는 나라의 것입니다.
Linkedin Posts Job Radar는 각 게시물을 저장 전에 선별하므로, 수백 개를 뒤질 필요 없이 짧은 목록만 분류하면 됩니다:
Harvest complete: 9 new posts added, 3 duplicates skipped,
12 rejected as outside allowed markets,
18 rejected as non-vacancy or agency postsRelated MCP server: LinkedIn-Posts-Hunter-MCP-Server
설치
Node.js 18+와 Claude Code, Claude Desktop, Cursor 같은 MCP 클라이언트가 필요합니다. Chromium은 첫 사용 시 자동으로 다운로드됩니다.
가장 빠른 방법: 클론 없이
클라이언트에서 저장소를 바로 가리키면 됩니다 — npm이 알아서 fetch와 빌드를 수행합니다.
claude mcp add job-radar -- npx -y github:MaryemeBay/linkedin-posts-job-radar{
"mcpServers": {
"job-radar": {
"command": "npx",
"args": ["-y", "github:MaryemeBay/linkedin-posts-job-radar"]
}
}
}{
"mcpServers": {
"job-radar": {
"command": "npx",
"args": ["-y", "github:MaryemeBay/linkedin-posts-job-radar"]
}
}
}첫 시작은 빌드와 Chromium 다운로드 때문에 몇 분 걸리고, 이후 시작은 즉시 이루어집니다.
심사 규칙을 바꾸려면 소스가 필요하므로, 허용 시장을 조정하고 싶다면 저장소를 클론해야 합니다.
규칙을 바꾸려면 클론
git clone https://github.com/MaryemeBay/linkedin-posts-job-radar.git
cd linkedin-posts-job-radar
npm run setup
npm run build클론한 위치의 절대 경로로 등록하세요:
claude mcp add job-radar -- node /absolute/path/to/linkedin-posts-job-radar/build/main.jsClaude Desktop 또는 Cursor를 쓴다면 위의 JSON을 사용하되, "command": "node"와 "args": ["/absolute/path/.../build/main.js"]을 지정하세요.
번들로
npm run bundle은 MCP 번들을 지원하는 클라이언트가 바로 설치할 수 있는 .mcpb 파일을 생성하며, 설치하는 컴퓨터에 Node.js 도구가 필요 없습니다.
시장 설정
src/intake/market-policy.ts를 열고 실제로 일할 만한 지역을 나열하세요:
export const ALLOWED_COUNTRIES = [
'France',
'United Kingdom',
'Remote (Europe)',
'Remote (Worldwide)',
]클론한 경우에만 필요합니다. 수정한 뒤 npm run build를 실행하세요 — 이 목록 밖의 것은 절대 데이터베이스에 저장되지 않습니다.
사용법
어시스턴트에게 자연스러운 말로 지시하세요:
"내 LinkedIn 계정에 로그인해 줘" 브라우저 창이 열립니다. 한 번 로그인하면 세션이 로컬에 저장되므로, 다시 요청하지 않아도 됩니다.
"LinkedIn에서 런던의 Senior Data Scientist 공고를 검색해 줘" 결과를 수집하고, 무엇을 유지하고 무엇을 걸러냈는지 보고합니다.
"대시보드를 열어 줘"
localhost:7391을 엽니다. 게시물을 Ok / Maybe / Not interested로 평정합니다.
"Ok로 표시했고 급여를 명시한 항목을 모두 보여 줘" 대화에서 대시보드의 필터를 조정합니다.
"Not interested로 표시한 항목을 모두 삭제해 줘"
대시보드
게시물을 평가하면 그 게시물의 강조 띠(accent rail)가 해당 색상으로 바뀌어, 긴 목록도 한눈에 쉽게 읽을 수 있습니다. "Not interested" 카드는 마우스를 올리기 전까지는 흐리게 표시됩니다. 이미 평가가 있는 게시물을 다시 클릭하면 평가가 해제되므로, 잘못 클릭해도 네 번째 버튼이 아닌 클릭 한 번 더로 해결됩니다.
Applied는 별도로 관리됩니다. 평가(verdict)는 해당 직무에 대한 마음가짐이고, Applied는 실제로 지원했는지 여부입니다.
모든 게시물에는 게시물 텍스트에서 자동으로 추출된 국가와 명시된 급여가 표시됩니다.


걸러지는 것들
게시물이 도착하면 세 가지 관문이 적용됩니다:
관문 | 거부 대상 |
관련성 | 공석(빈자리)이 있다는 신호가 없는 게시물 — 의견, 창고, 강좌 광고 |
작성자 | "Open to work" 게시물 및 인재 에이전시의 재게시물 |
시장 | 허용 국가 목록 밖의 채용 공고 |
관련성 검사는 채용 의사를 넓게 찾습니다. 실제 공고 중 상당수는 "hiring"이라는 단어를 쓰지 않기 때문입니다. 헬로프레시(HelloFresh) 런던에서 주니어 데이터 분석가(Lead Data Analyst) 기회 같은 것도 구인 공고입니다.
작성자 검사는 에이전시를 두 가지 방식으로 잡아냅니다. our client(저희 고객사), / on behalf of(를 대신해), C2C, Outside IR35같은 문구, 그리고 Recruitment Consultant나 Executive Recruiter 같은 직책이 그것입니다. 양쪽(에이전시와 기업)에 모두 있는 직책 — 그냥 "Recruiter", "Talent Acquisition" — 만으로는 절대 거부하지 않으며,Corporate Recruiter`는 인하우스로 간주합니다. 기업 소속 채용 담당자는 바로 우리가 원하는 대상입니다.
시장 검사는 허용 국가를 하나라도 언급한 게시물을 통과시킵니다. 허용하지 않는 국가 언급은 탈락 사유가 되지 않습니다. 다른 곳에 지원하는 사람들을 위한 비자 조건을 언급한 파리 공고는 여전히 파리 공고입니다. 위치가 감지되지 않는 공고도 유지합니다. 실제 공고 중 상당수가 위치를 명시하지 않기 때문입니다.
계약직(contract) 공고를 찾으시나요?
umbrella,Outside IR35,C2C는 에이전시 징후로 취급됩니다. 계약직 통과시키려면src/intake/relevance.ts의AGENCY_BODY에서 이 단어를 빼세요.
위치 감지
영어, 프랑스어, 독일어, 스페인어, 포르투갈어로 표기한 약 105개국의 이름과 도시 이름, 그리고 Remote EU (CZ/EE/FI/PL/ES/SE) 같은 코드 목록도 인식합니다.
명시적인 위치 줄이 있으면 무조건 이깁니다. 게시물에 📍 Location: London, UK 또는 Lieu : Paris가 있으면 그 줄이 기준이 됩니다. 그래서 📍 Islamabad, Pakistan라는 제목을 달고 아래쪽에 런던을 언급하는 공고는 런던 공고가 아니라 이슬라마바드 공고로 정확히 분류되는 것입니다.
급여 감지
각 통화 금액을 급여 지급 주기로 분류해서, 해당 주기에 맞는 금액인 경우에만 보존합니다. 이 규칙이 $2,000 welcome bonus나 €12.50/day 식대 바cher를 같은 금액과 실제 급여를 구별하고, $100/hour는 유지하면서 맨 $100은 거부합니다.
$128,470 - $208,770, 96k€, £75k-£115k, 110000USD-135000USD, 60,4K GBP/yr(프랑스식 소수 쉼표), £830/day, $7,000/month 같은 형식을 처리합니다.
데이터
항목 | 위치 |
수집된 게시물 |
|
LinkedIn 세션 |
|
둘 다 이 저장소 밖에 있으며 결코 커밋되지 않습니다. 어디에도전송되지 않습니다. 대시보드는 로컬 서버이며, 유일한 네트워크 트래픽은 대신 브라우저가 LinkedIn과 통신하는 Playwright뿐입니다.
전체 삭제하려면: rm -rf ~/.linkedin-mcp
도구
도구 | 기능 |
| 로그인, 세션 화면(확인), 저장된 자격 증명 삭제 |
| 검색하고 게시물 저장, 거른 결과를 보고 |
| 조회, 개수 세기, 삭제 — 키워드, 시장, 급여, 평가, 지원 여부로 필터 |
| 대화에서 대시보드 필터를 변경 |
| 대시보드를 시작/종료 |
명령
npm run viewer # dashboard on :7391, without going through your assistant
npm run rederive # recompute country and pay for stored posts
npm run seed # import posts from a JSON export
npm run build # rebuild after changing any rule
npm run typechecknpm run rederive -- --all은 빈 것만이 아니라 모든 게시물을 다시 추론합니다 — 감지 로직을 수정한 뒤 실행하세요.
대시보드를 7391 포트가 아닌 다른 포트로 옮기려면:
JOB_RADAR_PORT=9090 npm run viewerMCP 클라이언트가 서버를 실행할 때 JOB_RADAR_PORT를 해당 서버의 env 블록에 넣어서 open_dashboard 지정한 포트와 동일합니다.
코드 구조
src/
main.ts MCP server: tool schemas and dispatch
commands/ One module per tool
linkedin/
session/ Playwright login, credential storage
harvest/ Search crawler, URL building, post parsing
intake/ The screening pipeline
ingest.ts Applies every gate, then writes
relevance.ts Vacancy vs commentary vs agency
market-policy.ts Country allowlist <- edit this
location.ts Country inference
compensation.ts Pay parsing
store/ SQLite handle, schema, queries
viewer/ Dashboard API and React app
platform/ Paths, persisted filter state
scripts/ Maintenance scripts저장소는 sql.js로, 데이터베이스 전체가 메모리에 있고 이를 매번 통째로 기록합니다. 두 인터페이스(MCP 서버와 대시보드)가 동시에 실행 중일 때 각각 구식 스냅샷을 보고, 다음 저장 시 상대편 의 열을 덮어쓸 수도 있습니다.
store/connection.ts는 파일 크기와수정 시각으로 지문을 만들고, 다른 프로세스가 기록했으면 다시 읽어들이며, 무의미한 재실을 막기 위해 자체적인 저장 기록을 남깁니다. 그 검사를 제거하면 데이터가 발각 없이 바르게 잃습니다.
출처
LinkedIn-Posts-Hunter-MCP-Server에서 존속했고, 원작자는 Kevin Weitgenant이며, ISC 라이선스로 사용되었습니다.
이 포크는 코드베이스를 수집(intake) 파이프라인 중심으로 개편하고, 위의 관련성·에이전시·시장 심사를 추가하며, 국가·급여 추론을 추가하고, 저장 플ragma를 심사 평가(verdict)로 대체하고, MCP 도구 이름을 바꾸고, 대시보드를 재구축하고, 교차 프로세스 데이터베이스 덮어쓰기 문제를 해결했습니다.
ISC 라이선스 — 두 저작권 고지가 있는 LICENSE를 확인하세요.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceHelps users find suitable LinkedIn job opportunities by automatically scraping listings, analyzing compatibility with user profiles using AI, and sending custom match reports via email.1
- AlicenseNot gradedqualityDmaintenanceProvides tools for automating LinkedIn job post search and management. Job opportunities often appear in LinkedIn posts first, before they're posted on traditional job boards. By monitoring LinkedIn posts, you can discover opportunities earlier and get a competitive advantage in your job search.196ISC
- AlicenseNot gradedqualityBmaintenanceAn MCP server that finds recent job postings based on your LinkedIn profile, scores each against your resume, and logs the results — all without logging into or scraping LinkedIn.MIT
- AlicenseNot gradedqualityCmaintenanceSearches LinkedIn, Indeed, USAJobs, and Google Jobs from the command line, deduplicates across sources, and optionally finds hiring manager emails; also runs as an MCP server for AI agents.MIT
Related MCP Connectors
Semantic search over 3.5M+ live US job postings pulled straight from company ATSes. Read-only.
Unified jobs search over official feeds + ATS boards (USAJOBS, Adzuna, Muse, Greenhouse, Lever...)
Search AI-native jobs, inspect application forms, and fetch free interview-prep resources.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/MaryemeBay/linkedin-posts-job-radar'
If you have feedback or need assistance with the MCP directory API, please join our Discord server