企業検索API
POST /companies/searchで、企業属性と求人条件を組み合わせて企業を検索します。利用前にAPIキーと認証を設定してください。
リクエスト例
東京都、従業員50人以上、Webサイトありの企業を従業員数の多い順に取得します。
printf 'header = "X-API-Key: %s"\n' "$SALESBRAIN_API_KEY" |
curl -sS --config - "$SALESBRAIN_API_BASE_URL/companies/search" \
-H "Content-Type: application/json" \
-d '{
"filter": {
"company": {
"prefectureId": {"in": [13]},
"employeeCount": {"gte": 50},
"hasWebsite": true
}
},
"sort": { "field": "company.employeeCount", "order": "desc" },
"limit": 25,
"offset": 0,
"includeTotalResults": true
}'
都道府県や業界のIDは、マスターデータから取得します。
よく使う検索条件
| 目的 | フィールド |
|---|---|
| 企業名の部分一致 | filter.company.name.anyContains |
| 法人番号 | filter.company.corporateNumber.in |
| 都道府県 | filter.company.prefectureId.in |
| 業界 | filter.company.industry.in, filter.company.industry.subIn |
| 従業員数 | filter.company.employeeCount.gte/lte |
| 拠点数 | filter.company.workLocationCount.gte/lte |
| 事業概要のキーワード | filter.company.summary.anyContains/noneContains |
| 連絡先の有無 | filter.company.hasPhone, filter.company.hasEmail, filter.company.hasWebsite |
| 従業員の増加 | filter.company.employeeDiff6m.gte/lte, filter.company.employeeDiff12m.gte/lte |
| 求人タイトル | filter.job.title.anyContains/noneContains |
| 求人の取得日 | filter.job.createdAt.gte/lte |
検索条件は filter.company(企業属性)と filter.job(求人属性)に分けます。企業検索の job は、指定条件を満たす求人を持つ企業を表します。
異なる項目は初期状態でAND評価されます。ORで結ぶ場合は filter.combination に or を指定します。条件をまとめる場合は filter.filterGroups(最大5グループ)を使い、各グループ内にも company / job と combination を指定します。文字列は anyContains / allContains / noneContains、IDは in / notIn、数値・日付は gte / lte を使います。同じ項目内の演算子は常にANDです。
ページング
limit: 1回に返す件数。1〜1000、初期値25offset: 先頭から読み飛ばす件数。初期値0。offset + limitは500,000以下includeTotalResults: 総件数が必要な場合はtrue(初期値)。falseならtotalはnull
最初はlimitを5〜25件にして、検索条件が正しいことを確認してください。
並び替え
sort.fieldに項目名、sort.orderにascまたはdescを指定します。省略時は企業名の昇順です。
{
"sort": { "field": "company.employeeDiff6m", "order": "desc" }
}
拠点数の多い順に並べる場合は、sort.fieldへcompany.workLocationCountを指定します。
{
"sort": { "field": "company.workLocationCount", "order": "desc" }
}
拠点数の意味
workLocationCountは、求人票に書かれた勤務地の住所から推定しています。同じ企業・同じ住所の求人は、何件あっても1拠点です。
たとえば、東京店で10件、大阪店で5件の求人が出ていても、集計対象となる住所が2つならworkLocationCountは2です。
番地まで特定できない住所や、フルリモート・客先常駐・単発求人などしかない住所は数えません。同じ住所に雇用主の拠点と推定できる求人が1件でもあれば数えます。派遣・職業紹介の許可を持つ企業など、雇用主の拠点か判断できない場合も対象外です。そのため、実際の拠点数より少ない場合があります。求人から拠点を見つけられない場合は0を返します。
次の例では、検知できた拠点数が10以上100以下の企業を、拠点数の多い順に取得します。
{
"filter": {
"company": {
"workLocationCount": {"gte": 10, "lte": 100}
}
},
"sort": {"field": "company.workLocationCount", "order": "desc"}
}
レスポンス
itemsに企業一覧、totalに総件数が返ります。includeTotalResultsをfalseにした場合、totalはnullです。
結果には法人番号、企業名、所在地、業界、従業員数、拠点数、資本金、連絡先、事業概要などが含まれます。拠点数はworkLocationCountで返ります。値を保有していない項目はnullになる場合があります。
エラー
| ステータス | 主な原因 |
|---|---|
400 | フィールド名、値の型、日付形式が正しくない |
401 | APIキーがない、無効、期限切れ |
402 | 検索クレジットが不足している |
429 | 毎秒5リクエストの上限を超えた |
未定義のフィールドは無視されず400になります。エラーのerrorsにフィールド名と理由が含まれる場合は、その内容を修正してください。
Webアプリと同じ条件を使う
Webアプリの企業検索で条件を設定し、画面上部の「API」を押すと、そのフィルターを使ったcURLを確認できます。