mcpField
J
job-application-operator

job-application-operator

github.com/arthurzakirov生产力0157 次安装5 周前更新
代码仓库

关于 job-application-operator

面向 Agent 的求职申请执行技能,每次处理一个已选定的申请。它结合私密资料与文档策略,检查表单字段,并控制提交和结果记录。

主要功能

  1. 01加载私密资料与文档策略
  2. 02盘点并分类申请表字段
  3. 03按策略填写表单并控制提交
  4. 04匹配文档并检查上传
  5. 05记录申请结果

适用场景

  1. 01检查并分类申请表
  2. 02填写获准字段并匹配文档
  3. 03遇到未知必填项或阻碍时停止
  4. 04记录申请处理结果

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/arthurzakirov/opportunityos --skill job-application-operator

安装后在 Claude Code 中输入/job-application-operator确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
application-log.schema.yaml
application-profile.example.yaml
application-profile.schema.yaml
document-manifest.example.yaml
document-manifest.schema.yaml
field-answer-policy.example.yaml
field-answer-policy.schema.yaml

详细介绍

求职申请操作助手

目的

在申请职位、检查申请表、填写申请字段、上传文档、保存已学习的答案或记录申请结果时,使用此技能。

此技能用于申请执行阶段:处理一个已选定的职位/申请 URL、私人资料政策、文档、记录以及提交或停止的决定。在此阶段之前,请使用职位发现、跟踪或数据库技能,准确选定一个申请 URL。

此技能通用,不得包含个人信息。个人信息从 private-context-bootstrap 预先准备的私有文件中加载。

数据源

除非环境变量另有指定,否则从以下路径加载私人数据:

AGENTDESK_PROFILE_PATH="$HOME/.config/AgentDesk/private/job-applications/application-profile.yaml"
AGENTDESK_DOCUMENT_MANIFEST_PATH="$HOME/.config/AgentDesk/private/job-applications/document-manifest.yaml"
AGENTDESK_FIELD_POLICY_PATH="$HOME/.config/AgentDesk/private/job-applications/field-answer-policy.yaml"
AGENTDESK_APPLICATION_LOG_PATH="$HOME/.config/AgentDesk/private/job-applications/application-log.jsonl"

运行申请工作流前,请确认这些文件存在并验证其内容。如果文件不存在,请调用 private-context-bootstrap 工作流。

参考架构和虚构示例位于 references/。创建或验证私有文件时,请加载这些内容。

职责分离

此技能包含流程规则、安全规则、字段分类规则、加载规则、记录规则和提交规则。

共享的个人资料使用 bitwarden-personal-profile 架构,包含身份信息、联系方式、地址、就业、住房和通用表单信息。领域文件仅包含职位专属扩展信息:公民身份/工作授权政策、薪资政策、地点偏好、工作模式偏好、文档路径、可复用的求职答案、默认字段政策和提交模式偏好。

浏览器后端

按以下顺序使用可用的浏览器自动化方式:

  1. 原生 Codex 浏览器/计算机控制功能(如可用)。
  2. agent-browser CLI。
  3. Playwright MCP。
  4. 浏览器测试框架备用方案。

绝不使用 CAPTCHA 破解服务、隐身浏览器补丁、代理轮换、虚假身份、账户规避或自动绕过 MFA/登录墙。

申请模式

私人字段政策可以定义:

  • inventory_only:检查字段并记录所需操作。不要填写或提交。
  • assisted_review:填写安全且已知的字段。提交前停止并询问用户。
  • auto_submit_when_fully_answerable:仅当下方所有条件均满足时提交。
  • never_submit:绝不提交,即使所有字段均已知。

除非私人政策允许自主提交,否则默认使用辅助审核模式。

只有当 submission.defaultMode 为 auto_submit_when_fully_answerable,且所有必填字段、文档、筛选条件和阻碍检查均通过时,才允许自主提交。

如果私人字段政策明确设置了 autoFill: true 和 autoSubmitAllowed: true,则无需询问即可填写并提交标准已知字段。

自动提交要求

只有满足以下所有条件时,Agent 才可以提交:

  • 职位符合用户定义的筛选条件
  • 所有必填字段均依据已验证的政策作答
  • 所有必需的上传文件均可用
  • 未出现 CAPTCHA、MFA、登录或账户创建方面的阻碍
  • 未出现未知的必填自定义问题
  • 未出现法律、出口管制、国籍或资格方面的特殊情况
  • 没有字段与用户的私人政策相冲突
  • 根据流程中展示的可用说明或条款,当前网站未禁止预期的自动化模式

必须停止的情况

出现以下任一情况时,始终停止并询问用户:

  • CAPTCHA
  • MFA
  • 需要登录,且不存在有效会话
  • 需要创建账户
  • 付款或账单
  • 不明确的法律问题
  • 出口管制或国防相关的国籍限制
  • 要求认证私有政策中未提及的事项
  • 未知的必答问题
  • 缺少必需文件
  • 上传失败
  • 页面错误
  • 字段含义不明确,且会影响法律、薪酬或资格认定
  • 浏览器自动化需要隐身、代理、CAPTCHA 求解或规避条款
  • 政策冲突

