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

ユースケース

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

ユースケース
1社調査市場調査財務条件の Company Query検索語と条件成果物サンプルClaude Code で使う営業リストの名寄せ
ユースケース

持ち込み営業リストを会社へ名寄せする

CSV の各行を Company に照合し、確定した会社だけを Saved List へ保存する手順です。

このページの内容12項目
この手順を使う場面始める前にエージェントへ渡す prompt1. 各行を検索する2. 判定する3. identity で確定する4. 判定結果を保存する5. confirmed だけを Saved List へ追加する10 行で確認した結果復旧方法API から組み込む次に読む

Claude Cowork、Claude Code、Codex に判定を任せ、sf CLI で検索と保存を実行します。JSON の識別子と状態を検証し、曖昧な候補は人間の確認へ戻します。

この手順を使う場面

手元の CSV にある会社を Signal Foundry の Company へ照合し、再利用できる Saved List を作る場合に使います。

この手順では、CSV を丸ごとアップロードしません。確定した company_id だけを保存します。曖昧な候補の自動確定、CRM への書き戻し、定期的な一括 enrichment は行いません。これらを組み込む場合は API リファレンス を確認してください。

役割は次のとおりです。

  • Claude Cowork、Claude Code、Codex: 入力列を読み、検索順と次の操作を決める
  • sf CLI: Search、Company、Saved List、Usage の操作を実行する
  • JSON: 候補、識別子、状態、保存結果を検証する

始める前に

入力 CSV には、元の行を追跡できる ID と、分かる範囲の識別子を含めます。

source_row_id,company_name,corporate_number,securities_code,domain,prefecture
row-001,トヨタ自動車株式会社,,7203,,愛知県
row-002,ソニーグループ株式会社,,,sony.com,東京都

実行前に現在の上限と credit を確認します。表示された実行時の値を判断に使ってください。

sf usage --json
sf credits balance --json

Free の Search は現在 1,000 requests/day です。最初の検索だけで、入力 N 行に対して N search requests を使います。候補の再検索や sf company identity、sf company の読み取りにも Request Credit がかかる場合があります。

エージェントへ渡す prompt

CSV の場所と出力先を置き換えて、そのまま Claude Cowork、Claude Code、Codex へ渡せます。

<input.csv> の会社を Signal Foundry の Company へ名寄せし、結果を <resolved.csv> に保存してください。

各行は corporate_number、securities_code、domain、company_name の順で、最初に使える値を
sf search "<query>" --limit 5 --json
へ1回だけ渡してください。

Search は候補抽出だけに使ってください。identifier_matched=true だけでは confirmed にしないでください。
会社名 exact/core でも true になり得ます。Search 候補が1件で、元入力が法人番号、証券コード、
website domain のいずれかの場合だけ sf company identity <original-strong-input> --json へ進んでください。

confirmed にするのは、次の条件をすべて満たす場合だけです。
1. Search の meta.returned_companies が1。
2. identity_status=unique かつ needs_clarification=false。
3. 同じ company_id の identity candidate で、元入力が法人番号なら corporate_number、証券コードなら jpx_code、domain なら website_domain が exact 一致。
4. Search と identity の company_id が同じ。
5. sf company <company_id> --json が読め、company.company_id が同じ。

会社名だけの一致、複数候補、needs_clarification=true、強い識別子がない行は ambiguous にしてください。
0件は unmatched とし、会社不存在とは断定せず status、gaps、warnings を残してください。

出力列は source_row_id,input_company_name,resolution_status,company_id,legal_name,
corporate_number,matched_by,confidence,gaps,review_note としてください。
CSV は Signal Foundry へアップロードせず、confirmed の company_id だけを Saved List へ追加してください。
sf list create "<list-name>" --json で作成し、list.id を使ってください。confirmed の company_id だけを JSON array にして
sf list add <list-id> --stdin-json --json < confirmed-company-ids.json へ渡してください。
sf list show <list-id> --json と sf list export <list-id> --json で row_count と rows[].company_id を確認してください。
already_present と unknown_company_ids は別々に報告してください。
ambiguous は自動確定せず、CRM へは書き戻さないでください。

1. 各行を検索する

識別子の優先順は、法人番号、証券コード、website domain、会社名です。1 行につき最初の検索を 1 回実行します。

sf search "<corporate_number-or-securities_code-or-domain-or-company_name>" --limit 5 --json

見る key:

  • status
  • meta.returned_companies
  • companies[].company.company_id
  • companies[].company.display_name
  • companies[].company.legal_name
  • companies[].profile.website_domain
  • companies[].query_match.identifier_matched
  • companies[].query_match.match_reason.field_match
  • companies[].query_match.match_reason.identity_tier
  • gaps[]
  • warnings[]

identifier_matched=true だけでは、法人番号、証券コード、domain の一致を証明できません。実 pilot の会社名3例では、display_name_exact または display_name_company_core でも identifier_matched=true となり、候補数は5件、5件、4件でした。3例とも ambiguous です。

2. 判定する

resolution_status判定条件次の操作
confirmedSearch 候補が1件で、identity の一意性、元入力との実値一致、company_id の一致、Company の読取成功をすべて確認判定結果を保存する
ambiguous候補が1件以上あるが confirmed の条件を1つでも満たさない。会社名だけの入力は候補が1件でも含む自動確定せず、追加情報を人間に求める
unmatched候補が 0 件status、gaps、warnings を残して停止する

