filter_conditions はリクエストボディ上のオプションの配列です。各要素は、1 つの複数値フィルターをデフォルトの OR(「いずれかにマッチ」)から AND(「すべてにマッチ」)へ、あるいはその逆へと切り替えます。記載されていないフィルターはデフォルトのままです。
スキーマ
各要素の
key と operator はどちらも必須です。operator のみのエントリは黙って無視されます — グローバルなオーバーライド設定はありません。なぜ重要か
デフォルト演算子が OR なのは、多くのプロスペクティングが広い再現を求めるためです: 「いずれかの国の人物」「いずれかのバーティカルがタグ付けされた企業」。一方で、高精度のターゲティング — 「Salesforce + HubSpot + Marketo を すべて 使う」 — には AND が必要です。
選択を誤ったときのコスト:
- AND が欲しかったのに OR: 過剰再現になり、1 タグだけマッチした企業まで含まれてしまう。気づきやすいが結果品質を損ないます。
- OR が欲しかったのに AND: 再現不足になり、複数値の AND は実世界の配列にすべての要求値が揃わないため、ほぼ 0 行になることが多い。気づきやすく、クエリが壊れて見えます。
&&(オーバーラップ)、AND なら @>(包含)。どちらもインデックスに優しく、コストの違いはクエリ遅延ではなく 結果サイズ に現れます。
サポートされるキー
正確なキーセットは呼び出すエンドポイントによります:| キー | /companies/search | /people/search | /companies/advertisements/search | デフォルト | and の意味 |
|---|---|---|---|---|---|
technologies | ✓ | ✓ | — | OR | リストの全テクノロジーを保有 |
categories | ✓ | ✓ | — | OR | 全カテゴリでタグ付け |
verticals | ✓ | ✓ | — | OR | 全バーティカルに属する |
vertical_categories | ✓ | ✓ | — | OR | 全バーティカルカテゴリに属する |
vertical_sub_categories | ✓ | ✓ | — | OR | 全サブカテゴリに属する |
keywords | ✓ | ✓ | — | OR | 説明が全キーワードを含む |
places | ✓ | ✓ | — | OR | 全場所に所在 |
exclude_places | ✓ | ✓ | — | OR | 全場所から除外 |
advertisement_target_locations | ✓ | — | — | OR | 広告が全国を対象(企業エンドポイント) |
advertisement_exclude_target_locations | ✓ | — | — | OR | 広告が全国を除外 |
advertisement_search_terms | ✓ | — | — | OR | 広告コピーが全語句を含む |
job_exclude_locations | ✓ | — | — | OR | 求人が全ロケーションを除外 |
social_media | — | ✓ | — | OR | 人物が全 SNS アカウントを保有 |
target_locations | — | — | ✓ | OR | 広告が全国を対象(広告エンドポイント) |
exclude_target_locations | — | — | ✓ | OR | 広告が全国を除外 |
レシピ
- 全テクノロジーを保有(企業)
- いずれかのロケーション + 除外
- マルチリージョン広告キャンペーン
- 複数スタック企業の人物
目標: Python、PostgreSQL、Kubernetes を すべて 使っている企業 — 1 つだけではなく。
filter_conditions の要素を外せば、3 つの いずれか を含む検索に拡張されます。よくある間違い
key を忘れて operator だけ送る
key を忘れて operator だけ送る
グローバルな「デフォルト演算子」スイッチはありません。各エントリは具体的なフィルターを指定する必要があります:
エントリが組み合わさると思い込む
エントリが組み合わさると思い込む
エントリはキーごとに独立した上書きで、相互に連鎖しません。
technologies と verticals を両方並べても、両者の間にブール式は構築されません。各々が自分の配列の演算子を設定するだけです。フィルターキー間 の組み合わせは常に AND(全フィルターがマッチする必要)です。filter_conditions で異なるフィルター次元を OR 結合することはできません。本当に「異なるフィルターの OR」検索が必要なら、2 回リクエストを投げてクライアント側でマージしてください。長い配列で AND を使う
長い配列で AND を使う
AND は
column @> ARRAY[…] — すべての値が必要です。8 件以上になるとほぼ常に 0 行になります。実世界のタグ付けは疎なため。AND オーバーライドの配列は 2〜4 値に抑え、探索的・カテゴリレベルのフィルタリングは OR で。/people/search の企業フィルターでキーを間違える
/people/search の企業フィルターでキーを間違える
/people/search では人物 API 名は company_places / company_locations です。しかし filter_conditions[].key の中では エンジン名 — places、locations を使います。再マッピングは filter_conditions 参照前に内部で完了します。関連項目
フィルター概要
メンタルモデル —
filter_conditions が初めての方はここから。人物 + 企業フィルター
/people/search に企業フィルターを重ねる方法、キー再マッピングを含む。企業検索リファレンス
/companies/search の完全なリクエストスキーマ(company_filter_conditions 含む)。人物検索リファレンス
/people/search の完全なリクエストスキーマ(people_filter_conditions 含む)。
