Skip to main content
Glama

Linkedin Posts Job Radar

在 LinkedIn 上发现真正的职位空缺,远离噪音

MCP Server TypeScript Playwright React Express Vite Tailwind CSS SQLite License: ISC


让 AI 助手帮你搜索 LinkedIn。Linkedin Posts Job Radar 会抓取搜索结果,剔除所有并非来自你关注市场中雇主的招聘内容,并提供一个仪表盘,让你将剩余内容分为 OkMaybeNot interested

所有内容都保留在你的机器上。无需账户、无需服务器、数据不会离开你的笔记本电脑。

Linkedin Posts Job Radar 的仪表盘,已筛选出提到薪资的帖子


为什么

在 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 posts

Related MCP server: LinkedIn-Posts-Hunter-MCP-Server

安装

你需要 Node.js 18+ 以及一个 MCP 客户端,如 Claude Code、Claude Desktop 或 Cursor。Chromium 会在首次使用时自动下载。

最快捷:无需克隆

直接将你的客户端指向仓库——npm 会为你获取并构建。

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

对于 Claude Desktop 或 Cursor,使用上面的 JSON,其中 "command": "node""args": ["/absolute/path/.../build/main.js"]

作为捆绑包

npm run bundle 会生成一个 .mcpb 文件,支持 MCP 捆绑包的客户端可以直接安装,安装机器上无需任何 Node 工具。

设置你的市场

打开 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 的帖子”

仪表盘

为帖子评分后,其侧边强调色条会变为相应颜色,因此长列表也能一目了然。“Not interested”卡片在悬停之前会变暗。点击帖子已有的评分会清除该评分,因此误点只需再点一次,而不需要第四个按钮。

Applied 单独跟踪——评分是你对职位的看法,Applied 表示你是否采取了行动。

每条帖子都会显示国家和任何薪资信息,两者都会自动从帖子文本中提取。

表格视图

暗色主题


会被筛除的内容

三道关卡,在帖子到达时依次应用:

关卡

拒绝的内容

相关性

没有任何开放职位迹象的帖子——评论、汇总、课程广告

作者

“Open to work”帖子,以及招聘机构重复转发的帖子

市场

你允许国家之外的职位

相关性会广泛识别招聘意图,因为许多真实职位列表从不写“hiring”——Lead Data Analyst opportunity at HelloFresh in London 就是一条招聘帖子。

作者通过两种方式拦截招聘机构:像 our clienton behalf ofC2COutside IR35 这样的措辞,以及像 Recruitment Consultant 或 Executive Recruiter 这样的职位头衔。机构和企业内部都会使用的头衔——普通的 “Recruiter”、“Talent Acquisition”——永远不会单独作为拒绝依据,而 Corporate Recruiter 被视为企业内部招聘。雇主的内部招聘人员正是你最希望收到消息的人。

市场接受任何提到允许国家名称的帖子。提到不想要的国家并不会被淘汰——一条提到其他地区申请人签证规定的巴黎职位仍然是巴黎职位。没有检测到地点的帖子也会保留,因为许多真实职位列表并不注明地点。

想要合同制职位? umbrellaOutside IR35C2C 被视为招聘机构信号。将它们从 src/intake/relevance.tsAGENCY_BODY 中移除,即可让合同制职位通过。

位置检测

按国家和城市名称识别约 105 个国家,支持英语、法语、德语、西班牙语和葡萄牙语,以及 Remote EU (CZ/EE/FI/PL/ES/SE) 这样的代码列表。

明确的地址行拥有最终决定权。当帖子写有 📍 Location: London, UKLieu : Paris 时,由该行决定——因此标题为 📍 Islamabad, Pakistan 的帖子即使下方提到伦敦,也会被正确判定为伊斯兰堡的职位,而非伦敦的职位。

薪资检测

每个货币数字都会按薪资周期分类,只有在该周期内金额合理时才会保留。这正是区分真实薪资与 $2,000 welcome bonus€12.50/day 餐补的方法,也是保留 $100/hour 而拒绝单个 $100 的原因。

支持 $128,470 - $208,77096k€£75k-£115k110000USD-135000USD60,4K GBP/yr(法语十进制逗号)、£830/day$7,000/month


你的数据

内容

位置

抓取的帖子

~/.linkedin-mcp/resources/linkedin.db

LinkedIn 会话

~/.linkedin-mcp/auth.json

两者都位于此仓库之外,永远不会被提交。数据不会发送到任何地方——仪表盘是本地服务器,唯一的网络流量是 Playwright 像你自己的浏览器一样与 LinkedIn 通信。

要清除所有数据:rm -rf ~/.linkedin-mcp


你的助手可以调用的工具

工具

功能

linkedin_session

登录、检查会话、清除已存储的凭据

harvest_posts

搜索并存储帖子,报告被筛除的内容

vacancies

读取、计数或删除——可按关键词、市场、薪资、评分、applied 筛选

dashboard_filters

从对话中更改仪表盘的筛选条件

open_dashboard / close_dashboard

启动和停止仪表盘

命令

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 typecheck

npm run rederive -- --all 会重新推断每条帖子,而不仅仅是空白项——在编辑检测器后运行它。

要将仪表盘移出端口 7391:

JOB_RADAR_PORT=9090 npm run viewer

当你的 MCP 客户端启动服务器时,将 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 通过文件大小和修改时间对文件进行指纹识别,在其他进程写入时重新加载,并记录自身的保存以避免不必要的重新加载。移除该检查会静默丢失数据。


致谢

衍生自 Kevin Weitgenant 的 LinkedIn-Posts-Hunter-MCP-Server,依据 ISC 许可证使用。

本分支围绕 intake 流水线重新组织了代码库,添加了上述的相关性、招聘机构和市场筛选,增加了国家和薪资推断,用分拣评分取代了已保存标记,重命名了 MCP 工具,重建了仪表盘,并修复了跨进程数据库覆盖问题。

以 ISC 许可证发布——请参阅 LICENSE,其中包含两行版权信息。

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • F
    license
    Not graded
    quality
    D
    maintenance
    Helps 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
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides 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.
    19
    6
    ISC
  • A
    license
    Not graded
    quality
    B
    maintenance
    An 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
  • A
    license
    Not graded
    quality
    C
    maintenance
    Searches 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

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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