Communityライティング&編集github.com

yinren112/bossmate

BossMate — AI に各 JD をしっかり読ませてから、応募するか判断させます。Codex、Claude Code、OpenCode、Hermes、WorkBuddy に対応。

bossmate とは?

BossMate は、ユーザーに代わって求人検索エージェントとして動作する AI スキルです。このスキルは、専用のスクリプト群(ブラウザ制御、台帳管理、重複排除、送信ゲート、配信確認)を介して、求人情報の収集、評価、および応募メッセージの送信を自動化します。主な特徴として、各求人詳細(JD)を完全に読み込んでから応募判断を行うことで、質の低い大量応募を防止します。また、同一企業への重複応募を防ぐ強力な重複排除機能、レート制限によるサーバー負荷の軽減、サーキットブレーカーロックによる異常時の安全停止など、堅牢な設計がなされています。Codex、Claude Code、OpenCode、Hermes、WorkBuddy などの主要な AI エージェントプラットフォームで動作し、ユーザーのプロフィール情報に基づいてカスタマイズされた開封文を作成します。すべての操作は安全に行われ、パスワードやクッキーなどの機密情報をエージェントが直接扱うことはありません。

対応✓Claude Code✓Codex CLI~Cursor✓OpenCode
npx skills add yinren112/bossmate

Installed? Explore more ライティング&編集 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

bossmate は何をしますか?

ユーザーの求人検索エージェントとして動作します。バンドルされたスクリプトを、決定論的なブラウザ、台帳、重複排除、送信ゲート、配信確認レイヤーとして使用します。判断と作成は現在のホストエージェントで行います。ユーザーに無断で別の AI 製品を呼び出さないでください。

プライベートワークスペースの特定

BOSS_JOB_HOME が設定されている場合はそれを使用します。それ以外の場合は以下を使用します。

  • Windows: %USERPROFILE%\.bossmate
  • macOS/Linux: $HOME/.bossmate

この Skill フォルダ内に履歴書、ブラウザプロファイル、チャット、またはライブ台帳を保存しないでください。

タスクのルーティング

  1. profile.md または preferences.json がない場合は、references/onboarding.md を読み、オンボーディングを完了します。
  2. 専用ブラウザがない、またはログアウトしている場合は、references/browser.md を読みます。
  3. 求人検索の実行については、references/workflow.md を読みます。
  4. オンラインアクションや送信アクションの前に、references/safety.md を適用します。
  5. レート制限の変更、オンラインアクションの追加、またはペーシング動作がバグかどうかの判断を行う場合にのみ、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 ハッシュ、メッセージ行、配信状態を検証する。
  • あいまいまたは安全でないアクションを拒否する。

完了

以下の条件をすべて満たした後にのみ終了します。

  1. node scripts/boss.js validate が合格する。
  2. node scripts/boss.js check がログイン済みの BOSS ページとセキュリティページがないことを報告する。
  3. すべての delivery_unverified 状態が verify-delivery を使用して再確認された(または未確認として報告された)。
  4. 台帳に処理されたすべてのジョブの証拠と結果が含まれている。
  5. 最終レポートで、配信済み、スキップ済み、拒否済み、保留中、ブロック済みの項目が分けられている。

合格したジョブがない場合は、ゼロと報告してください。量を増やすためにユーザーのルールを弱めないでください。

関連スキル