会社名だけで候補が 1 社に見えても、自動で confirmed にしないでください。ambiguous の行は、法人番号、証券コード、domain、所在地のいずれかを人間に確認します。

unmatched は「Signal Foundry の現在の検索範囲では解決できなかった」という結果です。会社が存在しないとは断定しません。

3. identity で確定する

Search 候補が1件で、検索に使った元入力が法人番号、証券コード、domain のいずれかの場合だけ、identity を確認します。会社名だけの入力はこの手順へ進めず、ambiguous のままにします。

sf company identity <corporate-number-or-securities-code-or-domain> --json
sf company <company_id> --json

見る key:

  • identity_status
  • needs_clarification
  • identity.company_id
  • identity.confidence
  • candidates[].company_id
  • candidates[].corporate_number
  • candidates[].jpx_code
  • candidates[].website_domain
  • candidates[].matched_by[]
  • gaps[]
  • Company 応答の company.company_id
  • Company 応答の company.display_name
  • Company 応答の company.legal_name
  • Company 応答の source_coverage

同じ company_id の candidates[] で、元入力との exact 一致を確認します。法人番号は corporate_number、証券コードは jpx_code、domain は website_domain と比較してください。

最終的な confirmed は、次の5条件をすべて満たす場合だけです。

  1. Search の meta.returned_companies が1。
  2. identity_status=unique かつ needs_clarification=false。
  3. identity candidate の対応値が元入力と exact 一致。
  4. Search の companies[0].company.company_id と identity.company_id が同じ。
  5. sf company <company_id> --json が読め、company.company_id が同じ。

1つでも満たさない場合は ambiguous へ戻し、自動保存しません。identity.confidence と matched_by[] は判定記録に残しますが、上の条件の代わりには使いません。

4. 判定結果を保存する

ローカルの CSV または JSON に、少なくとも次の列を残します。

source_row_id,input_company_name,resolution_status,company_id,legal_name,corporate_number,matched_by,confidence,gaps,review_note

ローカル CSV / JSON は、CRM レビューや監査用の成果物として引き続き利用できます。Signal Foundry の Saved List には confirmed の company_id だけを渡します。

5. confirmed だけを Saved List へ追加する

sf list create "<list-name>" --json
sf list add <list-id> --stdin-json --json < confirmed-company-ids.json
sf list show <list-id> --json
sf list export <list-id> --json

confirmed-company-ids.json には、確定した ID だけを入れます。

["jpx_7203", "jpx_6758"]

保存後に見る key:

  • create 応答の list.id
  • add 応答の added
  • add 応答の already_present[]
  • add 応答の unknown_company_ids[]
  • show / export 応答の row_count
  • show / export 応答の rows[].company_id

unknown_company_ids[] が 1 件でもあれば、入力ファイルと Search 結果を照合してください。ambiguous または unmatched の ID を推測して追加してはいけません。

10 行で確認した結果

2026-08-11 に公開 CLI 0.4.0 と hosted API で 10 行を確認しました。この結果は手順の受け入れ確認であり、一般的な名寄せ精度を示すものではありません。

結果行数確認内容
confirmed6Search、identity、Company の5条件を満たし、元の強い識別子と exact 一致
ambiguous3会社名だけでは候補が 5 件、5 件、4 件となり、自動確定しなかった
unmatched1status=weak、gaps=[source_context_no_rows] を保持した

確定した 6 社だけを一時 Saved List へ追加し、already_present=0、unknown=0、show / export ともに 6 社であることを確認しました。一時 Saved List は確認後に削除し、not_found になったことを確認しています。既存の Saved List は変更していません。

復旧方法

needs_clarification=true または複数候補が返る場合:

  1. 自動確定を止めます。
  2. 法人番号、証券コード、domain、所在地を人間に確認します。
  3. 得られた強い識別子で sf search "<identifier>" --limit 5 --json を 1 回実行します。

status=weak または 0 件の場合:

  1. gaps[] と warnings[] を出力へ残します。
  2. 入力の表記と識別子を確認します。
  3. 強い識別子がなければ unmatched のままにし、人間へ確認を戻します。

unknown_company_ids[] が返る場合:

  1. sf search "<original-identifier>" --limit 5 --json の company_id を確認します。
  2. sf company <company_id> --json が読めることを確認します。
  3. 解消しなければ、その ID を Saved List へ追加せず人間へ報告します。

usage または credit が不足する場合:

sf usage --json
sf credits balance --json

実行時の status、上限、残量を確認し、入力を分割するか、続行前に workspace 管理者へ確認してください。

API から組み込む

定期実行、CRM 連携、大きなリストの処理では、API リファレンス から Search、Company、Usage の現行契約を確認してください。Saved Lists は POST /api/signal-foundry/lists で作成し、確定した ID だけを POST /api/signal-foundry/lists/{listId}/rows へ渡します。CLI と同じく、Search と identity の company_id、identity candidate の実識別子、Company の読取結果を検証してから company_id を保存し、ambiguous と unmatched を別の状態として保持します。

次に読む

  • 検索 JSON の詳細: Company Search
  • credit と上限: credit schedule
  • エラーからの復旧: トラブルシューティング

このページの内容

この手順を使う場面始める前にエージェントへ渡す prompt1. 各行を検索する2. 判定する3. identity で確定する4. 判定結果を保存する5. confirmed だけを Saved List へ追加する10 行で確認した結果復旧方法API から組み込む次に読む