Signal Foundry
ドキュメント
サポート 戻る
ドキュメントユースケースAPI リファレンスリリースノート

概要

Agent が迷わず使える順に整理しています。

はじめに
sf CLI をインストールクイックスタートデータの出所カバレッジとタグ
CLI 概要
基本コマンドCLI 認証会社検索求人検索建設業許可検索ヘルプとエラーコマンドとフラグCLI 更新
認証
APIキーのライフサイクル利用状況の見方
請求
クレジット表
トラブルシュート
認証・接続・制限エラー低ヒット検索の見直し方クレジットと maxCredits の失敗
CLI

Company Search

社名や証券コードから `company_id` を解決するための最初のコマンドを説明します。

このページの内容7項目
基本コマンド絞り込みオプション会社数を集計する返り値でまず見る場所sf search に入れない条件会社の指定は company_id を推奨します次に進むコマンド

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.status
  • aggregate.value
  • aggregate.employee_known_count
  • aggregate.employee_missing_count
  • aggregate.groups[].key
  • aggregate.groups[].company_count
  • aggregate.groups[].employee_known_count
  • aggregate.groups[].employee_missing_count
  • aggregate.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_id
  • companies[0].company.display_name
  • companies[0].profile.website_domain
  • companies[0].query_match.identifier_matched
  • warnings[]
  • meta.coverage_warnings
  • meta.returned_companies
  • meta.matched_companies
  • meta.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トップ20company_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 境界を確認します。

このページの内容

基本コマンド絞り込みオプション会社数を集計する返り値でまず見る場所sf search に入れない条件会社の指定は company_id を推奨します次に進むコマンド