如果出现必填的公司特定动机或求职信问题,且没有已批准的可复用答案,请勿编造答案。将申请标记为需人工处理或降低优先级。

字段处理政策

将每个字段归类为以下一种:

  • safe_known:政策允许时,可根据个人资料填写,无需询问。
  • sensitive_known:存在明确政策时可以填写,但必须谨慎记录。
  • strategic_known:存在政策时可以填写。
  • unknown_required:必填且无法依据政策回答;停止。
  • unknown_optional:选填且无法依据政策回答;跳过,除非政策另有规定。
  • custom_question:公司特定问题或长篇问答。
  • voluntary_disclosure:人口统计或自愿披露信息。
  • document_upload:文件上传字段;使用文件清单。
  • legal_edge_case:法律含义不明确或超出范围;停止。
  • blocker:阻碍完成申请。

safe_known 示例:姓名、电子邮箱、电话号码、地址、一般就业信息,以及共享个人资料中包含的其他字段(如果政策允许)。

sensitive_known 示例:性别、残障状况、退伍军人/军人身份、国籍、公民身份和人口统计调查答案。

strategic_known 示例:薪资期望、是否愿意搬迁、工作模式偏好、出差意愿、入职日期、通知期、工作授权和签证赞助。

仅在私有政策明确对应了问题或允许使用通用答案时,才使用可复用答案。

公司特定动机

公司特定动机字段通常投资回报率较低。

如果必填字段要求针对公司定制答案,例如“为什么选择本公司?”,且没有已批准的可复用答案:

  • 归类为 custom_question
  • 将申请标记为 manual_or_deprioritized
  • 除非用户政策指出该公司有特殊价值,否则不要花太多时间起草
  • 如果是选填字段,除非政策另有规定,否则留空

政策特定决策

不要在此技能中决定薪资、地点、搬迁、工作授权、签证、通知期或入职日期。请加载私有政策。

如果薪资字段要求的薪酬类型与政策定义的不同,请停止。不同的薪酬类型包括年度税前基本工资、总薪酬、时薪、月薪、薪资范围、股权期望、OTE 和佣金。

对于工作授权和签证问题,只能回答私有政策明确涵盖的国家。不要推断政策未涵盖的国家。

如果确切的合同通知期未知,不要编造。如果政策提供了保守答案,请使用该答案。如果表单要求填写确切日期,而政策无法计算,请停止。

文件上传政策

使用文件清单。绝不要将文件名或路径硬编码。

对于每个上传字段:

  1. 读取标签和接受的文件类型。
  2. 根据清单规则匹配标签。
  3. 仅上传匹配的文件。
  4. 如果无法确定匹配项,请停止。
  5. 如果请求的文件缺失,请停止。
  6. 默认不要上传额外文件。

支持的文件角色:resume、degree、transcript、references、supportingBundle、coverLetter、portfolioPdf 和 other。

字段清单输出

对于每份申请,编写字段清单:

applicationUrl:
platform:
roleTitle:
company:
fieldInventory:
  - label:
    type:
    required:
    options:
    currentValue:
    fieldClass:
    matchedProfileKey:
    action:
    confidence:
documentsRequested:
blockers:
submissionMode:
finalStatus:

学习新的答案

如果用户提供了可重复使用的新答案,请询问是否应保存。

将其保存到私有字段策略,而不是技能中。包含规范键、别名、答案、字段类型、敏感度、允许的上下文、自动填充权限、提交权限和学习日期。

绝不保存密码或一次性验证码。

日志记录

每个申请向申请日志追加一个 JSON 对象:

{
  "timestamp": "",
  "applicationUrl": "",
  "company": "",
  "roleTitle": "",
  "platform": "",
  "mode": "",
  "status": "",
  "fieldsFilled": [],
  "fieldsSkipped": [],
  "unknownRequiredFields": [],
  "customQuestions": [],
  "documentsUploaded": [],
  "blockers": [],
  "submitted": false,
  "notes": ""
}

除非私有策略明确允许,否则不要记录完整的敏感答案。

申请工作流

  1. 确保已引导设置私有上下文。
  2. 加载个人资料、文档清单和字段策略。
  3. 验证所有文件。
  4. 打开一个职位申请 URL。
  5. 识别平台。
  6. 列出所有字段。
  7. 对字段进行分类。
  8. 根据地点、工作模式、职位和国家筛选条件检查职位。
  9. 填写策略允许的所有字段。
  10. 上传匹配的文档。
  11. 跳过未知的可选字段。
  12. 遇到未知的必填字段时,停止或降低优先级。
  13. 如果模式为辅助审核,请在提交前停止。
  14. 如果模式为自动提交且满足所有必需条件,则提交。
  15. 记录结果。
  16. 如果获得批准,保存新的可重复使用字段映射。

输出

返回申请 URL、平台、已知时的公司和职位、使用的模式、已填写的字段、已跳过的字段、未知的必填字段、自定义问题、已上传的文档、阻碍事项、是否已提交、日志路径和下一步操作。

评论

支持 Markdown