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

ユースケース

Claude Code / Codex が実行する代表的な流れを確認します。

ユースケース
市場調査競合調査財務条件の Company Query自然言語検索の解決Claude Code で使う1社調査
ユースケース

自然言語の検索がどう解決されるか

自然言語の 検索条件が Company Search にどう当たり、なぜヒットしたかを説明します。

このページの内容14項目
まず結論まず何が起きるかよくある依頼と内部の分岐company search の解決順company search で relevance に使われる field会社群検索の使いどころ確認する keycompany search で実際に何がヒットするかテーマ検索で実際に何が起きるか良い 検索条件 と悪い 検索条件まずは短く当てる復旧方法Claude Code / Codex がやるべき分解このページに含めないもの

Signal Foundry の自然言語検索は、単純な全文検索ではありません。 会社群の依頼も 1 社特定も、まず sf search で処理します。使い分けるのは、その後に Company Card を読むか、agent 側でローカル表にするかです。

まず結論

  • 会社を解決したいときは sf search <query>
  • テーマに反応している会社群を探したいときも、まず sf search "<theme or criteria>"
  • 売上、利益、BS/CF、利益率、財務ランキングは company_query.v1 にして sf query
  • 横断確認では候補と根拠を確認し、必要な会社だけ Company Card を読む
  • 長い自然文をそのまま入れるより、短い 検索条件 と明示的な 絞り込み に分けた方が安定します

まず何が起きるか

自然文の依頼を受けたとき、内部では次の 4 段階で処理されます。

  1. 依頼が 会社検索 か 1社調査 か 有報差分 かを決める
  2. 選ばれた 機能ごとに 検索条件を正規化する
  3. candidate を作り、relevance を計算する
  4. なぜヒットしたかを query_match や observation.summary / evidence で返す

つまり、自然文 -> そのまま 1 本の search ではありません。最初にどの 機能を選ぶかが最重要です。

よくある依頼と内部の分岐

ユーザーの依頼最初に選ぶ 機能理由
トヨタを調べてsf search会社特定が先だから
生成AIに積極的な会社を出してsf search候補会社と根拠を最速で確認できるから
前回の有報との差分を見たいsf search -> sf company --card -> signals --include ir -> 必要なら company filingsv0 では差分は事前生成された IR Signals と evidence として読むから
営業候補を作りたいsf search母集団と根拠を先に確認する必要があるから

company search の解決順

sf company search は、概ね次の順で 会社 候補を組み立てます。

  1. 入力を正規化する
  2. sf_company_identifiers の exact match を見る
  3. company_id の exact candidate を見る
  4. 正規化済み 会社 name の exact match を見る
  5. 必要なときだけ normalized name の prefix match を足す
  6. relevance で並べる

実用上の意味は次です。

  • 7203 のような code っぽい 検索条件 は強く exact 解決を狙う
  • jpx_7203 のような canonical company_id も直接解決できる
  • ABEJA のような表記ゆれは正規化で吸収される
  • 自由入力 が曖昧なときは、社名 prefix と関連 field で補助する

company search で relevance に使われる field

高く評価されやすい順に、概ね次を見ています。

  • company_id
  • display_name
  • legal_name
  • website_domain
  • website_url
  • market_segment
  • industry_33
  • industry_17

さらに次の補正があります。

  • identifier exact match は強い加点
  • listed の会社は少し優先

つまり、上場コード、社名、website domain のいずれかが分かっているとかなり強いです。

会社群検索の使いどころ

sf search は、自然文の会社群を高速に候補化する入口です。詳細 command として sf company search も使えます。

sf query --file company-query.json --json
sf search "東証プライムの製造業" --json

対応しやすい条件は、上場状態、market segment、会社名/識別子、EDINET本文のkeyword/semanticテーマ検索です。財務指標のしきい値は company_query.v1 に構造化して sf query で実行します。CSV が必要なら、agent が JSON からローカル CSV を作ります。財務条件の変換手順は 財務条件の Company Query を見ます。

確認する key

  • companies[].company.company_id
  • companies[].query_match
  • companies[].reason
  • companies[].matched_observations[].summary
  • companies[].matched_observations[].evidence
  • meta.returned_companies
  • warnings[]
  • gaps[]

