A job board built for AI agents

Structured JobPosting data, an MCP server, and a typed API — so your agent can reason about real roles instead of scraping unreliable HTML.

Why HiredSignal for agents

Job-search agents today waste the majority of their context budget on HTML cleanup. Every generic job board ships inconsistent markup, expired listings, recycled SEO spam, and no freshness signal. HiredSignal solves that: every endpoint returns typed JSON with a freshness state, source URL, and ISO timestamps — so your agent spends tokens on reasoning, not parsing.

Three integration surfaces

Designed for agent workflows

Every listing carries a freshness state (fresh / verified / aging / expired) so your agent can filter out the dead ones without a second API call. Company aggregates let you search by employer. Freshness timestamps are ISO 8601, source URLs are absolute, and salary is normalised into min/max/currency — the stuff you'd otherwise wrangle with regex.

Crawler-friendly defaults

Our robots.txt explicitly allows GPTBot, ClaudeBot, PerplexityBot, Google-Extended, and CCBot by default — we treat AI training access as a feature, not a threat. If you run your own scraper, respect the standard rate limits and attribute links back to the source employer.

HiredSignal MCP — for job seekers using the tracker

One MCP connects Claude directly to your Hired Signal Tracker. Claude can list your pipeline, move jobs between stages, read a job's JD plus any notes you left on it, and upload tailored CVs back to the tracker — without you ever copying files or tokens.

Before you start

  1. You need a Hired Signal account.
  2. Move the jobs you want CVs for into the Prepping column on your Tracker board. Optionally add notes on each job — Claude will factor them into the CV.
  3. Have Node.js installed (required by mcp-remote, the bridge Claude Desktop uses to talk to our server).

Installation

Option A — Claude Desktop

Open claude_desktop_config.json (Mac: ~/Library/Application Support/Claude/claude_desktop_config.json · Windows: %APPDATA%\Claude\claude_desktop_config.json) and merge:

{
  "mcpServers": {
    "hiredsignal": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://hiredsignal.com/api/mcp/hiredsignal"]
    }
  }
}

Fully quit Claude Desktop (Cmd+Q on Mac — closing the window is not enough), then reopen. On first use Claude opens a browser to sign you in — that is the only setup step.

Option B — Claude Code (CLI)

claude mcp add --transport http hiredsignal \
  https://hiredsignal.com/api/mcp/hiredsignal

Claude Code will prompt you to authenticate via your Hired Signal account on first use.

How to use it

Start a new Claude conversation, paste your own CV prompt/instructions, then say something like:

"Use the hiredsignal MCP. List my jobs in the prepping stage, read the JD and my notes for each, generate a tailored CV using the instructions above, then upload it."

Claude loops through your prepping jobs, reads each JD and your notes, writes the CV, and uploads it. Each CV appears under the job in your tracker immediately.

Tool reference

list_jobs_by_stage

Optional stage filter. Returns metadata only — no JD, no notes.

{
  "count": 3,
  "jobs": [
    { "jobUid": "abc-123", "title": "Portfolio Manager",
      "company": "Acme Capital", "url": "https://…",
      "stage": "prepping", "outcome": "active",
      "appliedAt": null, "updatedAt": "2026-04-20T…" }
  ]
}

get_job_details

Argument: jobUid. Returns the JD plus your notes (TipTap JSON). Call this per-job when tailoring a CV.

{
  "jobUid": "abc-123",
  "title": "Portfolio Manager",
  "company": "Acme Capital",
  "url": "https://…",
  "jdHtml": "<p>Full job description HTML…</p>",
  "notesJson": { "type": "doc", "content": [ … ] }
}

move_job

Arguments: jobUid, plus at least one of toStage / toOutcome; optional reason (logged to transition history). Valid stages: saved → shortlisted → prepping → ready → applying → applied → screening_call → assessment → interview → offer → closed.

upload_cv

Arguments:

Returns { success, materialId, filename, jobUid, uploadedAt } on success.

Authentication

The MCP uses your Hired Signal account. Claude handles OAuth sign-in automatically on first use — you never copy tokens manually. Every request is validated server-side and scoped to your account.

Coming soon

Get an API key

Email api@hiredsignal.com with your use case. We have a generous free tier for prototyping; paid tiers scale linearly with 1K-call buckets.