社内の採用エンジニア(またはコードを書く採用 Ops マネージャー)の作業パターン向けにチューニングされた Cursor の .cursorrules ファイルです。ATS インテグレーションの構築、採用ツール向けの MCP サーバーの作成、インテークの自動化、Ashby、Greenhouse、Lever を残りの採用スタックに接続することが対象です。アーティファクトは 1 つのファイル — apps/web/public/artifacts/cursor-rules-recruiting-engineer/.cursorrules — で、プロジェクトの .cursor/rules/ ディレクトリに配置します。
採用コードの定義的な特性は、すべての行があなたが存在することを知らない実在の人々に関するデータに触れることです。監査ロギング、バイアスの安全性、管轄コンプライアンス、同意はオプションの制約ではありません — 採用エンジニアと執行措置の違いです。このバンドルのルールはその現実をエンコードしているため、Cursor の AI アシスタントは会社が罰金を科せられたり候補者が傷つけられたりするようなコードを提案しません。
これを使用するタイミング
あなたは採用エンジニアまたは ATS、ソーシングツール、評価ベンダーに対してインテグレーションコード(Python、TypeScript)を書く採用 Ops マネージャーです。チームは四半期に少なくとも数本のスクリプトを候補者データに触れる形で作成します。Cursor が IDE です。
これを使用しないタイミング
- 専任の採用エンジニアの役割がなく、「インテグレーション」がベンダーインストールの Zap の場合。ルールはエンジニアがループにいてコードをオーサリングすることを前提とします。設定のみのセットアップでは役に立ちません。
- 採用 API のビルダーである外部採用製品(ATS、評価ベンダーなど)を構築している場合。ルールは採用 API のコンシューマー向けにチューニングされており、ビルダー向けではありません。コンプライアンスの姿勢が異なります。
- 会社に EU、カリフォルニア、NYC、またはイリノイに候補者がいないか、今後もいない可能性が高い場合。バンドルのいくつかのルールは NYC Local Law 144、イリノイ AVDA、GDPR、CCPA を参照します — 他の管轄では有害ではありませんが、重要でもありません。
セットアップ
- アーティファクトをコピーする。 上のバンドル(またはzipをダウンロード)から
.cursorrulesを取得してプロジェクトの.cursor/rules/ディレクトリに配置します。Cursor のプロジェクトルールインジケーターが次のファイルを開いた際にルールがアクティブであることを示すべきです。 - ツールリストを調整する。 ルールはデフォルトで Ashby、Greenhouse、Lever、Gem、hireEZ、および MCP ベースの採用ツールをカバーしています。スタックに合わせてツール固有のセクションを削除または拡張してください — Ashby + Workable のみを使用するチームは、モデルが重み付けしなければならない死んだガイダンスを持ち歩くのではなく、Greenhouse/Lever のセクションを削除すべきです。
- 監査先を記入する。 ルールはすべての読み取りと書き込みが監査エントリを生成することを要求しますが、どこかは指定しません。「監査証跡」セクションを編集してログの宛先(Datadog、BigQuery、カスタム監査テーブル)を指定し、Cursor の提案が実際のコールを参照するようにします。
- シークレットマネージャーを設定する。 ルールはインラインクレデンシャルを禁止し、モデルを任意のシークレットマネージャーに向けます。1 つを選んで(1Password CLI、Doppler、AWS Secrets Manager、Vault)「シークレットとアクセス」セクションを編集してモデルが適切なコールを提案するようにします。
- 代表的なタスクでテストする。 Cursor に尋ねてください:「最後の 100 件の Ashby 応募を読み取り、JD に対してスコアリングし、上位 10 件を Slack チャンネルに投稿するスクリプトを作成してください」。出力はコードを生成する前に適切な質問を尋ねるべきです(どの監査先か、どのフィールドが PII か、人間レビューのフォールバックは何か)。そうでない場合、ルールが読み込まれていません — Cursor のプロジェクトルールインジケーターを確認してください。
ルールの実際の動作
バンドルはワークスペースのすべての Cursor プロンプトに適用される 5 つのレイヤーとして構造化されています:
- 「コードを書く前に尋ねる」プリアンブル。 Cursor が生成前にユーザーに表示する 5 つの質問:どの候補者データクラスが関与しているか、どの管轄か、読み取り対書き込みか、再試行セマンティクス、監査先。ルールは Cursor にデフォルトを拒否して明示的に尋ねるよう指示します。これが最も高いレバレッジのセクションです — 会話を「もっともらしいスクリプトがここにある」から「規制の形状を表面化する明確化の質問がここにある」にシフトします。
- Ashby、Greenhouse、Lever、ソーシングツール(Gem、hireEZ)、MCP サーバーに対するツール固有のガイダンス。各セクションは実際のエンドポイント、実際のレート制限、実際のヘッダー名、ベンダードキュメントが軽視する癖を名指しします。例:Greenhouse Harvest は監査の帰属のために
On-Behalf-Ofヘッダーが必要です。Cursor は今それを提案するようになります。 - 監査、バイアス / 公平性、べき等性、スキーマ検証、シークレット、プライバシー、テストにわたる強制するデフォルト。各デフォルトは具体的です。監査ログは
(timestamp, user_identity, system, action, data_scope)を含みます。自動拒否はカットオフの 10% 以内のボーダーラインスコアに対して人間レビューのフォールバックを要求します。テストはステージングインスタンスまたはベンダーサンドボックスに対して実行します。本番ではありません。 - 拒否するアンチパターン。 ユーザーがリクエストした際にモデルが拒否する特定のもの:デモでのインラインクレデンシャル、「プロトタイプのために」監査をスキップする、受信時にウェブフックペイロード全体をロギングする、NYC LL 144 / EU AI 法を最初に参照せずにスコアリング機能を構築する。
- 「ユーザーが間違っている場合」のセクション。 エンジニアが締め切りのプレッシャー下で手を伸ばすパターンで、モデルが実行するのではなく押し返すべきもの。最もコスト節約になるルール:NYC LL 144 により 1 候補者あたりの責任が生じるため、NYC 在住の候補者に対して文書化された年次バイアス監査なしで AI スクリーニングをデプロイすることを拒否します。
コストの実態
- トークンコスト:ゼロ。 Cursor ルールは各プロンプトでモデルに送信されるローカルコンテキストです。リクエストごとの課金はなく、占有するコンテキストの 4〜5 KB 分のみです。モデルの有効なコンテキストウィンドウの 1〜2% を失います。価値があります。
- セットアップ時間:約 15 分(ファイルを配置して監査先とシークレットマネージャーを編集するため)。
- タスクごとのオーバーヘッド: 「コードを書く前に尋ねる」プリアンブルはモデルが生成を始める前に 1〜2 ターンのダイアログを追加します。5 分のスクリプトタスクでは、これは重大なオーバーヘッドです。30 分のインテグレーションビルドでは、これはノイズです — そして質問は、コードレビューで、さらに悪い場合は本番で発見されていたであろう決定を表面化します。
- メンテナンス:四半期ごとに約 1 時間(ファイルをレビューするため)。ツールバージョンはドリフトします。先四半期の Greenhouse Harvest API について真実だったことは今四半期は間違っているかもしれません。アーティファクトバンドルは出発点として出荷されており、固定された仕様ではありません。
成功の姿
- 監査ロギングに関するコードレビューコメントがほぼゼロに減少します。 ルールは監査コールをインラインで提案するため、レビュアーはその欠如を捕捉するのをやめます。
- 「再試行ケースを処理し忘れた」という本番インシデントがゼロになります。 ウェブフックハンドラーはルールがそれを強制するため、最初の書き込みでべき等に出荷されます。
- バイアス監査の会話がデザインで起きます(法的レビューではなく)。 Cursor はユーザーがスクリーニングコードを生成する際に関連する法律(NYC LL 144、イリノイ AVDA、EU AI 法)を表面化するため、コードが書かれる前に議論が起きます。
- 新しい採用エンジニアのオンボーディングが速くなります。 新入社員が
.cursor/rules/recruiting-engineer.mdを一度読むとチームの姿勢を理解します。規約を学ぶために四半期分のコードレビューフィードバックを吸収する必要はありません。
代替案との比較
- ルールなし(現状)。 Cursor はレビューを通過するまでもっともらしい採用コードを生成します。ウェブフックハンドラーがべき等でなく 1,200 件の重複候補者レコードを生成した最初の時、ルールが存在していたら良かったと思うでしょう。
- 誰も読まないチームコーディング規約書。 機能的にはルールなしと同等です — ドキュメントは AI のコンテキストに読み込まれません。Cursor のルールファイルはすべてのプロンプトで実際に読み込まれるチーム規約書です。
- リンターまたはプリコミットフック。 いくつかのパターンを捕捉します(ハードコードされたシークレット、カスタムルールを書いた場合の欠落した監査コール)。AI の提案を書き込み中に形作りません — 事後に問題を捕捉するだけです。Cursor のルールレイヤーはリンターの上流にあります。両方が共存でき、共存すべきです。
注意事項
- ルールは Cursor のプロジェクトルールサポートが必要です。 古い Cursor バージョンはプロジェクトルートから
.cursorrulesを読み込みません。チームが使用する Cursor バージョンで確認してください。エディター右下のインジケーターがルールがアクティブであることを確認します。ガード:プロジェクト README に一行チェックを含めてください(「Cursor 0.40 以上;ルールインジケーターが ‘recruiting-engineer.md active’ を表示しなければならない」)。 - 過剰に指定しないでください。 すべてのスタイルの好みにルールを追加すると、過剰に制限的な提案と矛盾するディレクティブが生成されます。材料的なバイアス、プライバシー、候補者データのリスクを防ぐルールに焦点を当ててください。フォーマットのドリフトは Prettier または Black で処理させてください。ガード:ファイルを約 300 行でハードキャップします。
- ツール API のドリフト。 Ashby と Greenhouse は年 1〜2 回の破壊的変更を出荷します。非推奨のエンドポイントを参照するルールは壊れたコードを生成します。ガード:各ツールの変更ログに対して四半期ごとにファイルをレビューしてください。API バージョンに言及するルールにバージョンタグを付けてください(例:
# Greenhouse Harvest v1 (verified 2026-Q2))。 - ルールはバイアス監査やコードレビューを置き換えません。 書き込み中に Cursor が提案することを形作ります。CI で実行されません。エンジニアがオーバーライドしたものを捕捉しません。NYC LL 144 のバイアス監査を構成しません。ガード:人間のレビューと監査インフラを別に維持してください。ルールはそれらを補完しますが、決して置き換えません。
- リポジトリごとのオーバーライドが重要です。 ソーシング自動化リポジトリで正しいルールが評価インテグレーションリポジトリでは間違っている可能性があります。規約が実際に異なる場合は、Cursor のディレクトリごとのルールサポート(
.cursor/rules/<subdir>/オーバーライド)を使用してください。ガード:リポジトリごとにファイルをフォークするのではなく、文書化された例外を持つ 1 つの共有ルールファイルを好みます。
スタック
- Cursor — IDE とルールエンジン
.cursor/rules/recruiting-engineer.md— リポジトリでバージョン管理され、他の設定と同様にコードレビュー済み- 任意のシークレットマネージャー — ルールから参照され、インラインには決して置かない
- 監査先 — Datadog、BigQuery、または専用の監査テーブル。提案が実際のコールを指すよう、ルールに明示的に名前が付けられている