company search で実際に何がヒットするか

例:

sf search 7203 --json

この場合は、7203 が identifier exact match として強く扱われ、jpx_7203 や関連 identifier が上位に来ます。

別の例:

sf search "トヨタ" --json

この場合は、社名正規化と prefix match が効きます。ただし、曖昧な社名では別会社が先に出ることがあるので、確実に進めたいなら証券コードや domain を使ってください。

テーマ検索で実際に何が起きるか

例:

sf search "情報・通信業の上場企業で生成AI CRMに関連" --json

この場合は、まず industry で候補 会社 群を絞り、そのあと 生成AI と CRM が summary type subtype source evidence などに入る observation を探します。返ってくるのは company 単位のまとめですが、内部では先に observation を集めてから 会社ごとにまとめています。

そのため、ユーザーが感じる なんでこの会社が出たのか の答えは、最終的には observations[].summary と evidence にあります。

良い 検索条件 と悪い 検索条件

悪い例:

{
  "query": "東証プライムの情報通信企業で生成AIとCRMと営業効率化に積極的な会社"
}

良い例:

{
  "query": "生成AI CRM",
  "filters": {
    "industries": ["情報・通信業"],
    "market_segments": ["prime"]
  }
}

構造条件は filters に移し、query はテーマ語だけに寄せてください。

まずは短く当てる

sf search "情報・通信業の東証プライム上場企業で生成AI CRMに関連" --json

結果が弱いときは、次の順で直します。

  1. query の token を減らす
  2. 制約を filters へ移す
  3. まず sf search で company_id を解決し、company_ids 絞り込みを使う
  4. LLM GenAI のような短い英語略語だけなら、日本語同義語を 1 つ足す
  5. それでも不足するなら sources や observation_types を見直す

復旧方法

company search が曖昧な場合は、証券コード、canonical company_id、website domain の順で 検索条件を狭めます。unsupported 条件を返す場合は、完了扱いにせず条件を分解します。テーマ検索が弱い場合は、自然文を短いテーマ語と explicit 絞り込み に分け直してください。

Claude Code / Codex がやるべき分解

自然文の依頼を エージェントが受けたら、まず次のように分解すると安定します。

  • 固有名詞がある: company search
  • 対応済み条件の会社群: company search で候補を取り、必要ならローカル表にする
  • 財務条件つきの会社群: sf data capabilities --json で catalog を読み、company_query.v1 を作って sf query で実行する
  • テーマ語しかない会社群: company search で候補と根拠を確認し、必要な会社だけ Company Card を読む
  • 上場日や IPO 年で絞る会社群: company search で coverage を確認し、必要なら条件を分解する
  • 横断確認だけ: company search の JSON で止め、保存はローカル側で判断する
  • 差分 前回 有報 がある: signals --include ir を先に読み、必要なら company filings
  • 保存しておきたい がある: CSV / Markdown / spreadsheet / 自社DB にローカル保存する

たとえば 生成AI に積極的な競合を出して、あとで見直せるようにして と言われたら、1 本の search に流すのではなく、次の 2 段階に分けます。

  1. company search でテーマ根拠を確認する
  2. 候補条件を上場状態、業種、財務指標などの対応済み条件に分解する
  3. 対象会社数と coverage / warning を見る
  4. 必要な会社だけ company profile --card と signal を読む
  5. agent 側でローカルの表、Markdown、CSV に整形する

この分解をしないと、検索は当たったが後で見返せない か、何を根拠に入れたか分からない のどちらかになりやすいです。

このページに含めないもの

自然言語検索の結果を無確認で publish queue に積み上げる導線は、現時点の公開 product core ではありません。公開導線では sf company search と Company Card / signals を正面にします。

このページの内容

まず結論まず何が起きるかよくある依頼と内部の分岐company search の解決順company search で relevance に使われる field会社群検索の使いどころ確認する keycompany search で実際に何がヒットするかテーマ検索で実際に何が起きるか良い 検索条件 と悪い 検索条件まずは短く当てる復旧方法Claude Code / Codex がやるべき分解このページに含めないもの