mcpField
I
intent-signal-aggregator-skill

intent-signal-aggregator-skill

github.com/scientiacapitalマーケティング・グロース2836 回インストール3 週間前に更新
リポジトリ

intent-signal-aggregator-skill について

ApolloのシグナルとEpiphan CRMの活動から、ターゲット企業の購買意向を順位付けするスキルです。シグナル収集前に企業を判定し、Slackダイジェストと後続スキル向けの引き継ぎデータを出力します。

主な機能

  1. 01企業リストとドメインの解決
  2. 02シグナル収集前の企業適格性判定
  3. 03採用・資金調達・成長・経営陣の変化を収集
  4. 04自社接点の反応と技術スタックを反映
  5. 05シグナルの減衰を含むスコアリングと順位付け
  6. 06Slackダイジェストとホット企業の引き継ぎJSONを配信

活用シーン

  1. 01最近購買シグナルを示した企業の発見
  2. 02企業の意向スコアに基づく営業優先度の設定
  3. 03ターゲット企業の採用や経営陣の変化の監視
  4. 04ホット企業情報を架電や連絡先調査のワークフローへ引き継ぎ

MCP 対応

MCPツールで企業の適格性判定、Apolloの組織・人物シグナル取得、Epiphan CRMの活動確認を行います。結果はSlackと引き継ぎJSONで共有でき、営業文面はチェック後にのみ下書きします。

インストール

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

$npx skills add https://github.com/scientiacapital/skills --skill intent-signal-aggregator-skill

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

同梱ファイルconfig.json

詳細

インテントシグナルアグリゲーター

ターゲットアカウントリストを、すべてのシグナルがツールの結果であるランク付けされたインテントフィードに変換します。シグナルには、採用、資金調達、成長、リーダーシップの変化に関する Apollo の求人情報および組織エンリッチメント、そしてファーストパーティのエンゲージメントに関する Epiphan CRM のアクティビティが含まれます。アカウントは、ホットになる前に `qualify_lead` を通してゲートされ、0〜100 でスコアリングされ、Slack ダイジェストと、sdr-dial-lists および contact-hunter 向けのハンドオフファイルとして配信されます。タイミングこそが成果物です。同じ見込み客でも、週が違えば結果も変わります。 Keywords: `intent signals`、`buying signals`、`hot accounts`、`job postings`、`funding`、`in-market`

<quick_start> トリガー: 「[アカウントリスト / 業種] のインテントシグナルを追跡して」または「今週、購買シグナルを示しているアカウントはどれ?」

ツールの順序:

  1. アカウントリスト — リクエストから、HubSpot リスト(hubspot_search_lists + hubspot_list_members)から、または業種に対して hubspot_companies を対象とした execute_sql から取得します。ドメインを解決します。
  2. ゲート Q — シグナルを取得する前に、アカウントごとに qualify_lead を実行します(除外されたアカウントにはクレジットを消費しません)。判定により、除外 / STALE AE LEAD / 新規のいずれかが決まります。
  3. シグナル、存続したドメインごとに:
    • apollo_organizations_job_postings → 募集中の職種。役職名や説明を以下の AV/動画キーワードリストと照合します。
    • apollo_organizations_enrich → 資金調達イベント、estimated_num_employees の推移、リーダーシップ(current_technologies、latest_funding_stage、founded_year)。
    • ATL の役職名 + ドメインを指定した apollo_mixed_people_api_search、在職期間を得るための apollo_people_bulk_match → 90 日未満の新任役員。
    • ファーストパーティ: 既知のコンタクトに対する activity_get_timeline と、製品ページ / 価格 / デモのアクティビティに対する analytics_search_by_email。
    • 設定されている場合は、資金調達 / ニュースに対するオプションの Clay track-event。
  4. スコアリング(以下の表)、ランク付け、ダイジェストの作成。
  5. 配信: Tim への Slack DM でダイジェストを送信。sdr-dial-lists / contact-hunter 向けのハンドオフ JSON を ~/.claude/skill-state/intent-signal-aggregator/<date>-hot.json に書き込み。アウトリーチの文面はゲート B を通してから create_draft に進みます。 </quick_start>

