mcpField
S
signal-scanner

signal-scanner

github.com/gooseworks-aiマーケティング・グロース1.3k49 回インストール3 日前に更新
リポジトリ

signal-scanner について

signal-scannerは、対象企業やウォッチ対象者の購買シグナルを定期的に検出するマーケティング向けスキルです。シグナルをスコア化し、データベース更新前にドライランと明示的な承認を求めます。

主な機能

  1. 01企業と人物の定期スキャン
  2. 02採用・資金調達・プロフィール変更の検出
  3. 03鮮度とアカウント階層によるスコア付け
  4. 04データベース更新前のドライラン

活用シーン

  1. 01アカウントへのアプローチ時期の判断
  2. 02レコード有効化前のシグナル確認
  3. 03対象アカウントの定期スキャン

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/gooseworks-ai/goose-skills --skill signal-scanner

インストール後、Claude Code で/signal-scannerを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

skill.meta.json
configs/
example.json
toma-bdc-signal.json
scripts/
signal_scanner.py

詳細

シグナルスキャナー

TAM 対象企業とウォッチリストのペルソナを定期的にスキャンして購買シグナルを検出し、signals テーブルに書き込み、後続のアクティベーションを設定します。

使用するタイミング

  • TAM Builder で企業とペルソナを登録した後
  • タイミングに基づくアプローチのきっかけを検出するため、定期スキャン(日次/週次)を実行するとき
  • 静的なリストから、インテントに基づくアプローチへ移行するとき

前提条件

  • .env に SUPABASE_URL と SUPABASE_SERVICE_ROLE_KEY が設定されていること
  • .env に APIFY_TOKEN が設定されていること(Phase 2 のシグナル用)
  • .env に ANTHROPIC_API_KEY が設定されていること(任意。LLM によるコンテンツ分析用)
  • tam-builder を使って TAM の企業が登録されていること
  • Tier 1~2 の企業にウォッチリストのペルソナが作成されていること

シグナルの種類

優先度シグナルレベルソースコスト
P0従業員数の増加(90 日間で 10% 超)企業データ差分無料
P0テクノロジースタックの変更企業データ差分無料
P0資金調達ラウンド企業データ差分無料
P0関連職種の求人掲載企業Apify linkedin-job-search約 $0.001/件
P1リーダー層の転職人物Apify linkedin-profile-scraper約 $3/1,000 件
P1LinkedIn コンテンツ分析人物Apify linkedin-profile-posts + LLM約 $2/1,000 件 + LLM
P1LinkedIn プロフィールの更新人物Apify linkedin-profile-scraper約 $3/1,000 件
P2新しい C-suite 採用企業人物スキャンから導出無料

設定形式

スキーマ全体については configs/example.json を参照してください。主な項目は次のとおりです。

  • client_name — スキャン対象のクライアントの TAM
  • signals.* — 閾値を指定して各シグナルの種類を有効化/無効化
  • scan_scope — Tier、status、lead_status でフィルタリング

データベース書き込みポリシー

重要:明示的なユーザー承認なしに、シグナルを書き込んだりリードのステータスを更新したりしてはいけません。

シグナルスキャナーは複数のテーブルに書き込みます。signals(挿入)、enrichment_log(挿入)、companies(スナップショットを更新)、people(lead_status を更新)です。これらの書き込みは後続のアプローチ判断に影響します。誤ったシグナルは、アプローチのタイミングを誤らせます。

必須の手順:

  1. データベースに書き込まずにシグナルを検出するため、必ず最初に --dry-run を実行します
  2. ドライランの結果(シグナル数、種類、主なシグナル、影響を受ける企業/人物)をユーザーに提示します
  3. --dry-run なしで実行する前に、ユーザーから明示的な承認を得ます
  4. 承認を得てから、データベースに書き込む実際のスキャンを実行します

これが重要な理由:

  • シグナルはアプローチのタイミングを左右するため、誤ったシグナルは早すぎるアプローチにつながります
  • monitoring から signal_detected への lead_status の変更は、多数のレコードにわたると元に戻すのが困難です
  • スナップショットの更新は今後のシグナル差分に影響するため、不正確なスナップショットは後続のスキャンにも影響します
  • エンリッチメントログのエントリーには、Apify のクレジット消費が記録されます

エージェントは初回実行時に --yes を指定してはいけません。 --yes フラグは、ユーザーがシグナル検出ロジックをすでに検証済みの、事前承認された定期スキャンでのみ使用します。

使用方法

# Dry run first (ALWAYS DO THIS) — detect signals without writing to DB
python skills/capabilities/signal-scanner/scripts/signal_scanner.py \
  --config skills/capabilities/signal-scanner/configs/my-client.json --dry-run

# Full scan (only after user reviews dry-run results and approves)
python skills/capabilities/signal-scanner/scripts/signal_scanner.py \
  --config skills/capabilities/signal-scanner/configs/my-client.json

# Test mode (5 companies max)
python skills/capabilities/signal-scanner/scripts/signal_scanner.py \
  --config configs/example.json --test --dry-run

# Free signals only (skip Apify)
# Set all Apify signals to enabled: false in config
フラグ
フラグ効果
--config PATH設定 JSON のパス(必須)
--test対象を企業 5 社、人物 3 名に制限
--yesApify のコスト確認を自動承認します。事前承認された定期スキャンでのみ使用してください。
--dry-runシグナルを検出しますが、DB には書き込みません。必ず最初に実行してください。
--max-runs NApify の実行上限を上書きします(デフォルトは 50)

出力

signals テーブルへの書き込み

各シグナルには、client_name、company_id、person_id、signal_level(company または person)、signal_type、signal_source、strength、signal_data(JSON)、activation_score、detected_at、acted_on、run_id が含まれます。

その他のデータベースへの書き込み
  • activation_score が閾値以上の場合、人物の lead_status を signal_detected に更新
  • 次回の差分サイクルに備えて、企業の metadata._signal_snapshot を更新
  • 次回の差分サイクルに備えて、人物の raw_data._signal_snapshot を更新
  • tool='apify'、action='search' または 'enrich'、および credits_used を含む enrichment_log エントリー
コンソール出力
  • サマリー統計が stdout に出力されます

アクティベーションスコア

activation_score = strength * recency_multiplier * account_fit

Recency:   <24h = 1.5, 1-3d = 1.2, 3-7d = 1.0, 1-2w = 0.8, 2-4w = 0.5
Account:   Tier 1 = 1.3, Tier 2 = 1.0, Tier 3 = 0.7

Connects To

  • Upstream: tam-builder (provides companies + people)
  • Downstream: cold-email-outreach (acts on signals)

File Structure

signal-scanner/
├── SKILL.md
├── configs/
│   └── example.json
└── scripts/
    └── signal_scanner.py

コメント