关于 Dreamwork
Dreamwork 是供 AI Agent 处理个人求职与申请流程的 MCP 服务。它支持发现职位、准备申请材料、提交申请和跟踪进度,并要求对重要操作进行确认。
主要功能
- 01浏览和获取职位列表
- 02根据简历排序职位
- 03准备定制化申请材料
- 04提交申请并跟踪进度
- 05管理招聘方消息与面试
- 06执行重要操作前要求确认
适用场景
- 01查找符合候选人简历的职位
- 02为选定职位准备申请材料
- 03确认后提交职位申请
- 04跟踪招聘方回复和面试
MCP 相关
向 MCP 客户端提供求职与账户工具,以及五个提示词。支持 stdio 和托管的 Streamable HTTP;访客可使用公开只读工具,API 密钥可解锁账户操作。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://mcp.dreamworkhq.com/mcpclaude mcp add --transport http dreamworkhq-dreamwork https://mcp.dreamworkhq.com/mcp{"mcpServers":{"dreamworkhq-dreamwork":{"type":"http","url":"https://mcp.dreamworkhq.com/mcp"}}}在 Cursor 中打开{"servers":{"dreamworkhq-dreamwork":{"type":"http","url":"https://mcp.dreamworkhq.com/mcp"}}}在 VS Code 中打开{"mcpServers":{"dreamworkhq-dreamwork":{"type":"http","url":"https://mcp.dreamworkhq.com/mcp"}}}{"mcpServers":{"dreamworkhq-dreamwork":{"serverUrl":"https://mcp.dreamworkhq.com/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
69| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| sort | enum | 否 | 排序顺序;未指定时按相关性排序。relevance | newest | pay_high | pay_low |
| bonus | boolean | 否 | |
| limit | integer | 否 | 页面大小,未指定时为 10。游标会保留其生成时的页面大小。 |
| query | string | 否 | 在个人匹配职位池中进行全文搜索。 |
| aiRole | boolean | 否 | 仅限 AI 职位。 |
| cursor | string | 否 | 上一页返回的 `nextCursor`。请发送相同的筛选条件和排序方式,否则请求将被拒绝。 |
| equity | boolean | 否 | |
| function | string | 否 | 职位职能标签,使用逗号分隔以表示并集,例如 "Engineering,Product"。如果标签未知,将随列表一并拒绝请求。 |
| industry | string | 否 | 雇主所属行业,例如 "Pharma & Biotech"。名称未知时,请求将随列表一并拒绝。 |
| location | string | 否 | 城市、地区或国家/地区;地名数据库无法解析的地点将被拒绝。 |
| maxSalary | integer | 否 | 年度薪酬上限(整数美元)。 |
| minSalary | integer | 否 | 年度薪酬下限(整数美元),例如 200000。未公布薪酬的职位将被排除。 |
| seniority | string | 否 | 职级标签,逗号分隔,按并集处理:Junior、Mid-Level、Senior、Staff+、Director+。这是硬性筛选条件:仅当用户明确表示只想要某个职级时才传入,因为存储的职级只用于匹配排序,不会排除其他职级。未分类职级的职位也会被排除。 |
| addedAfter | string | 否 | 仅包含 Dreamwork 在此 ISO 日期时间之后首次发现的职位。 |
| healthcare | boolean | 否 | |
| internship | boolean | 否 | 仅限实习、合作教育项目和学徒职位。 |
| remoteOnly | boolean | 否 | workSettings ["remote"] 的简写。 |
| workSettings | array | 否 | 要保留的工作设置,按并集处理;未注明的设置视为现场办公。 |
| minMatchPercent | integer | 否 | 要保留的最低匹配百分比,范围为显示的 40-97。 |
| postedWithinDays | integer | 否 | 雇主发布职位的日期须在指定天数以内。 |
详细介绍
@dreamworkhq/mcp
Dreamwork 的 MCP 服务(Dreamwork):面向 AI Agent 的求职工具。任何 MCP 客户端(Claude Desktop、Cursor、MCP Inspector)都可以使用它来查找职位、为职位排序、定制申请材料、提交申请,并长期跟踪一个人的求职结果。
此服务是一个轻量网关:它通过 HTTPS 调用 Dreamwork API,自身不访问任何数据库。传输方式为 stdio,stdout 只承载 JSON-RPC 帧。
安装
无需安装步骤。MCP 客户端会按需通过 npx 运行它。以下示例使用 npx -y @dreamworkhq/mcp。
启动时无需密钥或账户。不设置 DREAMWORK_API_KEY 时,服务会以免费访客模式运行,Agent 可以搜索并查看所有职位列表。
以下 env 代码块是可选的;需要使用账户工具时再添加密钥(见访客模式和 API 密钥)。
配置
Claude Desktop
在 claude_desktop_config.json 中添加一项
(macOS 上的路径为 ~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"dreamwork": {
"command": "npx",
"args": ["-y", "@dreamworkhq/mcp"],
"env": {
"DREAMWORK_API_KEY": "sk_..."
}
}
}
}
编辑后重启 Claude Desktop。将凭据放入 env 代码块中。不要使用 shell 或 dotenvx run -- … 之类的环境变量加载器来封装 command:对于 stdio 服务,封装程序打印到 stdout 的任何横幅都会破坏 JSON-RPC 流,并导致工具调用挂起。
Cursor 和其他客户端
任何 stdio MCP 客户端都可使用。Cursor 使用上面所示的相同配置:将命令指向 npx -y @dreamworkhq/mcp,并在环境中传入 DREAMWORK_API_KEY。使用 Inspector 检查配置:
DREAMWORK_API_KEY=sk_... npx @modelcontextprotocol/inspector npx -y @dreamworkhq/mcp
托管端点
Dreamwork 也通过 Streamable HTTP 在 https://mcp.dreamworkhq.com/mcp 提供这些工具。在 claude.ai、Claude Desktop 或 ChatGPT 中,将此 URL 添加为自定义连接器,然后登录 Dreamwork。无需安装,也无需粘贴密钥。授权页面会询问要授予连接器哪些作用域。
能够设置请求标头的客户端也可以向同一 URL 发送 API 密钥。在 Claude Code 中:
claude mcp add --transport http dreamwork https://mcp.dreamworkhq.com/mcp \
--header "Authorization: Bearer sk_..."
访客模式和 API 密钥
访客模式免费且无需账户。未设置密钥时,服务会以访客模式启动,并公开只读工具:browse_listings、get_listing、get_platform_context 和 get_upgrade_link。服务会告知 Agent 当前处于访客模式,因此 Agent 可以说明目前可用的功能。账户工具会返回简短的“无 API 密钥”提示,并列出获取密钥的步骤。
托管端点在握手时也采用相同方式。无需登录即可成功调用 initialize 和 tools/list,并运行这四个工具。所有账户工具及任何其他方法都会返回带有 WWW-Authenticate 的 401 响应,以便连接器通过 OAuth 登录。API 拒绝的 Bearer 凭据也会返回相同的 401 响应。
获取 API 密钥需要免费账户。基于简历进行职位匹配排序、保存职位、定制材料、管理求职流程、收发招聘人员邮件以及提交申请,都需要 API 密钥。任何 Dreamwork 账户都可以生成密钥,包括免费方案。你的方案决定密钥的速率限制和使用额度。登录
dreamworkhq.com,打开 Profile,然后选择 MCP(或使用 Agents 页面上的 Get a key 按钮),再将密钥(格式为 sk_...)设置为 DREAMWORK_API_KEY,并重启 MCP 客户端。
生成密钥时,你可以选择它的权限:读取、写入、提交申请、发送邮件。个人资料页面默认选中全部四项;取消勾选 Agent 不应执行的操作。密钥的权限可以少于你的权限,但绝不会更多。
环境变量
| 变量 | 必需 | 默认值 | 用途 |
|---|---|---|---|
DREAMWORK_API_KEY | 账户工具需要 | 无 | API 密钥(sk_...)。解锁工作流、简历、申请、拓展联系、个人资料和面试功能。 |
DREAMWORK_API_URL | 否 | https://api.dreamworkhq.com | 覆盖 API 端点(本地开发/自托管)。 |
DREAMWORK_UNREAD_NOTICES | 否 | 开启 | 设为 off(也可设为 0/false/no)后,工具结果将不再附带有关未读招聘人员邮件的提示。每 5 分钟最多检查一次;检查不会将邮件标记为已读。 |
JOBLESS_API_TOKEN 和 JOBLESS_API_URL 仍可作为 DREAMWORK_API_KEY 和
DREAMWORK_API_URL 的向后兼容别名;新配置请优先使用 DREAMWORK_
名称。
遥测
为衡量使用情况,服务会在首次运行时生成一个匿名随机安装 ID(UUID),并将其存储在
操作系统的状态目录中
(Linux/macOS 上为 $XDG_STATE_HOME/dreamwork/install-id、~/.local/state/dreamwork/install-id,
Windows 上为 %LOCALAPPDATA%\dreamwork\install-id)。这是一个随机值,绝不会根据主机名、用户名或任何机器属性生成。它用于统计访客(未经身份验证)使用情况中的唯一安装数。该值会在运行时写入你的机器,不会在构建或发布时写入。
设置以下任一环境变量即可选择退出:
DREAMWORK_TELEMETRY=0(也可设为false/no/off)DO_NOT_TRACK=1(标准选择退出方式;也可设为true/yes/on)
停用遥测后,不会生成、读取或发送安装 ID。
工具
典型流程:浏览公开索引,将职位保存到求职流程,定制材料,提交申请,然后跟踪回复和面试。请先调用
get_platform_context。它会说明 Dreamwork 能做什么,帮助 Agent
选择合适的工作流。
公开(无需密钥):
browse_listings、get_listing、get_market_pulse、get_platform_context、get_top_hiring_companies、get_upgrade_link
**助手操作:**Dreamwork 助手注册表中的每项能力各对应一个工具,均通过与网站内助手相同的授权流程和操作记录账本运行。涉及重要操作的工具首次调用时会暂停,并返回摘要和 confirmationToken;若要继续,请使用完全相同的参数再次发送该令牌。
apply、cancel_apply、confirm_hypothesis、dismiss_match、edit_answer、edit_cover_letter、edit_resume、forget_hypothesis、format_resume、generate_pack、get_application_documents、get_application_readiness、get_application_status、get_autopilot_settings、get_autopilot_status、get_career_record、get_communication_preferences、get_inbox、get_job、get_pack_status、get_pipeline、get_preferences、get_resume_download_link、get_resume_work_history、get_task、get_unread_reminders、get_updates_since、get_usage、import_job、list_dismissed_matches、list_matches、list_tasks、mark_applied_offsite、mark_messages_read、move_pipeline、parse_preferences_text、prepare_applications、remember_hypothesis、replace_application_document、reply_to_recruiter、restore_match、restore_material、save_application_answers、save_job、set_autopilot、start_checkout、strengthen_application、undo_last、update_autopilot_settings、update_communication_preferences、update_preferences
**直接产品工具:**背后没有注册表操作的路由。
add_contact、add_jobs、generate_outreach、generate_resume、get_application_materials、get_generated_resumes、get_profile、get_stats、list_contacts、list_interviews、reopen_application_materials、update_application_materials、update_profile、upload_resume
该服务还提供五个提示词,Claude Desktop 和
Claude Code 等宿主会将其显示为命令:morning_brief(查看上次检查以来的变化)、find_and_prepare(搜索、挑选并准备材料)、
apply_to_prepared(填写任何缺失的答案、审核并确认提交申请)、interview_prep 和 autopilot_setup。
部分工具说明:
- 首次调用任何工具都不会发送邮件或提交申请。
apply、reply_to_recruiter、set_autopilot、update_autopilot_settings和start_checkout会返回held、摘要和confirmationToken,只有在你使用完全相同的参数再次发送该令牌时才会执行。 - 1.3.0 移除了已由注册表操作取代的 1.2.0 工具:
search_jobs和list_applications(使用get_pipeline;browse_listings可搜索 索引)、apply_to_job(apply)、add_listing_to_pipeline(save_job)、skip_job(dismiss_match)以及send_outreach。回复和重新提交申请请使用reply_to_recruiter和apply。 - 1.5.1 之后的版本不再包含
list_escalations和resolve_escalation,托管服务也不再提供它们。Dreamwork 不再将申请作为升级事项退回给你,因此没有需要列出或处理的事项。 update_application_materials和reopen_application_materials面向 API 允许加入的 Applications 推出批次用户;其他用户会收到 API 自身的拒绝响应。get_stats汇总已登录求职者自己的求职流程数据,因此与其他工具一样需要密钥。
关键权限范围
API 密钥包含生成时选择的权限范围:
| 权限范围 | 可执行的操作 |
|---|---|
read | 所有读取操作:匹配、流程、收件箱、状态、用量、回执 |
write | 轻量且排队的写入操作:保存、忽略、移动、编辑材料、偏好设置、结账链接 |
apply | 提交申请、取消仍在发送中的申请,以及 Autopilot |
send | 给招聘人员发送邮件 |
权限范围会限制所有操作路径,包括直接路由。
write 是进行任何更改的最低要求:不含该权限的密钥无法执行任何非
GET、HEAD 或 OPTIONS 请求,因此只读密钥无法通过直接调用路由重写
个人资料或移动看板。不含 apply 的密钥无法执行 apply,也无法调用
POST /jobs/:id/apply、快速申请路由和升级路由。不含 send 的密钥无法
执行 reply_to_recruiter,也无法调用 POST /outreach/send 和
POST /conversations/:id/reply。直接调用会返回 403,包含
api_key_scope_required、所需的权限范围以及说明下一步操作的消息;
助手操作会返回 action_not_authorized,并提供相同的下一步说明。
密钥永远无法管理密钥、轮换会话令牌或删除账户。无论密钥持有哪些权限,
这些操作都会返回 403 session_required。
个人资料页面会默认选中全部四种权限范围;未指定权限范围的密钥申请会获得
read 和 write。在权限范围功能推出前创建的密钥会保留原有的所有权限。
故障排查
- 工具调用卡住 / 超时,但握手成功。 有内容正在向 stdout 写入非 JSON-RPC
字节。确保
command未由会打印横幅的环境加载器或 shell 包装,并更新到最新版本 (npx -y @dreamworkhq/mcp@latest;如果缓存了旧版本,可使用rm -rf ~/.npm/_npx清除 npx 缓存)。stdout 必须只包含协议帧。所有服务日志都会写入 stderr。 - 所有账户工具都提示 "No API key"。
DREAMWORK_API_KEY未传递到进程。 请确认它位于客户端配置的env块中。 - 所有账户工具都提示 "API key rejected"。 密钥已传递到服务端,
但已过期或被撤销。请在 Profile 下创建新密钥,然后进入 MCP,
用新密钥替换
DREAMWORK_API_KEY,并重启 MCP 客户端。 - Apply 返回
missing_onboarding_fields或missing_profile_fields。 工具会报告缺失字段,以及可修正各字段的 Dreamwork 路径。请在 Dreamwork 中补全这些信息后重试;失败的请求并未启动申请。
开发
pnpm --filter @dreamworkhq/mcp check # typecheck
pnpm --filter @dreamworkhq/mcp build # emit dist/
pnpm --filter @dreamworkhq/mcp test # unit tests
stdio 入口位于 src/stdio.ts;工具定义位于
src/mcp.ts;HTTP API 客户端位于 src/client.ts。
服务仅读取进程环境中的配置,不会加载 .env 文件。本地开发时,请在
shell 中导出变量(例如
DREAMWORK_API_URL=http://127.0.0.1:3000 pnpm --filter @dreamworkhq/mcp stdio)。
包边界决策、工具注册惯例
(registerDreamworkTool)、错误和版本管理规则,以及延后审核的触发条件,
均记录在 ARCHITECTURE.md 中。上方的工具目录会通过
test/tool-catalog.test.ts 与已注册工具进行差异检查。
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。