mcpField
E
ENTRA Jobs

ENTRA Jobs

远程服务
entracareers.com商业与营销05 周前更新

关于 ENTRA Jobs

ENTRA Jobs 是连接 ENTRA 职位平台的 MCP 服务,供求职者搜索和匹配经核验的 AI 与科技岗位,也支持雇主管理招聘。匹配采用确定性规则;申请由求职者本人提交。

主要功能

  1. 01按地点、薪资和经验搜索职位
  2. 02根据简历或技能匹配并排序职位
  3. 03查询职位薪资统计和招聘公司
  4. 04生成申请链接与检查清单
  5. 05雇主发布职位并管理申请

适用场景

  1. 01筛选远程且达到薪资要求的岗位
  2. 02按简历技能整理匹配职位
  3. 03查看某类职位的已发布薪资区间
  4. 04为公司发布岗位并查看候选人

MCP 相关

MCP 服务可通过本地 npx 或托管的 Streamable HTTP 连接。候选人工具无需 API 密钥;设置雇主密钥后可使用职位发布、申请管理和候选人搜索等工具。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://mcp.entracareers.com/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

全部服务地址
Streamable HTTPhttps://mcp.entracareers.com/mcp需要授权
安装包
npmentra-mcp0.4.0

工具

8
参数类型必填说明
limitinteger否最大结果数(默认 10,最多 50)
querystring是全文検索。例:"machine learning engineer"
remoteboolean否work_location="remote" 的简写
companystring否公司 slug 或名称。例:"openai" 或 "Stripe"
countrystring否ISO-2 国家/地区代码(US、GB、DE、AE…)或国家/地区名称
rank_byenum否date(默认) · salary(仅限标注薪资,按高到低) · fit(需要 profile_keywords)date | salary | fit
experienceenum否经验级别no_experience | 1_3_years | 3_6_years | 6_plus_years
salary_minnumber否最低年薪(默认货币为 USD;ENTRA 会转换其他货币)
work_locationenum否按工作地点筛选remote | onsite | hybrid
sort_by_salaryboolean否已弃用——请使用 rank_by="salary"
salary_currencystring否salary_min 使用的货币(默认 USD)
profile_keywordsarray否用于 rank_by="fit" 的候选人技能。例:["python","pytorch","llm"]
posted_within_daysinteger否仅显示最近 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 Codeclaude 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 个雇主工具,用于为贵公司发布职位、管理职位列表、查看申请、搜索和匹配候选人。

  1. 在 entracareers.com/employer/profile?tab=api-keys 创建密钥(选择所需的权限范围;密钥只会显示一次)。
  2. 连接:

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_jobjobs: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_jobsjobs:read贵公司的职位:status 为 active(默认值)/ closed / all,search、limit、page。包括状态、薪资、申请数量、到期时间和网址。{"status":"active"}
update_jobjobs:write修改部分字段:职位名称、描述、要求、雇佣类型/工作地点、经验、薪资、福利、expires_in_days(延长期限)、country+city、specialization、is_active(重新开放){"job_id":"…","salary_max":25000,"expires_in_days":60}
close_jobjobs:write下架职位。不带 confirm:true 时仅返回预览;带上后会执行 PATCH {isActive:false}(可恢复){"job_id":"…","confirm":true}
job_applicationsapplications:read查看某个职位(job_id)或公司所有职位的申请;可选 status(客户端筛选)、limit、page。候选人、简历标题、求职信和联系方式均与返回结果完全一致{"job_id":"…","status":"pending"}
search_candidatescandidates: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_candidatescandidates: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。

链接

开发

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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。