Listed from the MCP registry; nobody on Odel publishes it.
Is this yours? Claim itOpen base of job vacancies and freelance orders from Russian and international boards and Telegram.
One address for any MCP client. No sign-in needed on this server.

3 read
Grouped by tool name. At most: only reads or looks up information.
Odel charges nothing per call. The publisher may charge for its own service.
English · Русский
openradar is an open base of job vacancies and freelance orders. Parsers, nodes and people add posts from boards, RSS feeds, Telegram channels and email alerts; the hub merges duplicates and keeps one clean feed.
Job seekers should not have to pay for subscriptions to parsers or for responding to a vacancy. openradar has no paid tier: the contacts are in the post, and you write to the client directly. Anyone can run their own copy.
Live hub: openradar.fun · Want to help? Start with CONTRIBUTING.md: one board, one adapter, one pull request.
claude mcp add --transport http openradar https://openradar.fun/mcp. Cursor, Gemini CLI, VS Code and Codex: docs/MCP.md.xray_generate_dorks for AI agent sourcing).Nodes and parsers can send their posts to the shared hub. Every post is signed with the participant's key. The hub merges the same post seen in different places, credits whoever saw it first, and lowers the weight of junk and scam by the votes and the rating of the participants who reported it.
People who send leads see the feed earlier:
| Tier | How | Delay | Contacts |
|---|---|---|---|
| Guest | not signed in | 12 h | hidden |
| Member | GitHub sign-in, or rating 1+ | 3 h | shown |
| Active | rating 10+ over 30 days | 30 min | shown |
| Core | rating 50+, or moderator | none | shown |
Rating comes from confirmed leads you saw first (×1.5 for private channels and for a 6-hour exclusive), confirmations and signals that matched the outcome; leads hidden as junk or scam cost points. Details: docs/PROTOCOL.md.
Node.js 22.19+ (the image and CI use 24 LTS) and pnpm 12+:
git clone https://github.com/MikhailSagalaev/openradar.git
cd openradar
pnpm install
pnpm dev serve
serve prints a one-off admin token. Open http://127.0.0.1:8787, sign in with it, go to Источники → Каталог площадок and connect boards one by one or all at once (Подключить все): they are polled right away and the first leads appear within seconds.
Without DATABASE_URL the node keeps everything in memory. For a persistent node, use PostgreSQL 18 through Docker:
pnpm init:env # writes .env with fresh random secrets
docker compose run --rm radar migrate
docker compose up -d
pnpm init:env never overwrites an existing .env. If you copy .env.example by hand instead, replace its secrets: docker compose refuses to start with the example ones.
Any script (a Telethon reader for private channels, a Playwright scraper, a cron job) can send posts to a node:
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
Or straight to the hub with the Python SDK (standard library only, Telethon and Pyrogram helpers included):
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 is your participant key (pnpm dev key); your rating is bound to it. The TypeScript package exports the same HubClient and NodeClient.
Full index of all 29 guides: docs/README.md.
| Document | Contents |
|---|---|
| GETTING_STARTED_EN.md | 9 step-by-step scenarios: reading the hub, running a node, a server, a parser, sharing with the hub |
| MCP.md | Connecting AI agents (Claude, Cursor, Gemini CLI, VS Code, Codex) to /mcp |
| SIGNALS.md | Saved searches with Telegram & HMAC webhook delivery |
| PROTOCOL.md | radar/2: observations, BIP-340 signatures, deduplication, tiers, rating, moderation |
| ARCHITECTURE.md | The node pipeline, lead scoring (0–100), data model, HTTP routes |
| PARADEDB.md | High-performance BM25 search with ParadeDB (pg_search / Tantivy) |
| QUALITY.md | Feed quality rules, spam filtering, and role vs. tech skill extraction |
| DECISIONS.md | Cascade classifier (direction, workplace arrangement, seniority grade) and human review |
| RESEARCH_METHODOLOGY.md | How the /research market pay percentiles and role reports are computed (CC BY 4.0) |
| PLUGINS.md | Writing a source or sink adapter (pnpm new:connector) |
| EXTENSION.md | The browser extension, 1-click capture, market pay check, and X-Ray search |
| JOBSPY_EXPORT.md | JobSpy-compatible CSV export (--source, --type, --since) for pandas pipelines |
| LOCAL_LLM.md | Running the classifier and fact extractor on Ollama, LM Studio, or Groq |
| BACKUP_AND_RESTORE.md | Database backups and restore |
| ROADMAP.md | Directions, epics, and v1.0 criteria |
| BRAND.md | Logo and naming guidelines |
| integrations/ | Ready-to-import n8n workflows (Google Sheets, Slack) |
| sdk/python | Zero-dependency Python SDK (HubClient, NodeClient, Telethon/Pyrogram helpers) |
| AGENTS.md | Engineering guide & invariants for AI coding agents and contributors |
New boards are the most useful contribution: one adapter, one fixture, one test; pnpm new:connector writes the skeleton. See CONTRIBUTING.md and the code of conduct. Good first issues: the good first issue label. Report vulnerabilities privately: SECURITY.md.
⭐ If openradar helped you find work or data, a star helps the next person find it.
AGPL-3.0. See LICENSE.