<house_rules> 顧客向けスキルです。出力前に、ゲートを順番に実行します(詳細: /.claude/skills/epiphan-house-rules-skill/reference/gates.md): S: 製品に関する主張を行う前に search_product_catalog(Epiphan AI)または Epiphan Knowledge 検索を実行します。 B: 顧客向けのすべての文字列に対して check_my_copy を実行します。 Q: 候補の取得直後、ティアリング / エンリッチメント / ドラフトの前に qualify_lead を実行します。 D: アウトバウンドのテキストは Gmail の下書きになり、送信されることはありません。 識別子(オーナー ID、ポータル、メール、シート)はそのスキルの reference/identifiers.md から取得します — ここで再記載しないでください。 ゲートが失敗した場合は、reference/self-healing.md に従い(再試行、フラグ付きでの縮退、Tim へのアラート、停止)、/.claude/skill-runs/.jsonl に 1 行を追記します。 </house_rules>

<success_criteria>

  • すべてのアカウントが、シグナル取得の前に qualify_lead を通過している。除外および STALE AE LEAD がカウントされている
  • すべてのシグナルが、そのソース呼び出しと日付(求人 ID、資金調達イベント、タイムラインイベント)を引用している。ナレーションのみのものはない
  • 各アカウントが、シグナルごとの寄与が可視化された 0〜100 のインテントスコアを持っている
  • ソースごとの縮退(どのソースが空だった / 失敗したか)が、黙ってスキップされるのではなく報告されている
  • ダイジェストが Slack DM として配信されている。ホットアカウントのハンドオフ JSON が書き込まれている
  • ホットアカウントごとの推奨アクションが、コンタクトティア(qualify_lead から)と次のスキルを明記している
  • アウトカムサイドカーと実行ログの行が書き込まれている </success_criteria>

ステージ 1 — アカウントリストとゲート Q

リストを HubSpot の会社 ID とドメインに解決します。それぞれに対して qualify_lead を実行します。ゴールデンルール、AE の 90 日ルール、抑制、および地域のデフォルト(USA / Canada)はその呼び出し内で評価されます — epiphan-house-rules-skill の reference/gates.md と reference/identifiers.md を参照してください。ここでオーナー ID を再記載しないでください。除外されたアカウントは、Apollo クレジットを消費する前に除外されます。qualify_lead が利用できない場合は停止します。

ステージ 2 — シグナルソース (すべてライブ)

シグナルツールカウント対象
採用 (関連)apollo_organizations_job_postings以下に一致する役職名/説明: AV、オーディオビジュアル、メディアサービス、講義収録、映像制作、ストリーミング、教室テクノロジー、教育テクノロジー、法廷テクノロジー、放送エンジニア
採用 (量)同上IT / 施設 / メディア部門の募集中ポジションが 3 件以上
資金調達apollo_organizations_enrichlatest_funding_stage / 資金調達イベントが 90 日以内; 公共機関の場合は、設定時に Clay track-event 経由で起債または資本プロジェクトのニュース
従業員数の増加apollo_organizations_enrich従業員数の推定値が、skill-state に保存された以前の値と比較して 10% 以上増加
経営陣の異動apollo_mixed_people_api_search + apollo_people_bulk_match就任から 90 日以内の ATL 役職
テックスタックapollo_organizations_enrich current_technologiesPanopto、Kaltura、Echo360、YuJa、Zoom Rooms、Crestron、Extron が存在する、または新たに追加された
ファーストパーティのエンゲージメントactivity_get_timeline、analytics_search_by_email過去 30 日以内の料金/デモページの閲覧、フォーム入力、メール返信

各ソースは一時的なエラー時に 1 回再試行され、その後は縮退します: ソースが空または失敗した場合 → そのシグナルは 0 点となり、アカウントには partial:<source> のフラグが付き、実行は継続されます。

ステージ 3 — スコアリング

シグナル点数減衰
関連する求人25 (最初) + 追加ごとに 5、上限 3530 日後に半減
新しい ATL 役員2560 日後に半減
資金調達 / 資本イベント1590 日後に半減
ファーストパーティのエンゲージメント1514 日後に半減
従業員数の増加5四半期ごと
テックスタックの一致5静的

上限 100。Hot ≥ 60 (今週中に対応) · Warm 35〜59 (2 週間以内に対応) · Watch < 35。

ステージ 4 — 出力

# Intent Signal Report — [date range]
Accounts in: [n] · excluded by Gate Q: [n] · stale AE surfaced: [n] · scored: [n] · hot: [n] · warm: [n]
Sources degraded: [none | job_postings for 3 accounts | …]

