关于 openradar
openradar 汇集招聘网站、RSS、Telegram 和邮件提醒中的职位与自由职业订单,形成开放信息流。它面向求职者和信息贡献者,提供可搜索的职位及直接联系方式,也支持运行独立节点。
主要功能
- 01合并信息流并去除重复职位
- 02搜索、筛选和线索评分
- 03通过浏览器扩展添加职位
- 04投票及通过链接提交信息
- 05薪酬研究与可下载数据
- 06提供 RSS、HTTP API 和节点
适用场景
- 01跨来源查找职位和自由职业订单
- 02将职位薪酬与市场估算对比
- 03提交或标记共享信息流中的职位
- 04运行带自定义来源和通知的节点
MCP 相关
通过同一职位信息流提供 MCP 服务,同时支持 RSS 和 HTTP API。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://openradar.fun/mcpclaude mcp add --transport http mikhailsagalaev-openradar https://openradar.fun/mcp{"mcpServers":{"mikhailsagalaev-openradar":{"type":"http","url":"https://openradar.fun/mcp"}}}在 Cursor 中打开{"servers":{"mikhailsagalaev-openradar":{"type":"http","url":"https://openradar.fun/mcp"}}}在 VS Code 中打开{"mcpServers":{"mikhailsagalaev-openradar":{"type":"http","url":"https://openradar.fun/mcp"}}}{"mcpServers":{"mikhailsagalaev-openradar":{"serverUrl":"https://openradar.fun/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
openradar
openradar 是一个开放的职位和自由职业订单信息库。解析器、节点和用户会从招聘网站、RSS 订阅、Telegram 频道和邮件提醒中添加帖子;中心会合并重复内容,并维护一份整洁的信息流。
求职者不应为了订阅解析器或响应职位而付费。openradar 没有付费套餐:帖子中直接提供联系方式,你可以直接联系客户。任何人都可以运行自己的实例。
实时中心: openradar.fun
功能
- 汇集各类职业的一份信息流。 FL.ru、Kwork、Freelancehunt、Habr Career、hh.ru、Работа России、We Work Remotely、Jobicy、RemoteOK,以及 Telegram 频道(公开频道直接接入,私有频道和聊天则通过你自己的账号接入):开发、设计、视频、写作、广告、销售等。在两个网站上看到的帖子只算一条线索。
- 搜索、筛选和评分。 可按最低预算、技能、仅限远程和语言筛选;可按最新、最佳或预算最高排序。每条线索都会根据报酬、技能、详情和直接联系方式获得 0-100 分的评分。
- 浏览器扩展。 只需登录一次 GitHub,即可一键从任意网站添加职位或订单;扩展还会显示类似工作通常的报酬,以及页面上的报酬低于、处于还是高于这一水平。
- 投票和提交。 登录用户可以将线索标记为有用、垃圾、诈骗或已关闭,也可以通过链接添加帖子。
- 市场研究。 openradar.fun/research:按职位、级别、语言、城市和技能统计职位报酬和订单预算,并提供中位数、四分位数和样本量。月度报告会固定存档,便于引用;数据采用 CC BY 4.0 开放授权(CSV 和 JSON)。统计方法:方法说明。
- 任意查询的 RSS 订阅、HTTP API,以及基于同一信息流的 MCP 服务。
- 你自己的节点。 在家中或服务器上运行,连接你的数据源、筛选条件和通知方式(Telegram、webhook)。除非你分享数据源,否则任何内容都不会离开节点。
网络
节点和解析器可以将帖子发送到共享中心。每条帖子都由参与者的密钥签名。中心会合并不同来源中相同的帖子,将线索归功于最先发现它的人,并根据投票结果和举报者的评分降低垃圾内容和诈骗信息的权重。
提交线索的人可以更早看到信息流:
| 等级 | 条件 | 延迟 | 联系方式 |
|---|---|---|---|
| 访客 | 未登录 | 12 小时 | 隐藏 |
| 成员 | 使用 GitHub 登录,或评分达到 1+ | 3 小时 | 显示 |
| 活跃用户 | 过去 30 天内评分达到 10+ | 30 分钟 | 显示 |
| 核心成员 | 评分达到 50+,或为版主 | 无 | 显示 |
评分取决于你最先发现且得到确认的线索(私有频道和 6 小时独家线索可获得 ×1.5 加成)、确认次数,以及与最终结果相符的信号;被标记为垃圾或诈骗的线索会扣分。详情:docs/PROTOCOL.md。
快速开始
Node.js 22.19+ 和 pnpm 11+:
git clone https://github.com/MikhailSagalaev/openradar.git
cd openradar
pnpm install
pnpm dev serve
serve 会打印一个一次性管理员令牌。打开 http://127.0.0.1:8787,使用该令牌登录,前往 来源,然后点击 加载热门交易所:系统会立即轮询这些交易平台,并在几秒内显示首批线索。
如果没有 DATABASE_URL,节点会将所有内容保存在内存中。要运行持久化节点,请通过 Docker 使用 PostgreSQL 17:
cp .env.example .env # set RADAR_ADMIN_TOKEN, POSTGRES_PASSWORD, DATABASE_URL
docker compose run --rm radar migrate
docker compose up -d
使用 .env.example 中的示例密钥时,docker compose 会拒绝启动。
连接解析器
任何脚本(用于私有频道的 Telethon 读取器、Playwright 抓取器、cron 作业)都可以向节点发送帖子:
pnpm dev source add --kind webhook --title "My parser" # prints the source id and token
python my_parser.py | pnpm dev push --source <id> # NDJSON, one post per line
# or over HTTP: POST /api/v2/ingest/<id> with the header x-radar-token
也可以使用 Python SDK(仅依赖标准库,包含 Telethon 和 Pyrogram 辅助工具)直接发送到中心:
pip install "git+https://github.com/MikhailSagalaev/openradar#subdirectory=sdk/python"
import os
from openradar import HubClient, Key
hub = HubClient("https://openradar.fun", Key.from_string(os.environ["RADAR_KEY"]))
hub.observe([{"source": {"platform": "telegram", "channel": "-1001234567890", "visibility": "private", "message_id": "48213"},
"text": "Ищем React-разработчика..."}])
RADAR_KEY 是你的参与者密钥(pnpm dev key);你的评级与此密钥绑定。TypeScript 包导出了相同的 HubClient 和 NodeClient。
文档
| 文档 | 内容 |
|---|---|
| GETTING_STARTED.md | 使用场景:读取中心、运行节点、服务、解析器,以及与中心共享 |
| PROTOCOL.md | radar/2:帖子、签名、合并、等级、评级、审核 |
| ARCHITECTURE.md | 节点管道、评分、数据模型、HTTP 路由 |
| PLUGINS.md | 编写来源或接收器适配器 |
| EXTENSION.md | 浏览器扩展和市场估值 |
| BACKUP_AND_RESTORE.md | 备份 |
| sdk/python | Python SDK |
贡献
新增交易平台是最有价值的贡献:一个适配器、一个测试样例、一个测试。请参阅 CONTRIBUTING.md。请通过私密渠道报告漏洞:SECURITY.md。
许可证
AGPL-3.0。请参阅 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。
