DEV Community

member_924bafb1
member_924bafb1 Subscriber

Posted on

Give Your AI Agent Live Hiring Signals with MCP (Claude, Cursor, any MCP client)

Ask a chat assistant "which of my target accounts are hiring SDRs right now?" and you'll get a guess. The model has no live view of job boards. With the Model Context Protocol (MCP), you can hand it a tool that reads the companies' own public job boards and returns structured hiring signals: open roles, new roles in the last 30 days, and growth since the last check.

This tutorial wires the Hiring Signal Feed Actor into an MCP client through Apify's hosted MCP server. It takes about five minutes and needs no code.

What the agent gets

The Actor reads the official public job-board APIs that Greenhouse, Lever, Ashby and SmartRecruiters publish for career pages. It doesn't use LinkedIn, logins or proxies. For each company it returns one row like this:

{
  "row_type": "company", "company": "Ramp", "ats": "ashby",
  "open_roles": 167, "new_roles_7d": 12, "new_roles_30d": 47,
  "roles_by_department": {"Engineering": 60, "Sales": 30},
  "roles_by_seniority": {"senior": 12, "manager": 51},
  "roles_added_since_last_run": 11, "salary_bands": [{"currency": "USD", "min": 90000, "max": 400000}]
}
Enter fullscreen mode Exit fullscreen mode

(illustrative values)

That's compact enough for an LLM to reason over 50 companies in one answer.

Step 1: add the tool to your MCP client

Apify runs a hosted MCP server at https://mcp.apify.com. You can limit it to a single Actor with the tools parameter. In Claude Desktop, Cursor, VS Code or Windsurf, add:

{
  "mcpServers": {
    "hiring-signals": {
      "url": "https://mcp.apify.com?tools=eligible_fame/hiring-signal-feed"
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

The first time it connects, the client opens an Apify sign-in (OAuth). If your client doesn't support OAuth, add a header instead: "Authorization": "Bearer <APIFY_TOKEN>". Restart the client and you'll see the tool listed.

Prefer letting the agent pick tools itself? Connect the default https://mcp.apify.com. The agent can then call search-actors ("hiring signals greenhouse"), read the input schema with fetch-actor-details, and run it with call-actor.

Step 2: ask in plain language

Prompts that work well:

  • "Use hiring-signal-feed in companies mode on greenhouse:stripe, ashby:ramp, lever:palantir and ashby:notion. Rank them by new_roles_30d and tell me which department is growing fastest at each."
  • "Here are 40 career-page URLs. Run hiring-signal-feed with titleKeywords ['SDR', 'account executive', 'sales development'] and give me only the companies with at least 3 matching open roles, as a table."
  • "Which of these companies list salary ranges for engineering roles, and what's the max?"

Behind the scenes the agent sends input like:

{ "companies": ["greenhouse:stripe", "ashby:ramp"], "outputMode": "companies", "titleKeywords": ["SDR"] }
Enter fullscreen mode Exit fullscreen mode

Step 3: keep the cost predictable

The Actor is pay-per-event: $0.01 per company row and $0.0015 per job row, plus a $0.02 start at the default 1 GB memory. Two habits keep agent runs cheap:

  1. Tell the agent to use outputMode: "companies" unless you actually need individual postings.
  2. Set a spending cap. The MCP call-actor tool accepts callOptions.maxTotalChargeUsd. A line in your system prompt such as "always pass maxTotalChargeUsd: 1" stops a runaway loop from spending more than $1 per call.

Typos and unsupported boards (a Workday URL, an empty line) come back as free error rows with a message the agent can relay, for example "myworkdayjobs.com boards are not supported", so the agent can explain the problem instead of hallucinating.

Step 4: turn it into a weekly signal

Growth metrics (roles_added_since_last_run, open_roles_change_pct) need a previous snapshot. Ask the agent to always pass the same snapshotStoreName, for example "my-target-accounts". Or, for a fully hands-off feed, create an Apify Schedule that runs the Actor every Monday with your list and send the results to a webhook, Google Sheets, n8n or Clay. Your agent can then read the latest dataset with get-dataset-items and only flag what changed.

Limits worth knowing

  • Coverage: Greenhouse, Lever (US and EU), Ashby and SmartRecruiters. Workday and iCIMS aren't supported.
  • Seniority is inferred from job titles. Salaries appear only where employers publish them.
  • The data covers public job postings only. No personal data is collected.

Wrap-up

MCP turns "the model can't see the web" into "the model calls a cheap, structured tool". Hiring data is a good first tool because it changes weekly, it's public, and it maps directly to a sales or recruiting action.

Try it (disclosure: I built this Actor): https://apify.com/eligible_fame/hiring-signal-feed

Top comments (0)