Listed from the MCP registry; nobody on Odel publishes it.

Is this yours? Claim it
MCP server: One MCP server.

openradar

@mikhailsagalaevMCP server · External

Open base of job vacancies and freelance orders from Russian and international boards and Telegram.

Job searchv0.67.4AGPL-3.0TypeScript
Freeno charge per call

One address for any MCP client. No sign-in needed on this server.

openradar
From the README · 1 of 2

What it does

3 read

Grouped by tool name. At most: only reads or looks up information.

What it costs

Free

Odel charges nothing per call. The publisher may charge for its own service.

Tools

3 · grouped by tool name · checked 30 Oct 2026

Read · 3Look things up

  • search_leads
  • get_lead_details
  • get_market_analytics
Try it in the Inspector
README6 min read

English · Русский

openradar

Live hub: openradar.fun Stories of work found through openradar License: AGPL v3 Protocol: radar/2

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.

The openradar.fun feed

What it does

  • One feed of every trade. FL.ru, Kwork, Freelancehunt, Habr Career, hh.ru, Работа России, We Work Remotely, Jobicy, RemoteOK and Telegram channels (public ones as they are, private ones and chats through your own account): development, design, video, writing, ads, sales and more. A post seen on two boards is one lead.
  • Search, filters and a rating. Budget from, skill, remote only, language. The feed opens with the best recent leads first (rating, fading with age); newest or highest budget are one click away. Each lead gets a 0-100 rating from its pay, skills, detail and a direct contact. A vacancy whose pay is far below the usual for its role shows «check the salary» instead of the number.
  • Browser extension. Sign in with GitHub once, then add a vacancy or an order from any site in one click; it also shows what similar work usually pays and whether the pay on the page is below, within or above it. Includes 1-click X-Ray Direct Outreach to locate engineering leads and hiring managers across LinkedIn, Telegram, Habr and GitHub.
  • Votes and submissions. Signed-in users mark leads as useful, junk, scam or closed, and add posts by link.
  • Market research. openradar.fun/research: pay in vacancies and order budgets by role, grade, language, city and skill, with medians, quartiles and sample sizes. Monthly reports are frozen so they can be cited; the data is open under CC BY 4.0 (CSV and JSON). How it is counted: methodology.
  • Connect an agent in one line: claude mcp add --transport http openradar https://openradar.fun/mcp. Cursor, Gemini CLI, VS Code and Codex: docs/MCP.md.
  • RSS for any query, an HTTP API and an MCP server over the same feed (including xray_generate_dorks for AI agent sourcing).
  • Your own node. Run it at home or on a server, connect your sources, filters and notifications (Telegram, webhook). Nothing leaves the node unless you share a source.

The network

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:

TierHowDelayContacts
Guestnot signed in12 hhidden
MemberGitHub sign-in, or rating 1+3 hshown
Activerating 10+ over 30 days30 minshown
Corerating 50+, or moderatornoneshown

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.

Quick start

Node.js 22.19+ (the image and CI use 24 LTS) and pnpm 12+:

bash
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:

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

Connecting a parser

Any script (a Telethon reader for private channels, a Playwright scraper, a cron job) can send posts to a node:

bash
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):

bash
pip install "git+https://github.com/MikhailSagalaev/openradar#subdirectory=sdk/python"
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.

Documentation

Full index of all 29 guides: docs/README.md.

DocumentContents
GETTING_STARTED_EN.md9 step-by-step scenarios: reading the hub, running a node, a server, a parser, sharing with the hub
MCP.mdConnecting AI agents (Claude, Cursor, Gemini CLI, VS Code, Codex) to /mcp
SIGNALS.mdSaved searches with Telegram & HMAC webhook delivery
PROTOCOL.mdradar/2: observations, BIP-340 signatures, deduplication, tiers, rating, moderation
ARCHITECTURE.mdThe node pipeline, lead scoring (0–100), data model, HTTP routes
PARADEDB.mdHigh-performance BM25 search with ParadeDB (pg_search / Tantivy)
QUALITY.mdFeed quality rules, spam filtering, and role vs. tech skill extraction
DECISIONS.mdCascade classifier (direction, workplace arrangement, seniority grade) and human review
RESEARCH_METHODOLOGY.mdHow the /research market pay percentiles and role reports are computed (CC BY 4.0)
PLUGINS.mdWriting a source or sink adapter (pnpm new:connector)
EXTENSION.mdThe browser extension, 1-click capture, market pay check, and X-Ray search
JOBSPY_EXPORT.mdJobSpy-compatible CSV export (--source, --type, --since) for pandas pipelines
LOCAL_LLM.mdRunning the classifier and fact extractor on Ollama, LM Studio, or Groq
BACKUP_AND_RESTORE.mdDatabase backups and restore
ROADMAP.mdDirections, epics, and v1.0 criteria
BRAND.mdLogo and naming guidelines
integrations/Ready-to-import n8n workflows (Google Sheets, Slack)
sdk/pythonZero-dependency Python SDK (HubClient, NodeClient, Telethon/Pyrogram helpers)
AGENTS.mdEngineering guide & invariants for AI coding agents and contributors

Contributing

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.

License

AGPL-3.0. See LICENSE.

Similar modules

Browse Job search