关于 job-application-operator
面向 Agent 的求职申请执行技能,每次处理一个已选定的申请。它结合私密资料与文档策略,检查表单字段,并控制提交和结果记录。
主要功能
- 01加载私密资料与文档策略
- 02盘点并分类申请表字段
- 03按策略填写表单并控制提交
- 04匹配文档并检查上传
- 05记录申请结果
适用场景
- 01检查并分类申请表
- 02填写获准字段并匹配文档
- 03遇到未知必填项或阻碍时停止
- 04记录申请处理结果
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ arthurzakirov/ opportunityos --skill job-application-operator安装后在 Claude Code 中输入/job-application-operator确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/application-log.schema.yamlapplication-profile.example.yamlapplication-profile.schema.yamldocument-manifest.example.yamldocument-manifest.schema.yamlfield-answer-policy.example.yamlfield-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 架构,包含身份信息、联系方式、地址、就业、住房和通用表单信息。领域文件仅包含职位专属扩展信息:公民身份/工作授权政策、薪资政策、地点偏好、工作模式偏好、文档路径、可复用的求职答案、默认字段政策和提交模式偏好。
浏览器后端
按以下顺序使用可用的浏览器自动化方式:
- 原生 Codex 浏览器/计算机控制功能(如可用)。
agent-browserCLI。- Playwright MCP。
- 浏览器测试框架备用方案。
绝不使用 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 和佣金。
对于工作授权和签证问题,只能回答私有政策明确涵盖的国家。不要推断政策未涵盖的国家。
如果确切的合同通知期未知,不要编造。如果政策提供了保守答案,请使用该答案。如果表单要求填写确切日期,而政策无法计算,请停止。
文件上传政策
使用文件清单。绝不要将文件名或路径硬编码。
对于每个上传字段:
- 读取标签和接受的文件类型。
- 根据清单规则匹配标签。
- 仅上传匹配的文件。
- 如果无法确定匹配项,请停止。
- 如果请求的文件缺失,请停止。
- 默认不要上传额外文件。
支持的文件角色: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": ""
}
除非私有策略明确允许,否则不要记录完整的敏感答案。
申请工作流
- 确保已引导设置私有上下文。
- 加载个人资料、文档清单和字段策略。
- 验证所有文件。
- 打开一个职位申请 URL。
- 识别平台。
- 列出所有字段。
- 对字段进行分类。
- 根据地点、工作模式、职位和国家筛选条件检查职位。
- 填写策略允许的所有字段。
- 上传匹配的文档。
- 跳过未知的可选字段。
- 遇到未知的必填字段时,停止或降低优先级。
- 如果模式为辅助审核,请在提交前停止。
- 如果模式为自动提交且满足所有必需条件,则提交。
- 记录结果。
- 如果获得批准,保存新的可重复使用字段映射。
输出
返回申请 URL、平台、已知时的公司和职位、使用的模式、已填写的字段、已跳过的字段、未知的必填字段、自定义问题、已上传的文档、阻碍事项、是否已提交、日志路径和下一步操作。