关于 Trackly CLI
面向求职者的职位搜索与申请跟踪 CLI,也可作为 MCP 服务供 AI 客户端使用。支持多种职位筛选、申请状态管理,并提供受控的申请表填写流程。
主要功能
- 01搜索职位并按地区、类型等筛选
- 02管理求职申请状态与偏好
- 03通过 CLI 或 MCP 连接 AI 客户端
- 04提供本地与托管 MCP 工具
- 05在提交前停止的申请表填写流程
适用场景
- 01查找特定地区或职能的职位
- 02筛选远程、实习或签证支持岗位
- 03在求职流程中更新申请状态
- 04填写已保存职位的申请表并自行审核提交
MCP 相关
提供托管远程 MCP 服务和本地 stdio 服务,供兼容客户端搜索职位、管理申请等;两种服务的工具范围有所不同。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://mcp.usetrackly.app/api/mcpclaude mcp add --transport http trackly-app-trackly https://mcp.usetrackly.app/api/mcp{"mcpServers":{"trackly-app-trackly":{"type":"http","url":"https://mcp.usetrackly.app/api/mcp"}}}在 Cursor 中打开{"servers":{"trackly-app-trackly":{"type":"http","url":"https://mcp.usetrackly.app/api/mcp"}}}在 VS Code 中打开{"mcpServers":{"trackly-app-trackly":{"type":"http","url":"https://mcp.usetrackly.app/api/mcp"}}}{"mcpServers":{"trackly-app-trackly":{"serverUrl":"https://mcp.usetrackly.app/api/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://mcp.usetrackly.app/api/mcp需要授权工具
详细介绍
trackly-cli
专为 AI Agent 打造的求职跟踪命令行工具。
搜索来自 5,400 多家公司的 250K+ 个职位,覆盖 40 多种 ATS 类型。跟踪申请、获取 AI 驱动的推荐,并管理求职进度——既可通过终端操作,也可使用 Claude、ChatGPT、Cursor 和其他兼容 MCP 的 AI Agent。
两种连接方式
🚀 选项 1:在 Claude co-work、Claude Desktop、ChatGPT 中一键连接(无需安装)
直接在 AI 工具中使用 Trackly——无需任何配置:
- 打开 Settings → Connectors → Add custom connector
- URL:
https://mcp.usetrackly.app/api/mcp - 点击 Add → 使用 Google 登录 → 完成
适用于:Claude co-work(网页)、Claude Desktop、ChatGPT Connectors,以及任何支持远程/streamable-http 连接器的 MCP 客户端。
💻 选项 2:安装 CLI(适用于 Cursor、Windsurf 或终端)
npm install -g trackly-cli # may need: sudo npm install -g trackly-cli
trackly login
trackly jobs --function product
前置条件:Node.js 20.20+ 或 22.22+(建议使用 LTS 版本)。在 macOS 上使用官方
.pkg安装程序时,全局 npm 安装可能需要sudo。
概览
5,400 多家公司 | 250K+ 个职位 | 40 多种 ATS 类型 | CLI + MCP | 58 个本地 MCP 工具 + 55 个托管 MCP 工具
CLI 命令
trackly jobs # List jobs
trackly jobs --remote # Filter remote jobs (sets usStates=REMOTE)
trackly jobs --region us # Filter by region (us, non_us, all, or a region tag: europe, canada, remote, ...)
trackly jobs --job-type internship # Filter by employment type (full_time, internship, all)
trackly jobs --work-arrangement hybrid,remote # Filter by work arrangement independently
trackly jobs --function product # Filter by function
trackly jobs --sponsorship exclude_no # Visa sponsorship filter (all, exclude_no, only_yes)
trackly jobs --company 243 # Filter by company ID
trackly job 1234 # Get job details
trackly jobs 1234 # Alias for job details
trackly companies # List companies
trackly companies search "fintech" # Semantic company search
trackly search "fintech" # Alias for semantic company search
trackly stats # Show metrics
trackly status # Alias for stats
trackly preferences # Show discovery preferences and experience limits
trackly preferences experience product=2 strategy=5 # Replace role-specific limits
trackly preferences experience clear # Turn role-specific experience filtering off
trackly apply 1234 # Mark as applied
trackly save 1234 # Save a job
trackly dismiss 1234 # Dismiss a job
trackly ask "PM jobs in SF" # Natural language search (20/day)
trackly contacts "Stripe" # Search contacts at a company
trackly brief 1234 # Get network brief for a job
trackly referral start 1234 # Start a referral campaign
trackly referral status 1234 # Check referral campaign status
trackly company-brief 243 # Get company brief (--refresh to regenerate)
trackly company-workspace 243 # Full company workspace view
trackly request-company "eBay" # Request a company be added (--url, --notes optional)
trackly api-key create # Generate API key
trackly api-key list # List API keys
trackly config # Show current CLI config
trackly config --api-key trk_xxx # Save an API key for future commands
trackly version # Show installed version
trackly whoami # Show current user
trackly logout # Clear credentials
trackly agent setup --client both # Install Trackly Apply for Codex + Claude Code
trackly agent doctor # Verify setup, profile, resume, and compatibility
trackly agent diagnose-path /path/to/upload.pdf --errno ENOSPC --json # Diagnose one exact local path
为任意命令添加 --json 可获取 JSON 输出。必要时,可将 --api-key <key> 或 --base-url <url> 用作一次性全局标志。
trackly preferences --json 仅返回 success、experienceFilterV2Available 和 preferences。可用性标志用于控制此客户端是否可以编辑特定职位的限制;它并不表示职位流或提醒已启用相关限制。每次更新都会在写入前检查该标志和最新的偏好设置版本。
MCP 服务设置
托管版(Claude co-work、Claude Desktop、ChatGPT)
无需安装。在 AI 工具中打开 Settings → Connectors → Add custom connector,然后输入:
https://mcp.usetrackly.app/api/mcp
出现提示时,使用 Google 登录。查看完整图文指南 →
Claude Code 可通过 OAuth 使用同一托管服务:
claude mcp add --transport http trackly https://mcp.usetrackly.app/api/mcp
OAuth 登录是所有客户端的默认方式。API 密钥为可选项,仅供无法完成交互式登录的无头客户端使用:使用 Settings → API Keys 中的密钥发送 Authorization: Bearer trk_...。
远程连接可使用 55 个托管工具。这些工具与本地服务共享搜索、公司、状态和 Apply 工具,并额外提供 trackly_chat;下方列出的 4 个仅限本地的工具无法通过远程连接使用。托管版设置和工具详情请访问 usetrackly.app/connector。
本地(通过 stdio 使用 CLI,适用于 Cursor / Windsurf / Claude Code)
在 macOS 上进行 Agent 辅助填写表单时,请同时安装公开技能和本地 MCP:
trackly agent setup --client codex # or claude / both
trackly agent doctor
对于现有 MCP 配置或 Cloud harness,请使用 trackly agent setup --client both --skills-only。此命令会为两个原生客户端安装相同的校验和技能,不会调用它们的 MCP 命令,也不会更改身份验证。CLI 0.20.1 附带通用技能 4.9.1;其策略修订版使用相同的数字版本,并取代个人修订版。该策略接受有文档说明的 markHandoff() 保证,要求调用使用 await、检查当前标签页是否准确,并在后续轮次重新验证。这些观察结果绝不会作为已返回的持久化回执报告。浏览器功能和手动点击 Submit 仍是独立要求;安装并不会让 Linux 浏览器获得支持。单独安装的 trackly:trackly-apply 插件通过其插件管理器更新;插件 1.1.1 附带相同的浏览器和资料查找策略。此设置命令不会修补插件缓存。
该技能使用 Trackly 账户中的资料和默认简历,只询问缺失信息,填写用户批准的已保存职位,并始终在点击 Submit 前停止。“填写接下来的 N 个”会继续处理原始的、按最近时间优先的 Check Later 快照,直到 N 个未经过身份验证的表单已持久保存并可供你手动审核;身份验证拦截和排除项会单独报告,且不会计入目标数量。明确要求“检查接下来的 N 条记录”时,仍会使用一个固定且不可变的批次。每次运行开始时都会从 Trackly 获取支持信息:Greenhouse 完全支持,Ashby 和 Lever 尽力支持,另外 27 个已命名的 ATS/服务提供商类别使用受限引导模式。只有当 Trackly 将雇主托管的未知表单绑定到已验证的公司域名时,才会处理这些表单。由 LinkedIn 托管的表单和未经验证的来源仍仅支持手动处理;单独保存的外部申请 URL 则根据其自身的 ATS 和来源策略进行评估。
引导模式会谨慎地默认拒绝。遇到凭据输入、OTP/电子邮件验证、CAPTCHA/真人验证、意外的雇主或来源、仅提交的页面转换,或任何无法观察到已提交状态的字段时,Agent 都会停止。trackly agent doctor 会检查本地技能、MCP 注册、协议兼容性、声明的浏览器/计算机使用配置、资料完整性和默认简历元数据。实时语义浏览器功能和准确的简历文件内容会在真实运行开始时验证。
Claude Code 单行命令
claude mcp add --scope user trackly -- trackly mcp
或者使用等效命令:
claude mcp add-json --scope user trackly '{"command":"trackly","args":["mcp"]}'
Claude Code 手动配置
添加到项目级 .mcp.json:
{
"mcpServers": {
"trackly": {
"command": "trackly",
"args": ["mcp"]
}
}
}
Cursor / Windsurf
添加到 .cursor/mcp.json 或 ~/.cursor/mcp.json(Windsurf 也使用相同的架构):
{
"mcpServers": {
"trackly": {
"command": "trackly",
"args": ["mcp"]
}
}
}
然后在上述任一客户端中使用自然语言:
- “帮我找金融科技公司的 PM 职位”
- “有哪些远程工程职位?”
- “将职位 1234 标记为已申请”
搜索筛选条件和更新
trackly_search_jobs 支持多种职位和地区、美国各州和加拿大各省、实习教育程度、收藏公司、职位发布时间范围、美元年薪下限、增量同步、工作安排、签证担保和求职流程状态。具体值和示例。
搜索默认返回 20 个职位;最多可请求 100 个,并使用 offset 翻页。
对于签证担保,“排除否”会保留“是”和未提及。使用 exclude_no;only_yes 会排除签证担保情况未知的职位。如果用户意图不明确,请向用户确认。薪资下限筛选也会保留薪资未知或不可比较的职位。系统不支持行业/专业领域/字面搜索筛选条件,使用时会被拒绝。
若要在未全局安装软件包的情况下运行本地服务,请运行 npx -y trackly-cli mcp。
Codex 用户可运行 codex mcp add trackly -- npx -y trackly-cli mcp;Cursor 和
Windsurf 可使用 "command": "npx", "args": ["-y", "trackly-cli", "mcp"]。
请先使用 npx -y trackly-cli login 进行身份验证,或配置 TRACKLY_API_KEY。
已有的全局安装需要运行 npm install --global trackly-cli@latest。
更新后,请重启 MCP 进程/客户端并刷新工具发现。
如需更新原生技能和市场插件,请参阅版本发布和更新指南。
托管版本和本地版本彼此独立:当前客户端架构为准。
MCP 工具参考
本地 stdio 服务(trackly mcp)会注册以下 58 个工具。其中 4 个仅限本地使用,因为它们会在你的计算机上运行检查:
trackly_diagnose_local_path、trackly_lint_application_text、
trackly_validate_apply_resume_upload 和 trackly_validate_apply_tab_keep_set。
托管服务不包含这 4 个工具,并会增加 trackly_chat,共提供 55 个托管工具。
| 工具 | 描述 |
|---|---|
| trackly_search_jobs | 按职位、地区、州/省、实习级别、收藏状态、发布时间、最低年薪(美元)、签证担保、工作安排和申请流程状态搜索 |
| trackly_get_job | 按 Trackly ID 获取详情,并提供职位可用性和重试指引 |
| trackly_search_companies | 语义化公司搜索 |
| trackly_list_companies | 列出所有已跟踪的公司 |
| trackly_get_stats | 职位跟踪指标和状态计数 |
| trackly_get_preferences | 读取有范围限制的发现偏好、编辑可用时间并保存修订 |
| trackly_update_experience_limits | 原子性地替换特定职位对岗位注明的最低年限要求的限制 |
| trackly_update_status | 将职位标记为已申请、已收藏或已忽略 |
| trackly_ask | 使用自然语言搜索职位(每天 20 次) |
| trackly_get_job_brief | 获取人脉简报,并提供可用性和重试指引 |
| trackly_contacts_at_company | 搜索特定公司的联系人 |
| trackly_get_company_workspace | 完整的公司工作区(职位、联系人、招聘经理、推广活动) |
| trackly_request_company | 请求将一家公司添加到 Trackly(待处理请求限 5 个) |
| trackly_get_apply_queue | 获取用户已批准、可执行的职位 |
| trackly_get_application_profile | 获取带版本信息的个人资料答案及其来源 |
| trackly_get_profile_onboarding | 获取架构及缺失问题 |
| trackly_update_application_profile | 使用乐观并发保存指定范围内的答案;撤销敏感信息存储需要两步确认 |
| trackly_start_apply_execution | 启动可访问、按目标数量计数的申请执行 |
| trackly_get_active_apply_execution | 在恢复旧版批次之前,恢复当前活动执行 |
| trackly_get_apply_execution | 读取权威进度漏斗和不可变的子批次 |
| trackly_list_recoverable_apply_executions | 上下文丢失后,列出范围受限、成员精确的可恢复候选项 |
| trackly_recover_exact_apply_members | 仅恢复一个经过明确确认的候选成员集合,不使用替代项 |
| trackly_list_apply_review_handoffs | 重新发现某次执行中活动的、不含值的审核交接凭据 |
| trackly_claim_apply_review_handoff | 在协调处理前认领并分类一个精确的审核交接组 |
| trackly_get_apply_execution_snapshot | 获取当前执行成员和必需个人资料键的精简、有界投影 |
| trackly_resume_parked_apply_member | 明确恢复一个已暂停成员,以执行新的非变更访问探测 |
| trackly_approve_apply_execution_resume | 为未变更的执行快照批准一个精确的恢复身份 |
| trackly_advance_apply_execution | 以事务方式创建下一批符合条件、冻结 accessKnowledge 的不可变批次 |
| trackly_list_apply_access_deferments | 列出持久化的用户访问延后项 |
| trackly_defer_apply_access | 根据 Trackly jobId 持久化职位或公司的访问延后项 |
| trackly_clear_apply_access_deferment | 清除一个已发现的用户访问延后项 |
| trackly_record_apply_execution_dispositions | 记录有类型、不含值的访问分类 |
| trackly_stop_apply_execution | 停止执行,但不更改已收藏职位的状态 |
| trackly_create_apply_batch | 冻结一个按发布时间从近到远排列的精确已批准批次 |
| trackly_cancel_apply_batch | 在用户明确确认后,使旧版固定批次失效 |
| trackly_get_active_apply_batch | 上下文丢失后,恢复最新的、未过期的活动批次 |
| trackly_get_apply_batch | 使用不透明分页读取已冻结的成员列表 |
| trackly_claim_apply_batch | 获取或续租批次变更租约 |
| trackly_checkpoint_apply_batch | 批量记录经过脱敏的检查点和人工操作 |
| trackly_bind_apply_surface | 将初始或恢复的浏览器界面绑定到现有运行和精确的职位申请 URL |
| trackly_record_apply_surface_evidence | 记录当前纪元的清单、缺失标签页、关闭回执和关闭后缺失证据 |
| trackly_record_apply_submission_evidence | 记录经过脱敏的提交请求、成功页面、用户确认或服务提供商回执证据 |
| trackly_approve_apply_batch_resume | 为当前冻结运行集批准一个精确的默认恢复操作 |
| trackly_certify_apply_batch_truth | 在满足所有其他审核准备条件后,认证最终答案和措辞指纹 |
| trackly_start_apply_run | 启动或复用手动提交的浏览器运行 |
| trackly_get_apply_evidence | 获取汇总的、不含值的测试版证据和发布准备情况 |
| trackly_get_apply_protocol | 获取当前工作流和兼容性规则 |
| trackly_report_apply_observation | 发送经过脱敏的 ATS 机制反馈 |
| trackly_lint_application_text | 在本地检查申请文本,并仅返回不含值的违规项和草稿哈希 |
| trackly_diagnose_local_path | 在本地诊断确切的相关文件系统路径,不删除文件 |
| trackly_validate_apply_tab_keep_set | 在本地根据调用方提供的完整清单,验证精确的预期/保留标签页集合;不控制浏览器,也不远程发送标签页 ID |
| trackly_validate_apply_resume_upload | 在本地验证适配器能力和有序的、不含值的附件证明阶段 |
| trackly_report_apply_observations | 批量发送最多 20 条带租约、绑定批次且经过脱敏的观察记录 |
| trackly_record_application_outcome | 记录审核结果或已确认的提交结果 |
| trackly_record_application_outcomes | 批量记录最多 20 条带租约的批次结果,并按成员处理冲突 |
| trackly_prepare_resume | 准备供上传的私有、限时有效简历文件 |
| trackly_verify_prepared_resume | 在附加前重新核验已确认的简历 |
| get_more_tools | 报告缺失的功能,以便 Trackly 改进其 MCP 接口 |
身份验证
选项 1:Google OAuth(推荐)
trackly login
打开浏览器以使用 Google 登录。令牌会本地存储在 ~/.trackly/config.json 中。
Trackly 目前正通过限量邀请制逐步开放新会员注册。现有会员可以照常使用 OAuth 和 API 密钥。如果新账户暂不符合资格,CLI 会返回专门的邀请提示,而不是建议反复尝试登录;可在 usetrackly.app/early-access 申请后续名额。
选项 2:API 密钥
现有会员可以在防火墙环境、无头服务或 CI 中使用 API 密钥:
- 在 usetrackly.app 登录
- 前往 设置 → API 密钥 → 创建
- 保存密钥:
trackly config --api-key trk_xxxxxxxxxxxxxxxxxxxx
或者在每条命令中传入:
trackly --api-key trk_xxxxxxxxxxxxxxxxxxxx jobs --json
或者将其设为环境变量:
export TRACKLY_API_KEY=trk_xxxxxxxxxxxxxxxxxxxx
trackly jobs
从 CLI 生成密钥
如果你已通过 OAuth 登录,可以无需访问 Web 应用即可创建密钥:
trackly api-key create --name "my-script"
trackly api-key list
其他配置
trackly config --clear-api-key # Clear stored API key
trackly config --base-url http://127.0.0.1:3000 # Point at a different backend
对比
| 功能 | CLI | Web 应用 | 公共 API |
|---|---|---|---|
| 搜索职位 + 筛选 | 是 | 是 | 是 |
| 申请/保存/忽略 | 是 | 是 | 是 |
| AI 驱动的搜索 | 是(trackly ask) | 是 | 是 |
| MCP 集成 | 是(58 个本地工具) | -- | -- |
| 是否需要浏览器 | 否 | 是 | 否 |
| 最适合 | 终端 + AI Agent | 可视化浏览 | 自定义集成 |
Web:usetrackly.app | API 文档:usetrackly.app/developers
常见问题
如何在终端跟踪求职申请?
安装 trackly-cli(npm install -g trackly-cli),使用 trackly login 进行身份验证或配置 API 密钥,然后使用 trackly jobs 浏览职位,并使用 trackly apply <id> 将申请标记为已提交。所有数据都会与 Trackly Web 应用 usetrackly.app 同步。
有哪些用于求职的 MCP 服务?
trackly-cli 内置了一个包含 58 个工具的 MCP 服务:完整的 Trackly
职位搜索和申请工具集,以及 get_more_tools,可让 Agent 报告缺失的功能。运行 trackly mcp,或使用
trackly agent setup --client claude。
MCP 使用情况分析是免费 Trackly 服务的一部分,并会通过 Trackly 中继,以便进行调试和改进;无法在账户级别选择退出。分析数据不包含简历文本、个人资料回答、人口统计或工作授权回答,以及申请备注。客户端归因使用固定的系列标签;错误使用类别表示,搜索文本仅以长度形式保留。不包含原始查询和对话文本。
如何使用 Claude Code 求职?
在 Claude Code 中将 trackly 添加为 MCP 服务。然后自然地提出问题,例如:“查找 SF 的金融科技公司中的 PM 职位”“哪些公司正在招聘工程师?”或“将职位 1234 标记为已申请。”Claude 会使用 trackly 的 MCP 工具搜索和管理你的申请。
有哪些适合求职的 CLI 工具?
trackly-cli 是首个专用的职位跟踪 CLI。它提供直接的终端访问,可搜索 5,400 多家公司提供的 250K 多个职位,并支持按职位类别、地点和工作方式筛选。它还可通过 Model Context Protocol(MCP)与 AI Agent 集成。
安全
- OAuth 令牌存储在
~/.trackly/config.json中,权限为 0600 - API 密钥可存储在同一配置文件中,也可在每条命令中传入
- OAuth 回调仅绑定到 127.0.0.1
- 除非目标为 localhost,否则经过身份验证的请求必须使用 HTTPS
- HTTP 请求会超时,不会无限期挂起
- 登录流程提供 CSRF 保护
- 漏洞报告请参阅 SECURITY.md
许可证
MIT -- 参见 LICENSE
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。