
Hiresignal
io.github.iusmuchandraPublished by GitHub account iusmuchandrav0.3.0Updated Oct 24, 2026
Hiring-intent signals for B2B sales/GTM: turn live job postings into buying signals.
Overview
HireSignal turns live job postings into hiring-intent buying signals for B2B sales and GTM agents, exposed as eight MCP tools over a remote SSE endpoint.
- What you can do
- Search live job postings by role, skill, location and recency, and poll for new postings since a given number of hours.
- Measure a company's hiring velocity: total roles, 7- and 30-day additions, department mix and a growing/stable/shrinking signal.
- Compare up to five companies side by side on open roles, top titles and growth signal.
- Track skill demand trends week over week with average disclosed salary and top hiring companies, and estimate market salary percentiles by title, location and seniority.
- Chart per-department open-role counts and change for an industry vertical.
- Check server health, version, uptime, configured providers and corpus statistics.
- When to use it
- Useful for sales and GTM agents that want to find in-market accounts from hiring activity, time outreach, or compare hiring momentum across target accounts. Also usable for recruiting intelligence, compensation benchmarking and market research, though it is built sales-first.
- Requirements
- A remote SSE endpoint; the hosted instance is reachable at its /sse path. Authentication uses a bearer API key sent in the Authorization header (or x-api-key), which the server operator configures via HIRESIGNAL_API_KEYS. Data needs either an ingested first-party corpus or an upstream provider key such as SERPAPI_KEY or JSEARCH_RAPIDAPI_KEY. Clients without native SSE support need the mcp-remote bridge.
Installation
In SourceWeft
- Open Hiresignal in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Web executable via SSE. Remote servers run from the web runtime once configured in a workspace.
Use with an agent
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/io.github.iusmuchandra%2Fhiresignal/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Other MCP clients
Add this to your client's mcpServers config.
{
"mcpServers": {
"hiresignal": {
"type": "sse",
"url": "https://hiresignal-mcp-production-d4d9.up.railway.app/sse"
}
}
}README
HireSignal — Hiring-Intent Signals for B2B Sales
Turn live job postings into buying signals your AI agent can call.
[HireSignal live demo — three tool calls against the hosted server]
Live demo against the hosted instance — run it yourself with node scripts/demo.mjs.
When a company posts for a VP Sales, RevOps Manager, or Data Security Analyst, it's telling you it has a pain and an approved budget — typically 60–90 days before it starts researching vendors. HireSignal is an MCP server that surfaces those hiring signals so your sales/GTM agent can find in-market accounts, score them, and time outreach.
Plug it into Claude, Cursor, Cline, or Windsurf and ask:
- "Which fintechs posted a RevOps or Sales Ops role in the last 7 days?" (→ in-market for CRM/sales tooling)
- "Is Stripe scaling or freezing its data team right now?" (→ account expansion = budget unlocking)
- "Compare hiring momentum across these 5 target accounts."
- "Which companies started hiring for Snowflake this month?" (→ buying signal for adjacent data tooling)
Also works for recruiting intel, comp benchmarking, and market research — but it's built sales-first.
The server speaks the Model Context Protocol over SSE so it can be hosted remotely (Railway, Fly, anywhere with HTTPS).
Try it instantly (hosted demo)
A live instance is running with a shared, rate-limited demo key. Point any MCP client at:
The demo key is heavily rate-limited and shares a small monthly data quota — expect
QUOTA_EXHAUSTEDduring busy periods. For a dedicated key with higher limits, get in touch.
Tools
First-party corpus (the data moat)
For a curated set of high-value accounts, HireSignal doesn't resell aggregated data — it
scrapes each company's own ATS (Greenhouse / Ashby / Lever / Workday) directly and stores a
time-series of every posting in a local SQLite file. That makes company_hiring_velocity
a real signal (roles added and closed over time, with the company's actual posted dates),
returns data_source: "first_party_ats", costs nothing per query, and — because the value is
the accumulating history — is the one thing a competitor can't backfill.
The server can keep this fresh itself (set INGEST_INTERVAL_HOURS + a persistent
HIRESIGNAL_CORPUS_PATH). Companies outside the corpus transparently fall back to the
aggregator. Full design, schema, and how to add companies: CORPUS.md.
Configuration
Set these environment variables on the server (Railway → Variables, or .env locally):
A data source must be available: either an ingested corpus (npm run ingest) or a provider
key. get_server_status reports "ok" when the corpus is active or a key is set, and
"degraded" when there is neither.
HIRESIGNAL_API_KEYS accepts one or more comma-separated keys (or use HIRESIGNAL_API_KEY for a single key). If neither is set the server runs in open mode — it logs a startup warning and accepts unauthenticated calls, which is convenient for local dev but must not be used in any deployment exposed to the network.
Run locally
Production build:
Deploy to Railway
railway.json wires up Nixpacks, the npm ci && npm run build step, and /health for health checks.
Connecting from MCP clients
Claude Desktop
Claude Desktop's stable config supports stdio MCP servers natively and remote (SSE) servers via the mcp-remote bridge. Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
Restart Claude Desktop. The 8 HireSignal tools will appear in the tools menu.
Cursor
Open Cursor → Settings → MCP → "Add new MCP server":
Cline / Windsurf
Both support remote SSE MCP servers. Point them at https://your-hiresignal.up.railway.app/sse with the same Authorization: Bearer … header.
Local stdio fallback
Most clients only need the SSE URL above. If a client requires stdio, point it at the mcp-remote bridge as in the Claude Desktop example.
How auth and limits work
- API key: the server reads it from
Authorization: Bearer …,x-api-key, or?api_key=…(prefer the header — query params end up in proxy/access logs). The presented key is SHA-256 digested and compared in constant time against the digests of every key inHIRESIGNAL_API_KEYS. Unknown or missing keys get a401with{"code": "AUTH_FAILED"}. Only the first 16 hex chars of the digest are logged, never the key itself. The/messagesPOST endpoint re-checks the key on every call and rejects it if the session was opened under a different key, so a leakedsessionIdis not enough to take over a session. - Rate limit: 30 tool calls per API key per minute (token bucket, in-memory). On overflow, tools return
{ "code": "RATE_LIMITED", "retry_after_seconds": N }. - Cache: job search results are cached for 15 minutes per
(query, location, date_posted)tuple to protect upstream quota.job_alert_checkalways bypasses the cache. - Quota errors: when an upstream returns 429 or signals quota exhaustion, the tool returns
{ "code": "QUOTA_EXHAUSTED", "retry_after_seconds": N, "hint": "hiresignal.io/pricing" }.
Testing
License
MIT.
Source: README.md at commit c70fa8c
Tools
0Version history
1- v0.3.0LatestSep 16, 2026
Score
75% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 daysRequired25 pts
- Auth declaredRequired10 pts
- Tools listedRequired15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
Declare a license in the repository or the registry entry.