About openradar
openradar is an open feed of job vacancies and freelance orders collected from job boards, RSS, Telegram, and email alerts. It is for job seekers and contributors who want searchable listings with direct contacts, and also supports running an independent node.
Key features
- 01Merged feed with duplicate removal
- 02Search, filters, and lead scoring
- 03Browser extension for adding listings
- 04Votes and link-based submissions
- 05Pay research with downloadable data
- 06RSS, HTTP API, and node options
Use cases
- 01Find vacancies and freelance assignments across sources
- 02Compare a listing's pay with market estimates
- 03Submit or flag listings in a shared feed
- 04Run a node with custom sources and notifications
MCP support
Provides an MCP server over the same listings feed, alongside RSS and an HTTP API.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://openradar.fun/mcpclaude mcp add --transport http mikhailsagalaev-openradar https://openradar.fun/mcp{"mcpServers":{"mikhailsagalaev-openradar":{"type":"http","url":"https://openradar.fun/mcp"}}}Open in Cursor{"servers":{"mikhailsagalaev-openradar":{"type":"http","url":"https://openradar.fun/mcp"}}}Open in VS Code{"mcpServers":{"mikhailsagalaev-openradar":{"type":"http","url":"https://openradar.fun/mcp"}}}{"mcpServers":{"mikhailsagalaev-openradar":{"serverUrl":"https://openradar.fun/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
Details
From the project READMEopenradar
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
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 score. Budget from, skill, remote only, language; newest, best or highest budget first. Each lead gets a 0-100 score from its pay, skills, detail and a direct contact.
- 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.
- 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.
- RSS for any query, an HTTP API and an MCP server over the same feed.
- 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:
| 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.
Quick start
Node.js 22.19+ and pnpm 11+:
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 press Загрузить популярные биржи: the boards 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 17 through Docker:
cp .env.example .env # set RADAR_ADMIN_TOKEN, POSTGRES_PASSWORD, DATABASE_URL
docker compose run --rm radar migrate
docker compose up -d
docker compose refuses to start with the example secrets from .env.example.
Connecting a parser
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.
Documentation
| Document | Contents |
|---|---|
| GETTING_STARTED.md | Scenarios: reading the hub, running a node, a server, a parser, sharing with the hub |
| PROTOCOL.md | radar/2: posts, signatures, merging, tiers, rating, moderation |
| ARCHITECTURE.md | The node pipeline, the score, the data model, HTTP routes |
| PLUGINS.md | Writing a source or sink adapter |
| EXTENSION.md | The browser extension and the market estimate |
| BACKUP_AND_RESTORE.md | Backups |
| sdk/python | Python SDK |
Contributing
New boards are the most useful contribution: one adapter, one fixture, one test. See CONTRIBUTING.md. Report vulnerabilities privately: SECURITY.md.
License
AGPL-3.0. See LICENSE.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.
