job-application-operator について
エージェント向けの求人応募実行スキルで、選定済みの応募を1件ずつ扱います。プライベートなプロフィールや書類のポリシーに基づき、フォーム確認、送信制御、結果記録を行います。
主な機能
- 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 1 件、プライベートプロフィールポリシー、書類、記録、および送信するか中止するかの判断です。この段階に進む前に、求人を選ぶために検索、追跡、またはデータベースのスキルを使用し、応募 URL を 1 件だけ選択してください。
このスキルは汎用です。個人情報を含めてはなりません。個人情報は、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:すべてのフィールドが既知であっても、送信しません。
プライベートポリシーで自律的な送信が許可されていない限り、デフォルトでは assisted_review を使用します。
自律的な送信は、submission.defaultMode が auto_submit_when_fully_answerable であり、すべての必須項目、書類、フィルター、ブロッカー確認に合格した場合に限り許可されます。
プライベートフィールドポリシーで autoFill: true および autoSubmitAllowed: true が明示的に設定されている場合、標準的な既知のフィールドは、確認を求めずに入力して送信できます。
自動送信の要件
以下のすべての条件を満たす場合に限り、エージェントは送信できます。
- 求人がユーザー定義のフィルターを通過している
- すべての必須項目に、検証済みのポリシーに基づいて回答している
- 必要なアップロードファイルがすべて揃っている
- 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オブジェクトを1つずつ応募ログに追加してください。
{
"timestamp": "",
"applicationUrl": "",
"company": "",
"roleTitle": "",
"platform": "",
"mode": "",
"status": "",
"fieldsFilled": [],
"fieldsSkipped": [],
"unknownRequiredFields": [],
"customQuestions": [],
"documentsUploaded": [],
"blockers": [],
"submitted": false,
"notes": ""
}
非公開ポリシーで明示的に許可されていない限り、機密性の高い回答を完全な形で記録しないでください。
応募ワークフロー
- 非公開コンテキストが初期化されていることを確認します。
- プロフィール、ドキュメントマニフェスト、フィールドポリシーを読み込みます。
- すべてのファイルを検証します。
- 求人応募URLを1つ開きます。
- プラットフォームを特定します。
- フィールドを一覧にします。
- フィールドを分類します。
- 求人が勤務地、勤務形態、職種、国のフィルターに合致するか確認します。
- ポリシーで許可されたすべてのフィールドに入力します。
- 条件に合う書類をアップロードします。
- 不明な任意フィールドはスキップします。
- 不明な必須フィールドがある場合は停止するか、優先度を下げます。
- モードが「レビュー支援」の場合は、送信前に停止します。
- モードが「自動送信」で、必須条件をすべて満たしている場合は送信します。
- 結果を記録します。
- 承認された場合、新しい再利用可能なフィールドマッピングを保存します。
出力
応募URL、プラットフォーム、判明している場合は会社名と職種、使用したモード、入力したフィールド、スキップしたフィールド、不明な必須フィールド、カスタム質問、アップロードした書類、ブロッカー、送信の有無、ログのパス、次のアクションを返してください。