关于 ENTRA Jobs
ENTRA Jobs 是连接 ENTRA 职位平台的 MCP 服务,供求职者搜索和匹配经核验的 AI 与科技岗位,也支持雇主管理招聘。匹配采用确定性规则;申请由求职者本人提交。
主要功能
- 01按地点、薪资和经验搜索职位
- 02根据简历或技能匹配并排序职位
- 03查询职位薪资统计和招聘公司
- 04生成申请链接与检查清单
- 05雇主发布职位并管理申请
适用场景
- 01筛选远程且达到薪资要求的岗位
- 02按简历技能整理匹配职位
- 03查看某类职位的已发布薪资区间
- 04为公司发布岗位并查看候选人
MCP 相关
MCP 服务可通过本地 npx 或托管的 Streamable HTTP 连接。候选人工具无需 API 密钥;设置雇主密钥后可使用职位发布、申请管理和候选人搜索等工具。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://mcp.entracareers.com/mcpclaude mcp add --transport http dubaikseniia-wq-entra https://mcp.entracareers.com/mcp{"mcpServers":{"dubaikseniia-wq-entra":{"type":"http","url":"https://mcp.entracareers.com/mcp"}}}在 Cursor 中打开{"servers":{"dubaikseniia-wq-entra":{"type":"http","url":"https://mcp.entracareers.com/mcp"}}}在 VS Code 中打开{"mcpServers":{"dubaikseniia-wq-entra":{"type":"http","url":"https://mcp.entracareers.com/mcp"}}}{"mcpServers":{"dubaikseniia-wq-entra":{"serverUrl":"https://mcp.entracareers.com/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://mcp.entracareers.com/mcp需要授权工具
8| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| limit | integer | 否 | 最大结果数(默认 10,最多 50) |
| query | string | 是 | 全文検索。例:"machine learning engineer" |
| remote | boolean | 否 | work_location="remote" 的简写 |
| company | string | 否 | 公司 slug 或名称。例:"openai" 或 "Stripe" |
| country | string | 否 | ISO-2 国家/地区代码(US、GB、DE、AE…)或国家/地区名称 |
| rank_by | enum | 否 | date(默认) · salary(仅限标注薪资,按高到低) · fit(需要 profile_keywords)date | salary | fit |
| experience | enum | 否 | 经验级别no_experience | 1_3_years | 3_6_years | 6_plus_years |
| salary_min | number | 否 | 最低年薪(默认货币为 USD;ENTRA 会转换其他货币) |
| work_location | enum | 否 | 按工作地点筛选remote | onsite | hybrid |
| sort_by_salary | boolean | 否 | 已弃用——请使用 rank_by="salary" |
| salary_currency | string | 否 | salary_min 使用的货币(默认 USD) |
| profile_keywords | array | 否 | 用于 rank_by="fit" 的候选人技能。例:["python","pytorch","llm"] |
| posted_within_days | integer | 否 | 仅显示最近 N 天内发布的职位 |
详细介绍
ENTRA MCP——首个适用于 Agent 的求职平台
让 AI 为你寻找工作。这个 MCP 服务将 Claude、ChatGPT、Cursor、Windsurf 或任何 MCP 客户端——通过 npx 在本地运行,或连接到 https://mcp.entracareers.com/mcp 上的托管服务——接入 ENTRA:数千个经过验证的 AI 和科技岗位,直接汇总自公司的招聘系统(OpenAI、Anthropic、SpaceX、Stripe 等 300 多家公司)。绝无虚假职位。
Agent 会搜索、匹配、排序并准备申请材料。由人类决定并申请——没有垃圾信息,也不会自动提交。
安装
Claude Code
claude mcp add entra -- npx -y entra-mcp
Claude Desktop——一键扩展(.mcpb)
下载 entra-mcp.mcpb,并用 Claude Desktop 打开(设置 → 扩展 → 从文件安装)。无需安装 Node。雇主可以在扩展设置中粘贴 API 密钥。
Claude Desktop(claude_desktop_config.json)、Cursor(.cursor/mcp.json)、Windsurf(~/.codeium/windsurf/mcp_config.json)
{
"mcpServers": {
"entra": { "command": "npx", "args": ["-y", "entra-mcp"] }
}
}
从源代码安装:
npm install && npm run build
claude mcp add entra -- node "/path/to/entra-mcp/dist/index.js"
需要 Node 18+。候选人工具无需 API 密钥——它们只读访问 ENTRA 公共 API。雇主只需添加一个环境变量,详见雇主模式。
然后直接询问:“帮我找远程机器学习工程师职位,薪资不低于 $200K;告诉我哪些公司招聘最多,并为最合适的职位准备申请材料。”
托管端点(无需安装)
同一服务也运行于 https://mcp.entracareers.com/mcp(MCP Streamable HTTP)。无需安装,使用候选人工具无需账号。
| 客户端 | 操作方法 |
|---|---|
| ChatGPT | 设置 → 连接器 → 创建 → MCP 服务 URL https://mcp.entracareers.com/mcp,身份验证选择“None”(自定义连接器需要 ChatGPT 套餐支持,例如启用开发者模式的 Plus/Pro/Business/Enterprise) |
| claude.ai | 设置 → 连接器 → 添加自定义连接器 → URL https://mcp.entracareers.com/mcp |
Cursor(.cursor/mcp.json) | { "mcpServers": { "entra": { "url": "https://mcp.entracareers.com/mcp" } } } |
| Claude Code | claude mcp add --transport http entra https://mcp.entracareers.com/mcp |
| Gemini CLI / Smithery / 任意 Streamable HTTP 客户端 | 将其指向上方的 URL |
通过 HTTP 使用雇主模式: 每次请求都通过 Authorization: Bearer entra_live_… 发送密钥,该请求即可使用 8 个雇主工具(Cursor:在 url 旁添加 "headers": { "Authorization": "Bearer entra_live_…" })。ChatGPT 和 claude.ai 连接器目前无法发送自定义标头,因此在这些平台上只能使用候选人模式——雇主请使用本地 npx 配置并设置 ENTRA_API_KEY(详见雇主模式)。
托管服务的运行方式:
- 无状态:每个请求独立处理(没有会话,也没有
Mcp-Session-Id),因此可以扩展和重新部署,而不会影响客户端。按规范允许的方式,GET /mcp和DELETE /mcp会返回405。 Authorization标头仅用于当前请求,不会存储或记录日志。服务不会从自身环境中读取密钥。/mcp按客户端 IP 限制为每分钟 120 个请求;请求正文最大为 1 MB;允许基于浏览器的 Agent 跨域访问。健康检查:GET /healthz。- 与下文所述的诚信规则相同——托管服务只是传输相同工具的另一种方式。
工具
| 工具 | 功能说明 | 调用示例 |
|---|---|---|
search_jobs | 搜索实时且已验证的职位。筛选条件:work_location(远程/现场/混合)、country(ISO-2)、company(slug 或名称)、salary_min(年薪)、experience、posted_within_days。rank_by:date(默认)· salary · fit(需提供 profile_keywords)。返回 total_found,以及包含 id/title/company/location/salary/published_at/url 的职位。 | {"query":"machine learning engineer","remote":true,"country":"US","salary_min":200000,"rank_by":"salary","posted_within_days":14,"limit":10} |
get_job | 完整职位详情:描述、要求、技能、薪资范围、申请链接 | {"job_id":"<id from search_jobs>"} |
list_companies | 查看哪些公司正在 ENTRA 招聘,包括开放职位数量和资料链接 | {"query":"anthropic"} |
match_jobs | **AI 实时匹配。**传入 resume_text(≤8000 个字符)或 skills[],可选传入 target_role、remote_only、country、min_salary、limit(≤20)。以确定性方式提取技能/职位/资历级别,执行 2–4 次搜索、去重,并返回排序后的列表,其中包含 fit_score(0–100)、why[]、matched_skills、skill_gaps、salary、interview_chance_hint(高/中/低)。 | {"resume_text":"高级 ML 工程师,7 年经验,PyTorch、RAG、AWS…","remote_only":true,"limit":10} |
match_profile | 与 match_jobs 向后兼容的别名(skills[]、role_hint) | {"skills":["python","llm","rag"],"role_hint":"ML engineer"} |
salary_stats | 根据公开薪资范围的职位统计某个职位的薪资:按货币列出 count_with_salary、min / p25 / median / p75 / max(折算为年薪;USD 使用等值美元,其他货币保持原值),以及排名前 5 的公司 | {"query":"software engineer","country":"US"} |
companies_hiring | 查看目前正在招聘某个职位的公司:开放职位数量、示例职位名称、最新发布日期、已验证标记和资料 URL | {"query":"AI engineer","remote_only":true,"limit":15} |
prepare_application | 需人工参与的申请链接和检查清单 | {"job_id":"<id>"} |
每个响应中的每个职位都带有 verified: true;如果公司列出了薪资范围,则会一并提供;申请 URL 的格式为 https://entracareers.com/{country}/vacancies/{id}?utm_source=agent&utm_medium=mcp — 欢迎 Agent 访问。
示例:match_jobs
{
"source": "ENTRA — verified roles aggregated from company ATSs. Finds and ranks; you apply.",
"profile": { "skills_used": ["machine learning", "python", "rag", "llm", "pytorch", "aws"], "target_role": "machine learning engineer", "seniority": "6+ yrs (7+ years mentioned)" },
"queries_run": ["machine learning engineer", "python", "rag", "llm"],
"candidates_considered": 142,
"matches": [
{
"title": "Machine Learning Engineer, Inference",
"company": "OpenAI",
"location": "San Francisco, United States",
"work_location": "remote",
"salary": "$295K–555K/yr",
"url": "https://entracareers.com/us/vacancies/…?utm_source=agent&utm_medium=mcp",
"fit_score": 88,
"interview_chance_hint": "high",
"why": [
"Skills: 5/6 matched (machine learning, python, llm, pytorch, aws)",
"Title match: \"Machine Learning Engineer, Inference\" fits \"machine learning engineer\"",
"Seniority: job asks 6+ yrs, you read as 6+ yrs — match",
"Remote role (as requested)",
"Salary band listed: $295K–555K/yr"
],
"skill_gaps": ["rag"]
}
]
}
诚实说明
- 匹配采用确定性方式——使用关键词字典和规则,不涉及 LLM。
fit_score可解释,并非预测;interview_chance_hint仅根据fit_score得出(绝不会编造百分比)。 salary_stats仅使用已列出的薪资范围——未公开薪资范围的职位会被排除,不会进行任何估算。search_jobs的rank_by: "salary"仅返回标明薪资的职位;posted_within_days则在最近 500 条匹配结果中由客户端应用。- 不会代你提交任何内容。
prepare_application会返回链接和检查清单;由人工提交申请。
雇主模式(API 密钥)
使用同一软件包,只需设置一个环境变量:设置 ENTRA_API_KEY 后,原有的 8 个候选人工具仍可使用,并会新增 8 个雇主工具,用于为贵公司发布职位、管理职位列表、查看申请、搜索和匹配候选人。
- 在 entracareers.com/employer/profile?tab=api-keys 创建密钥(选择所需的权限范围;密钥只会显示一次)。
- 连接:
Claude Code
export ENTRA_API_KEY="entra_live_…"
claude mcp add entra -e ENTRA_API_KEY=$ENTRA_API_KEY -- npx -y entra-mcp --employer
Claude Desktop / Cursor / Windsurf
{
"mcpServers": {
"entra": {
"command": "npx",
"args": ["-y", "entra-mcp", "--employer"],
"env": { "ENTRA_API_KEY": "entra_live_…" }
}
}
}
然后询问:“在迪拜发布一个高级销售经理职位——混合办公,月薪 15–22K AED,期限 45 天——然后为我列出最适合该职位的 5 位候选人,以及已经申请的人选。”
运行方式:
- 密钥仅从环境变量读取(绝不会从参数读取)。未设置密钥时不会注册雇主工具;单独使用
--employer只会在 stderr 输出提示。 - 启动时不会调用任何接口。首次调用雇主工具时,会通过
GET /employer/api-keys/me获取贵公司的信息和权限范围,并缓存结果。 - 只有雇主端点会收到 bearer 头;公开查询(国家、城市、专业领域、职位详情)均以匿名方式进行。
- 每个密钥的速率限制为每分钟 120 个请求;遇到
429时,会在retry-after指定的时间后重试一次。
雇主工具
| 工具 | 权限范围 | 功能 | 调用示例 |
|---|---|---|---|
employer_whoami | 任意 | 公司、密钥名称/前缀、已授予的权限范围、可用工具 | {} |
post_job | jobs:write | 发布职位。易于理解的输入项:title、description、employment_type(full_time/part_time/contract/freelance/internship)、work_location(remote/onsite/hybrid)、country(ISO-2 代码或名称)、city(名称——即使是远程职位,ENTRA 也要求填写)、可选的 specialization(自由文本 → 匹配最合适的有效专业领域;默认为职位名称)、experience_level、salary_min/max/currency/period、benefits、skills(名称)、internal_job_id、expires_in_days(默认为 30)。返回公开网址、管理网址,以及所有解析结果(resolved、notes)。 | {"title":"Senior Sales Manager","description":"…","employment_type":"full_time","work_location":"hybrid","country":"AE","city":"Dubai","salary_min":15000,"salary_max":22000,"salary_currency":"AED","salary_period":"monthly","expires_in_days":45} |
my_jobs | jobs:read | 贵公司的职位:status 为 active(默认值)/ closed / all,search、limit、page。包括状态、薪资、申请数量、到期时间和网址。 | {"status":"active"} |
update_job | jobs:write | 修改部分字段:职位名称、描述、要求、雇佣类型/工作地点、经验、薪资、福利、expires_in_days(延长期限)、country+city、specialization、is_active(重新开放) | {"job_id":"…","salary_max":25000,"expires_in_days":60} |
close_job | jobs:write | 下架职位。不带 confirm:true 时仅返回预览;带上后会执行 PATCH {isActive:false}(可恢复) | {"job_id":"…","confirm":true} |
job_applications | applications:read | 查看某个职位(job_id)或公司所有职位的申请;可选 status(客户端筛选)、limit、page。候选人、简历标题、求职信和联系方式均与返回结果完全一致 | {"job_id":"…","status":"pending"} |
search_candidates | candidates:read | 搜索已发布的简历:query、skills[](匹配任意一项)、specialization、country/city、experience、work_location/remote_only、employment_type、ready_to_relocate、期望薪资范围、has_linkedin/has_portfolio、published_within_days、limit ≤25 | {"query":"sales manager","country":"AE","experience":"3_6_years"} |
match_candidates | candidates:read | 根据 job_id(或 job_text)为职位匹配候选人:确定性提取技能/职位/资历,搜索 2–3 份简历,并返回 0–100 的 fit_score、why[]、matched_skills、skill_gaps | {"job_id":"…","limit":10} |
结构化结果(不会有意外)
| 情况 | 结果 |
|---|---|
| 密钥无效 / 已撤销 | {"error":…,"code":"AUTH_ERROR","status":401,"hint":"…create a new key at …/employer/profile?tab=api-keys"} |
| 密钥缺少某个作用域 | {"code":"MISSING_SCOPE","scope":"jobs:write",…} — 在发出任何请求前于本地检查 |
| 没有空闲职位名额 | post_job → {"needs_subscription":true,"pricing_url":"https://entracareers.com/employer/pricing","note":"Founding plan from $10"}(不是错误) |
| 简历数据库需要套餐 | search_candidates / match_candidates → {"needs_subscription":true,…,"note":"Resume Access"} |
| 触发速率限制 | 重试一次,然后返回 {"code":"API_KEY_RATE_LIMIT_EXCEEDED","status":429,…} |
| 验证失败 | {"status":400,"validation":[{field,message}]} |
诚信说明(雇主)
match_candidates使用确定性的关键词评分(技能重合度、标题与职位的匹配度、资历、地点 / 远程办公)——结果可解释,并非预测。联系任何人之前,请先查看其个人资料。- 只有当 ENTRA 返回联系方式时,才会显示联系方式(电子邮件、电话、WhatsApp、LinkedIn、作品集)——也就是说,候选人申请了你的职位或接受了你的邀请。系统不会推断或抓取任何信息。
post_job会报告所有推测结果:城市 / 专业领域的匹配质量、检测到或设定默认值的experience_level(无法检测时为1_3_years),以及默认设为每月的salary_period(这是 ENTRA 的默认值——年薪请传入"yearly")。- 不会删除任何内容:
close_job会将isActive:false,并可通过update_job {is_active:true}撤销。无法通过 API 密钥更改申请状态——请使用雇主控制面板。
为什么 ENTRA 已为 Agent 做好准备(而其他平台没有)
- LinkedIn 禁止 Agent。Indeed 的 MCP 仅支持搜索。抓取工具会被 CAPTCHA 阻断。
- ENTRA 拥有职位信息——来自公司 ATS 的已验证职位——因此 Agent 可以通过经授权的申请链接,以清晰、合法、结构化的方式访问这些信息。
- 每条职位信息都包含:
verified: true、薪资范围,以及utm_source=agent(我们欢迎 Agent 带来的流量)。
AI 匹配功能已通过 match_jobs 上线——在 entracareers.com 创建个人资料即可使用。
路线图
- 通过 API 密钥更改申请状态并发送邀请(目前:申请信息只读)。
- 在托管端点上支持 OAuth,让 ChatGPT / claude.ai 连接器无需本地安装即可使用雇主模式。
雇主:entracareers.com/employer/pricing — Founding 套餐起价 $10。
链接
- 开发者:entracareers.com/developers
- 面向 AI Agent:entracareers.com/ai-agents
开发
npm run build # tsc → dist/
npm run selftest # calls the live API directly, no MCP client (candidate tools)
npm run smoke # spawns the server over stdio with the MCP SDK client and exercises every candidate tool (live API)
npm run smoke:employer # employer mode against an in-process mock of the employer API (no network, no real key)
npm run smoke:http # starts dist/http.js on a random port and drives it with the SDK's Streamable HTTP client (live API + fake employer key)
npm run start:http # hosted transport locally: http://localhost:8080/mcp (PORT, HOST, RATE_LIMIT_PER_MINUTE, TRUST_PROXY, MCP_ALLOWED_HOSTS)
npm run bundle # builds dist-bundle/entra-mcp.mcpb (Claude Desktop extension / Smithery local bundle) from manifest.json
docker build -t entra-mcp . && docker run -p 8080:8080 entra-mcp # the image the hosted endpoint runs (node:22-alpine, dist/http.js)
布局:src/server.ts 构建服务(createServer({ apiKey? }) — 工具及每个请求的密钥上下文),src/index.ts 是 stdio 入口(npx entra-mcp),src/http.ts 是托管的 Streamable HTTP 入口。
环境变量:ENTRA_API_KEY(仅用于 stdio — 启用雇主模式)、ENTRA_API_URL(默认值为 https://entracareers.com/api)、ENTRA_SITE_URL(默认值为 https://entracareers.com)。
MIT © ENTRA
隐私政策
此服务仅将你的工具输入发送到公开的 ENTRA API(https://entracareers.com/api)。不收集遥测数据,也不使用第三方服务。在本地运行(`npx entra-mcp)时,雇主模式会使用 ENTRA_API_KEY环境变量中的 API 密钥;在托管端点(https://mcp.entracareers.com/mcp)上,密钥来自每个请求的Authorization` 标头,仅转发至 ENTRA 雇主端点,且绝不存储或记录。托管服务不会保留会话或请求历史,仅保留简短的访问日志(方法、工具名称、状态、耗时)。完整政策:https://entracareers.com/privacy-policy
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。