Company Search
社名や証券コードから `company_id` を解決するための最初のコマンドを説明します。
このページの内容7項目
1 社を調べる最初の 1 手は sf search です。ここで解決した company_id を、Company Card と Signals にそのまま渡します。company_id が確定するまで、自由入力を他のコマンドに渡さないでください。
基本コマンド
sf search 7203 --json sf search トヨタ --json sf search 銀行 --json sf search ABEJA --json
<query> には次を渡せます。
- 証券コード
- 社名
- 既知の identifier
絞り込みオプション
sf search 7203 --limit 20 --json sf search トヨタ --has-website true --json sf search トヨタ --market-segment prime --json sf search "webサイトがある非上場企業" --json sf search 金融機関 --industry-33-code 7050,7100,7150,7200 --json sf search "大阪の製造業で求人募集している会社" --json sf search "AI系の求人を募集している会社" --json sf search --prefecture 東京都 --industry-33-code 5250 --ai-jobs true --json
通常は自然文のまま sf search "<criteria>" --json を使います。次のオプションは、agent や backend が条件を明示済みの場合だけ使います。structured filter を 1 つ以上指定すると、query を省略できます。
--limit--offset--aggregate company-count--group-by industry-33|prefecture|market-segment|listing-status|employee-cohort--has-website true--has-jobs true--ai-jobs true--construction true--prefecture <value[,value]>--min-employees <number>--order name|jobs|ai|construction|employees--industry-33-code <value[,value]>--listing-status <value[,value]>--market-segment <value[,value]>
--listing-status に渡せる値は listed, private, delisted, unknown の 4 つです。未上場 / 非上場 / unlisted は private に寄せます。
会社数を集計する
filter-only の会社数は、候補一覧を page ごとに数えず、1 回の Search で取得します。
sf search --aggregate company-count --listing-status private --json sf search --aggregate company-count --group-by industry-33 --json sf search --aggregate company-count --group-by prefecture --listing-status private --json sf search --aggregate company-count --prefecture 熊本県 --has-website true --json
利用できる group は industry-33, prefecture, market-segment, listing-status, employee-cohort の5種です。--group-by を使う場合は --aggregate company-count も指定します。listing status を省略すると、 listed/private/delisted/unknown を含む検索対象全体を集計します。 自然文の 上場企業の業種別社数、非上場会社の33業種ごとの会社数 も、曖昧な 条件がなければ同じ filter-only aggregate へ route します。地域や売上条件など、 決定的に構造化できない語が残る場合は aggregate を実行せず、短い query または 明示的な filter へ分けて再実行します。 都道府県、業種、上場状態、市場区分、従業員数、求人、AI求人、建設業許可、 Webサイト有無の structured filter は aggregate と併用できます。
見る key:
aggregate.statusaggregate.valueaggregate.employee_known_countaggregate.employee_missing_countaggregate.groups[].keyaggregate.groups[].company_countaggregate.groups[].employee_known_countaggregate.groups[].employee_missing_countaggregate.gaps[]
status: "available" の集計では、各 group の employee_known_count と employee_missing_count の合計が company_count と一致します。top-level の 従業員数内訳は全 group の合計です。業種がない会社は key: "unknown" です。 group-by なしでも top-level の従業員数内訳を返します。数値化できない employee_number は missing として扱います。
{
"aggregate": {
"contract_version": "company_search_aggregate.v1",
"metric": "company_count",
"group_by": "industry_33",
"status": "available",
"value": 2,
"employee_known_count": 1,
"employee_missing_count": 1,
"groups": [
{
"key": "5250",
"label": "情報・通信業",
"company_count": 2,
"employee_known_count": 1,
"employee_missing_count": 1
}
],
"gaps": []
}
}
q, --signal, --city は exact aggregate では未対応です。 それぞれ aggregate_q_text_not_exact, aggregate_semantic_tag_not_exact, aggregate_city_not_exact と status: "unsupported" を返すため、0 社とは解釈しないでください。 aggregate も Search 1 回として利用量に計上されます。実行後は sf usage --json で 利用量を確認します。
query なしで --order name|employees を使う場合は、typed facts で候補を絞ってから Company Card を返します。--order jobs|ai|construction は、表示順に必要な件数を Company Card 側で読みます。offset pagination の meta.matched_companies はページ局所の 下限値なので、meta.total_kind: "lower_bound" として返します。
求人・建設・従業員数・都道府県の条件を使う場合は、会社検索の hot path が sf_company_source_enrichment_mv に切り替わります。このとき companies[].source_context に、求人件数、求人ソース数、求人の最新観測日時、AI 求人件数、建設業許可件数、営業所件数、サンプル求人タイトルが入ります。この hot path では、meta.matched_companies は scan 済み件数ではなく、条件に合う総件数です。
sf search は会社起点です。--prefecture や自然文の「大阪」は会社所在地として扱われ、求人勤務地の絞り込みではありません。勤務地で個別求人を先に並べる場合は、求人検索 surface を使います。
返り値でまず見る場所
見る key:
companies[0].company.company_idcompanies[0].company.display_namecompanies[0].profile.website_domaincompanies[0].query_match.identifier_matchedwarnings[]meta.coverage_warningsmeta.returned_companiesmeta.matched_companiesmeta.total_kind
meta.total_kind が exact の場合だけ meta.matched_companies を確定総数として扱います。lower_bound は確認済み下限、estimate は scan / truncation を含み得る推定です。総数を返さない場合は matched_companies: null と total_kind: "unknown" の組になります。
q と structured filter を併用して0件になり、filter-only probe では候補がある場合、warnings[] に text_query_filtered_out_structured_matches が入ります。この場合は q を外すか変更して再実行します。
出力イメージ:
{
"companies": [
{
"company": {
"company_id": "jpx_7203",
"display_name": "トヨタ自動車",
"listing_status": "listed"
},
"profile": {
"website_domain": "global.toyota"
},
"query_match": {
"identifier_matched": true,
"relevance": 120
}
}
],
"warnings": [],
"meta": {
"returned_companies": 1,
"coverage_warnings": []
}
}
warnings[] / meta.coverage_warnings に weak、pending、no_data、unsupported が出た場合は、0 件成功として扱わず、条件を分解して再確認します。財務しきい値を決定的に扱う場合は、自然文 q に残さず company_query.v1 を生成し、sf query --file company-query.json --json で実行します。
財務条件を Search に渡した場合は ok: true、status: "needs_clarification"、 company_query_required gap を返し、CLI は exit 0 になります。これは以前の exit 2 からの変更です。0 社とは解釈せず、gap の message と suggested_next_commands[] を読み、company_query.v1 に分解してください。
sf search に入れない条件
sf search は会社候補と根拠を返す入口です。次の条件は、弱い keyword にして実行せず、unsupported、needs_human、または company_query.v1 に分けます。
| 依頼 | 扱い |
|---|---|
| 売上100億円以上、ROEが高い、営業CFトップ20 | company_query.v1 に構造化して sf query |
| 個人メール、携帯番号、決裁者の連絡先 | unsupported.source=personal_contact_data |
| 未公表M&A、インサイダー情報、制裁リスト、反社チェック | 公開 surface では unsupported |
| 今日急騰した株、リアルタイム株価、SNS炎上 | 現在の公開 surface では unsupported |
| 資金調達ラウンド、特許、落札、市場シェア、Webアクセス、広告出稿額 | 専用 source がない限り unsupported |
| 年収1000万円以上の求人を出している会社 | sf job search --order salary に落とさず unsupported.source=structured_job_salary |
低ヒットや 0 件は「存在しない」の証明ではありません。coverage、source、条件分解を確認してから次に進みます。
会社の指定は company_id を推奨します
sf company と sf signals は、会社コード、社名、ドメインも受け取れます。ただし候補が複数ある入力では、意図しない会社に確定するおそれがあります。
そのまま渡せるが、曖昧さが残る:
sf company 7203 --json
推奨(先に候補を 1 社に確定する):
sf search 7203 --json sf company jpx_7203 --json
とくにエージェントの自動実行では、sf search で company_id を解決してから渡します。
次に進むコマンド
sf company jpx_7203 --json sf signals jpx_7203 --json sf usage --json
まず sf search で正式な company_id を解決します。必要な会社だけ Signals を読み、最後に Usage で quota と credit 境界を確認します。