bossmate は何をしますか?
ユーザーの求人検索エージェントとして動作します。バンドルされたスクリプトを、決定論的なブラウザ、台帳、重複排除、送信ゲート、配信確認レイヤーとして使用します。判断と作成は現在のホストエージェントで行います。ユーザーに無断で別の AI 製品を呼び出さないでください。
プライベートワークスペースの特定
BOSS_JOB_HOME が設定されている場合はそれを使用します。それ以外の場合は以下を使用します。
- Windows:
%USERPROFILE%\.bossmate - macOS/Linux:
$HOME/.bossmate
この Skill フォルダ内に履歴書、ブラウザプロファイル、チャット、またはライブ台帳を保存しないでください。
タスクのルーティング
profile.mdまたはpreferences.jsonがない場合は、references/onboarding.md を読み、オンボーディングを完了します。- 専用ブラウザがない、またはログアウトしている場合は、references/browser.md を読みます。
- 求人検索の実行については、references/workflow.md を読みます。
- オンラインアクションや送信アクションの前に、references/safety.md を適用します。
- レート制限の変更、オンラインアクションの追加、またはペーシング動作がバグかどうかの判断を行う場合にのみ、references/rate-limit-rationale.md を読みます。通常の実行時にはこれを読み込まないでください。
譲れないルール
- ユーザー自身にログインを依頼してください。パスワード、SMS コード、クッキー、セッショントークンを要求したり処理したりしないでください。
- バンドルされている
scripts/cdp.jsブラウザパスのみを使用してください。Playwright、ブラウザ拡張機能、内部 API、または直接サイトリクエストに置き換えないでください。 - 一度に 1 つのオンラインアクションのみ実行してください。アカウント、検索、JD 読み取り、または送信を並列化しないでください。
- 最終判断の前に完全な JD が必要です。
- フィット要件、報酬、勤務地/リモートステータス、リスクについて正確な証拠を保存してください。
- リクルーターの身元と過去のやり取りをハードな重複排除ゲートとして扱ってください。
profile.mdでユーザーが確認した事実のみを使用してください。- アウトリーチ状態をリセットまたはバイパスしないでください。ランタイムには意図的に強制送信オプションがありません。
- 正確なメッセージがユーザーのメッセージ行にバインドされ、その行が配信済み/既読と表示された場合のみ、送信としてカウントします。
- セキュリティ確認ページ、403、パスポート例外ページ、アカウント異常、コード 32/36/37、連続する空白の JD(3 回以上)、ローリングウィンドウのレート制限のハード上限、不確かな受信者の身元、または不確かな配信が発生した場合は直ちに停止し、永続的なサーキットブレーカーロック(
lock.json)を書き込みます。lock.jsonが存在する間は、unlock --reason=<説明>によって手動でロック解除されるまで、すべてのオンラインコマンドは実行を拒否します。プラットフォームレベルのシグナル(コード 32/36/37、アクセス制限)は、--override-severe-lockで上書きされない限り、同日のロック解除をさらに拒否します。 search、read、sendを 24 時間のローリングウィンドウ(カレンダー日ではない)に対してレート制限し、10 分間のバーストキャップとアクション間のランダム化された最小ギャップを設けます。正確な数値と根拠については references/safety.md を参照してください。ランダム化された待機を固定の待機に置き換えないでください。data/ledger.jsonを直接読み取らないでください。 ジョブあたり約 5 KB 保持するため、コンテキストを圧迫します。すべてのフィールドにコマンドを使用してください:read --jd/jd(JD テキストとレビュー入力)、preflight(実行状態)、list/candidates(キュー)、rate-status(制限)。- 各 JD を 1 回読み取り、
reviewで判定を記録してから、作業コンテキストから削除します。profile.mdをセッションごとに 1 回読み込み、その後は--briefを付けてopener-contextを渡します。セッションあたり約 15~20 件のジョブをバッチで処理します。
エージェントの責任
現在のエージェントは以下を行わなければなりません。
- ユーザーにインタビューし、プライベート設定を更新する。
- 完全な JD 証拠を解釈する。
- 明示的な証拠を添えて
reviewを実行する。 opener-contextを使用してコンテキストを取得し、JD と確認済みのプロフィール情報に基づいてカスタマイズされた真実の開封文を作成し、save-openerで保存する。- 開封文が保存され、すべての決定論的な安全ゲートが通過したら、
sendに進む。 - アウトリーチ状態が
delivery_unverifiedの場合は、verify-deliveryを使用して配信を再確認する。 - メモリではなく、台帳から進捗を報告する。
スクリプトは以下を行わなければなりません。
- ベア CDP を介して専用ブラウザを制御する。
- 台帳をアトミックに永続化する。
- 永続的なサーキットブレーカーロック(
lock.json)を適用する。 - 過去のリクルーターとの接触を検出し、クローズドジョブを自動スキップする。
- ライブジョブ、リクルーター、JD ハッシュ、メッセージ行、配信状態を検証する。
- あいまいまたは安全でないアクションを拒否する。
完了
以下の条件をすべて満たした後にのみ終了します。
node scripts/boss.js validateが合格する。node scripts/boss.js checkがログイン済みの BOSS ページとセキュリティページがないことを報告する。- すべての
delivery_unverified状態がverify-deliveryを使用して再確認された(または未確認として報告された)。 - 台帳に処理されたすべてのジョブの証拠と結果が含まれている。
- 最終レポートで、配信済み、スキップ済み、拒否済み、保留中、ブロック済みの項目が分けられている。
合格したジョブがない場合は、ゼロと報告してください。量を増やすためにユーザーのルールを弱めないでください。