## HOT
### #1 [Company] — [vertical] — score [n]/100
1. Hiring: [n] relevant roles — "[title]" posted [date] (job posting id) — mentions [keyword]
2. Leadership: [Name], [Title], started [date] (Apollo id) — tier [ATL] per qualify_lead
3. First-party: [contact] viewed pricing [date] (timeline event)
Action: [call this week via sdr-dial-lists | contact-hunter for the new exec] — contact tier [ATL/GRAY]
Opener (draft id [Gmail id] after check_my_copy): "[one line]"

## WARM … ## WATCH …
## STALE AE LEADS — Tim decides
[Company] — owner [AE] — last activity [date] — score [n]

シグナルの勝率テーブルは、~/.claude/skill-analytics/outcomes.jsonl から計算された場合を除き、出力されません; レポートに例示的なパーセンテージを含めないでください。

ステージ 5 — 配信とハンドオフ

  1. Tim への Slack DM: HOT ブロックと件数、および ~/.claude/skill-state/intent-signal-aggregator/<date>.md に保存された完全なレポートへのパス。
  2. ハンドオフ JSON ~/.claude/skill-state/intent-signal-aggregator/<date>-hot.json: [{company_id, domain, score, signals[], recommended_skill, contact_tier}] は sdr-dial-lists と contact-hunter-skill によって消費されます。
  3. オープナー: get_writing_style を 1 回、check_my_copy を行ごとに、create_draft を検証済みの連絡先があるホットアカウントに対して。決して送信しないでください。
  4. 次回実行時の増加比較のために、ドメインごとの従業員数スナップショットを skill-state に永続化します。

ステージ 6 — アウトカムサイドカー + 実行ログの出力

~/.claude/skill-analytics/last-outcome-intent-signal-aggregator-skill.json を書き出します:

{"ts":"[UTC ISO8601]","skill":"intent-signal-aggregator-skill","version":"<frontmatter version>","variant":"default",
 "status":"[success|partial|error]","runtime_ms":[estimated ms from start],
 "metrics":{"accounts_in":[n],"excluded_by_qualify":[n],"stale_ae_surfaced":[n],"accounts_scanned":[n],"signals_detected":[n],"hot_accounts":[n],
 "signal_types":{"hiring":[n],"funding":[n],"leadership":[n],"tech_stack":[n],"engagement":[n]},"sources_degraded":["job_postings"]},
 "error":null,"session_id":"[YYYY-MM-DD]"}

status が partial の場合は、error で劣化したソースを明示する必要があります。~/.claude/skill-runs/intent-signal-aggregator-skill.jsonl に 1 行を追記します。

<self_healing> partial = ランキングは生成されたものの、ソースが劣化した状態: 求人情報またはエンリッチメントがリトライ後に空/失敗 (シグナルは 0 でスコアリングされ、アカウントには partial:<source> のフラグが付与)、Slack DM が失敗 (レポートパスはチャットで返却)、create_draft が失敗 (オープナーはチャット内)。error = アカウントリストを解決できない、Apollo が完全に利用不可、または qualify_lead が利用不可 (停止: Gate Q が確認していないアカウントをホットとしてマークしないこと)。~/.claude/skills/epiphan-house-rules-skill/reference/self-healing.md に基づくラダー: 1 回リトライ → フラグ付きで劣化 → Slack DM で Tim に通知 → ~/.claude/skill-state/intent-signal-aggregator/ に状態を残して停止。 </self_healing>

<anti_patterns>

  • 引用できる求人情報の結果がないのに「求人を 5 件投稿」と書く。
  • オーナー ID や Golden Rules をインラインで再掲する; 判定は qualify_lead が担います。
  • 測定されていない勝率ベンチマークを出力する。
  • 単一の古いシグナルでアカウントをホットとしてマークする; 減衰を適用してください。 </anti_patterns>

<reference_guides>

  • ~/.claude/skills/epiphan-house-rules-skill/reference/gates.md — Gate Q の判定、抑制、geo デフォルト
  • ~/.claude/skills/epiphan-house-rules-skill/reference/identifiers.md — オーナー ID、ポータル、メール (ここでは再掲しないこと)
  • 関連スキル: linkedin-sales-navigator-alt-skill (役割が変わった人々)、lookalike-customer-finder-skill (誰を監視するか)、sdr-dial-lists / contact-hunter-skill (ホットアカウントに対してアクションを起こす) </reference_guides>

コメント