如何透過 MCP 為 AI 智能體接入即時招聘訊號(Claude、Cursor 等客戶端)
Give Your AI Agent Live Hiring Signals with MCP (Claude, Cursor, any MCP client)
作者示範如何透過 Apify 託管的 MCP 伺服器,把 Hiring Signal Feed Actor 接入 Claude、Cursor 等 MCP 客戶端,讓智能體讀取公開職位資訊並返回結構化招聘訊號。
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}]
}
(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"
}
}
}
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 callsearch-actors("hiring signals greenhouse"), read the input schema withfetch-actor-details, and run it withcall-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"] }
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:
-
Tell the agent to use
outputMode: "companies"unless you actually need individual postings. -
Set a spending cap. The MCP
call-actortool acceptscallOptions.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
來源:DEV Community · dev.to