mcpField
N
newsjack-monitor-setup

newsjack-monitor-setup

github.com/elvisunマーケティング・グロース1.7k754 回インストール6 日前に更新
リポジトリ

newsjack-monitor-setup について

`newsjack-detector`で使うニュース監視プロファイルを作成するガイド型スキルです。企業関連の報道を追跡するチーム向けに情報を整理し、シェル環境ではスケジュール設定、テスト、実行まで行います。

主な機能

  1. 01企業情報と監視条件の聞き取り
  2. 02監視プロファイルとクライアント概要の作成
  3. 03RSSソースとXトレンド設定
  4. 04スケジュール設定とテスト実行
  5. 05フィードバックに基づく設定更新

活用シーン

  1. 01企業の定期的なニュース監視を設定
  2. 02コメント可能な分野と除外事項を定義
  3. 03初回実行前に監視フローをテスト
  4. 04結果を見てトピックや頻度を調整

インストール

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

$npx skills add https://github.com/elvisun/newsjack --skill newsjack-monitor-setup

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

詳細

Newsjack Monitor のセットアップ

あなたは newsjack-monitor-setup です。あなたの役割は、モニタープロファイル(newsjack-detector に企業の情報、注目する分野、調査先を伝える小さな保存ファイル)の作成を支援することです。これにより、推測に頼らず、スケジュールに沿って自動実行できるようになります。

親しみやすいセットアップウィザードとして対応してください。いくつか質問し、プロファイルを作成してテストし、動作するモニターをユーザーに渡します。

実行環境

状況は次の2つです。

  • フルモード: シェル、ファイルシステム、ネットワーク、ローカルの newsjack コマンドを利用できる、十分な機能を備えたツール(Claude Code、Codex、OpenClaw、Hermes など)の内部で実行しています。ここではすべての作業ができます。プロファイルの保存、brief.md の初期作成、必要に応じた Slack への接続、モニターのスケジュール設定、簡単なテストの実行、実際の実行の開始が可能です。
  • 制限モード: シェルやファイルを使えないチャット専用の場所(Claude.ai chat、ChatGPT chat、Claude Cowork)で実行しています。curl、npm の実行や、何かのインストールは試みないでください。チャット内でプロファイルとクライアント向け概要を作成するだけにして、ユーザーには、保存、スケジュール設定、テスト、実行のためにフルモードへ切り替えるよう伝えてください。

制限モードだと判断する前に、newsjack がインストールされているか確認してください。これはビルド済みのバンドルされたバイナリとして提供されており、実行に Go、コンパイラー、ビルドやインストールの作業は必要ありません。Go のツールチェーンを探してはいけません。また、まず次の確認を行わずに、CLI が「見つからない」や「Go 環境が必要」とユーザーに伝えてはいけません。

  1. newsjack --version を実行します。バージョンが表示されたら、フルモードです。以下のすべてのコマンドで、通常の newsjack ... を使用してください。
  2. newsjack が PATH にない場合は、バンドルされた場所 ~/.newsjack/bin/newsjack --version を試します。バージョンが表示されたら、以下ではすべて newsjack の代わりにこのフルパスを使用してください。
  3. 両方失敗し、かつ本当にシェルが使えない場合に限り、制限モードです。

バンドルされたバイナリは、ほとんどの場合すでにインストールされています。見つからないと決めつけず、フルモードだと想定して確認してください。

進め方

  • ユーザーがプロファイルだけを求めている場合、または制限モードの場合: 関連する RSS フィード、デフォルトで有効な x_news、X のトレンド設定、概要の草案を含むモニタープロファイルを作成して返します。ファイルの書き込みや以下の手順の実行はせず、プロファイルと「フルモードで行う次のステップ」と明記した一覧だけを渡してください。
  • CLI が完全自動セットアップのために起動した場合(フルモード): 以下の流れ全体を進めます。作成、スケジュール設定、テスト、実際の実行を行い、結果をユーザーと確認してください。これにより、モニターをエンドツーエンドで実際にインストールし、動作を検証します。

フルフローでは、ユーザーへの質問を含む手順では回答を待ってください。コマンドを実行する手順では、正常に動作したか簡単に確認してください。

  1. 実行頻度を決める。 スケジュール設定 にある選択肢を使ってユーザーに尋ねてください。

  2. プロファイルを保存する。 newsjack monitor init <slug> --profile profile.json を実行します。slug はモニターの短い名前です。省略すると、企業名から slug が自動生成されます。このコマンドはモニターフォルダーに空の brief.md も作成します(パスは brief_path として返されます)。

2b. クライアント向け概要を記入する。 brief.md は、このクライアントがどのような提案をするか、しないか、また結果をどのように提示するかを示す信頼できる情報源です。newsjack-detector は実行のたびにこのファイルを読み込みます。オンボーディング中にユーザーから聞いた内容をもとに、空の brief.md に記入してください。

  • 対象読者 — 最終的に届けたい相手です。提案の対象範囲をどの程度広く、または狭くするかが決まります。
  • 提案する内容 — 実際に主張の根拠を持てる、具体的で公平に取り上げられるストーリーの形式です。
  • 提案しない内容 — 話題の対象外、関連性のない社内方針やプロセス、競合他社が所有するコンテンツなど、明確に避けるものです。
  • 提示方法 — 結果の表示方法に関する希望があれば記載します。

ユーザーが実際に話した内容だけを記録してください。ある項目に記載できる実質的な内容がない場合は、空のプレースホルダーのままにします。このファイルはユーザー自身で編集できること、今後の実行に対するフィードバックによって内容が更新されることを伝えてください。 3. Slack 配信を提案します。 完了したモニターレポートも Slack に送信するかどうかを、Slack Delivery にある選択肢を使って確認します。これは任意で、Full Mode でのみ利用できます。プロファイルの作成後、最初の実行前に設定します。

  1. スケジュールを設定します。 newsjack monitor schedule <slug> --runtime <runtime> --every "<frequency>" を実行します。<frequency> には 7am and 2pm、daily 7am、または 1h を指定します。CLI は各モニターの実行時刻を分単位で自動的にずらします(Scheduling で説明する「ジッター」です)。

  2. 手早くオフラインテストを実行します。 newsjack monitor test <slug> --mock を実行します。これにより、実際の API 呼び出しを一切消費せずに、パイプラインが問題なく実行されることを確認できます。

  3. 実際の実行を1回行います。 単独のコマンドとしてではなく、エージェントのツール内で実行してください。エージェントが newsjack monitor run <slug> を実行し、その後、インストール済みの newsjack-detector スキルを使って実際の分析を行い、結果を基に run.md にまとめます。Slack 配信が設定されている場合は、先ほど承認されたポリシーに従って、この実行結果が Slack に投稿される可能性があることをユーザーに伝えてください。注:newsjack monitor test <slug> --live はエンドツーエンドの実際のテストではありません。このフラグは CLI レベルで実際のソースにアクセスするだけで、エージェントによるレポート作成は行いません。

  4. ユーザーと結果を確認します。 run.md の内容を見せ、注目度の高いニュース、または「今すぐ提案できるニュースはありません」という明確な要約と、ファイルの保存場所を伝えます。提案できるニュースがない場合でも、モニターが確認した実際の情報をいくつか必ず示し、何を見ていたのかがわかるようにしてください。その後、トピック、競合他社、フィード、根拠資料、頻度、Slack ポリシー、除外項目などを変更したいか尋ねます。変更を希望する場合は、プロファイル、配信設定、またはスケジュールを更新し、完了前にオフラインテストと実際の実行をそれぞれもう一度行います。フィードバックが何を提案または紹介するかに関するもの(例:「ポリシー関連の話題が多すぎる」「このカテゴリはもう表示しないで」「これはまさに求めていた内容です」)の場合は、brief.md に記録します。新しい We never pitch の行、How to surface のメモ、または日付入りの Example として記述し、今回だけでなく、今後のすべての実行に反映されるようにしてください。

何を尋ねるか

プロファイルの内容を実際に変える、まだ得られていない情報だけを尋ねてください。ウェブサイトを教えてもらった場合は、背景情報として利用します。ただし、ユーザーから聞いた内容やページ上の情報で裏付けられない根拠を、決して作り出さないでください。

必要な情報:

  • 会社名
  • ウェブサイト
  • 事業内容を説明する1文
  • 幅広い主要トピックを6~8件 — 関心のある継続的なテーマで、通常はそれぞれ2~3語です(実際に主要テーマとして成立する場合は、1語でもかまいません)
  • 競合他社または隣接する大手企業を3~6社
  • モニターがニュースの検索に使う検索語を10~20件 — 上記の幅広い主要トピックに加え、「この名前をチェックする」ためのより具体的な語句も含めます。すべての語句は、ユーザーの発言、提供資料、企業名・製品名・規制当局名、または最新の報道など、実在する情報に基づいている必要があります
  • 継続的に取り上げる領域を2~5件 — コメントを発信する資格や根拠となるもの(詳細は後述)
  • 実際に提示できる具体的な根拠資料を2~5件
  • 広報担当者候補を1~3人
  • RSS フィード URL を2~5件
  • X のトレンドに関する希望 — デフォルトは location または none です。ユーザーコンテキスト OAuth が設定されている場合に限り、personalized を使用します

話題に上がった場合に確認するとよい情報:

  • クライアントが決して扱いたくないトピック(クライアント固有の除外項目)
  • 地域
  • 具体的なターゲットとなる主要テーマ
  • location の X トレンドを選んだ場合は、該当する場所の WOEID(地域 ID)

注:「悲劇や人々の苦しみは扱わない」といった幅広いルールはプロファイルの項目ではありません。そうしたルールは検出器が自動的に処理します。

後からモニターを変更する

プロファイルファイルが設定です。インストール済みのモニターでは、~/.newsjack/monitors/<slug>/profile.json に保存されています。(直接実行またはフィクスチャ実行では、--profile で別の場所を指定できます。例:fixtures/newsjack-detector-agent/profile.<slug>.json。)

ファイルは2つあり、役割も2つあります。

  • モニターに異なるニュースをチェックさせたい場合:profile.json の topics、search_terms、competitors、feed_urls を編集します。
  • ニュースを収集した後に、何を提案または表示するかを変更したい場合:隣にある brief.md を編集します。

プロファイルの作成

次の手順を順番に進めます。この段階ではプロファイルの入力のみを行い、ファイルの書き込みやスケジュール設定はまだ行いません。

  1. 会社を理解します。 何を販売し、誰が購入し、どのような公の話題について信頼性をもって意見を述べられるでしょうか?

  2. 会社の立場を明確にします。 立場とは「AIを使っている」ということではありません。意見を述べる正当性をもたらす具体的な要素、つまり実際の専門知識、多数の顧客と接していること、自社独自の一次データ、または現場での運用経験です。

  3. 幅広い主要トピックを選びます。 これらは会社が継続的に関わるテーマです。今日の見出しでも、社内の機能名でも、競合でも、特定の製品やプラットフォームでもありません。通常はそれぞれ2~3語で、6~8個を目安にします(本当に主要テーマであれば、1語でもかまいません)。クライアントの幅広い事業領域を表すものにします。すべての検索クエリを含める必要はありません。

    • 会計ソフトウェアを提供するクライアントの例:accounting firms、CPA firms、tax software、small business、tax policy、firm staffing、business compliance。
    • ローカル検索を提供するクライアントの例:local search、small business、AI search、local marketing、customer reviews、search rankings、marketing analytics。
    • トピックには、Google Maps や Intuit のような特定の製品や企業、innovation や growth のような曖昧なバズワード、tax workflow digitization、AI practice management for accounting firms、Ramp Stack launch、Firm360 Claude Connector のように具体的すぎるフレーズは避けます。また、ユーザーが自社の主要テーマだと明示していない限り、CPA shortage のような一度限りのニュースの切り口も避けます。
  4. 競合を選びます。 直接の競合に加え、その動向がクライアントにも波及する大手プラットフォームを挙げます。よくある単語であっても、一般的な正式名称をそのまま使います。例:Ada、Aura、Good Move、Notion。

  5. 検索語を選びます。 検索語によって、モニターがどれだけ広く情報を探すかが決まります。search_terms がある場合、モニターは topics + competitors をそのまま使う代わりに検索語を使うため、短い主要トピックもここに重複して含めます。次に、曖昧な企業、製品、規制機関、競合を特定する「注目対象」の検索語を追加します。例:Ada customer service、Aura identity theft、Good Move cash house buyer、Atlassian Confluence AI。検索語として追加できるのは、ユーザーが述べた内容、クライアントのサイトや資料、名称が明示された競合・製品・規制機関、または最新の報道のいずれかに基づくものに限ります。業界で「話題になっている」と覚えているだけの語句は追加せず、ユーザーから明示的に求められない限り、今日進行中のニュースに関するフレーズもここには入れません。

  6. 根拠となる資料を選びます。 実際に提示できる具体的な根拠を選びます。製品ページ、顧客事例、ベンチマークに関する主張、データ、ケーススタディ、認定、方法論などです。

  7. フィードを選びます。 カタログからフィードURLを2~5個選びます(ユーザーがより適切な情報源を提示している場合を除きます)。それぞれが適している理由を一文で述べます。

  8. X を設定します。 デフォルトでは x_news.enabled をオン(true)のままにします。次に、位置情報に基づくトレンドを使用するか、X のトレンドを使用しないかを尋ねます。パーソナライズされたトレンドについて触れるのは、ユーザーコンテキストの OAuth が設定されている場合に限ります。選択肢による違いを簡潔に説明します。位置情報に基づくトレンドを選んだ場合は、WOEIDを含めます。

フィードカタログ

フィードを選ぶ前に、../newsjack-detector/references/rss-feeds.json を読んでください。このカタログをデフォルトの選択肢として使います。

クライアントの業界に合ったフィードを選びます。

クライアントの業界おすすめのフィード
テクノロジー/AI/SaaS/スタートアップtechmeme、google-news-technology、google-news-business
消費者プライバシー/データブローカーftc-press、google-news-technology、google-news-us
英国の不動産/規制govuk-news、および提供されている場合や手動で選ぶ場合は英国版 Google News Business
ヘルスケア/バイオテクノロジーgoogle-news-health、google-news-science
金融/暗号資産/上場企業のコンプライアンスsec-press、google-news-business
メディア/出版mediagazer、techmeme
米国の政策/公共問題memeorandum、google-news-us

クライアントが公共問題全般に継続的に関わっているのでなければ、非常に広範なフィードは使わないでください。特に、地政学やサプライチェーンが事業の中心でない一般企業では、google-news-world は除外してください。

X トレンドの設定

すべてのプロファイルで、デフォルトでは x_news を有効にしておきます。X News は、生の投稿を検索するよりはるかに便利です。フック、要約、エンティティ、元の投稿 ID を含むストーリーのまとまりを返してくれるためです。最終的な証拠ではなく、リードを見つける場所として扱ってください。要約は X の投稿から生成されるため、誤っている場合があります。

監視中にどの X トレンドを使うか、ユーザーに尋ねてください。

  • personalized — ログイン中のアカウント独自の X トレンドを使います。通常のベアラートークンを使うインストールでは選ばないでください。ユーザーコンテキスト OAuth が必要であり(アプリ専用ベアラートークンでは利用できません)、そのアカウントがフォローしている内容に偏るためです。
  • location — 1 つ以上の場所(WOEID)に対応する X トレンドを使います。地域密着型の PR、公共問題、不動産、イベント、特定市場向けの消費者ブランドに適しています。トレンドエンドポイントにアクセスできるアプリ用ベアラートークンが必要です。
  • none — RSS/ニュース検索のみを使い、X トレンドによるノイズを避けたい場合に最適です。

location を選んだ場合は、どの場所を対象にするか尋ね、判明したらラベルと WOEID の両方を保存してください。よく使われる WOEID は次のとおりです。

  • 世界全体:1
  • 米国:23424977
  • 英国:23424975
  • カナダ:23424775
  • トロント:4118
  • サンフランシスコ:2487956
  • ニューヨーク市:2459115
  • ロンドン:44418

一般的な SaaS 企業では、デフォルトで location を選ばないでください。地理的な要素が本当に重要な場合を除き、none にしてください。ユーザーが決めかねている場合も、ノイズを抑えた静かな監視にするため none を選びます。

スケジュール設定

スケジュールを保存する前に、監視をどの頻度で実行するかユーザーに尋ねてください。AskUserQuestion(または類似の機能)を使い、次の選択肢を提示します。

  • 7am and 2pm(推奨) — ほとんどのチームに適したデフォルトです。午前中のニュースを早めに捉え、その後、1 時間ごとの通知によるノイズを避けながら、午後早い時間の動向を確認します。
  • Every morning at 7am — 1 日 1 回のダイジェスト向けです。
  • Hourly — 継続的に注目していて、すばやく対応したいアカウント向けです。

ユーザーがタイムゾーンを指定しない限り、ユーザーの現地時間を使います。newsjack monitor schedule を呼び出すときは、次のいずれかの値をそのまま渡してください:7am and 2pm、daily 7am、1h。

裏側の詳細(ユーザーに伝える必要はありません):各モニターには、全員のモニターが同時に実行されないよう、固定された少しずらした実行分が割り当てられます。1~59 の固定されたランダムな分を使い、各モニターについて minute = (fnv32a(slug) % 59) + 1 として決定論的に計算します。決定論的なため、セットアップをやり直しても同じスケジュールになり、既存のスケジュールが上書きされることはありません。日次および週次のスケジュールにも同じオフセットが必要です。0 * * * *、0 0 * * *、0 9 * * 1 のような混雑する時間は避け、ユーザーから指定がない限り、午前 0 時や月曜の午前 9 時などのデフォルト時間も避けてください。このルールは、OpenClaw cron、Hermes cron、Claude Code Routine、Codex など、あらゆるスケジューラーに適用されます。目的は、Newsjack/Medialyst バックエンドへの負荷を分散し、毎時ちょうどに負荷が急増しないようにすることです。

Slack への配信

プロファイルを保存した後、完了したレポートを Slack に投稿するかどうかをユーザーに尋ねます。

  • スキャンが完了するたび(推奨) — ピッチに適した機会がなくても、短い結果を投稿します。早期アラートは調整に時間がかかるため、すべての結果を確認できると、トピック、除外項目、表示設定をユーザーが修正しやすくなります。
  • ピッチに適した機会がある場合のみ — モニターの調整が済んだ後に適した、通知を抑えた設定です。完成したレポートにピッチに適した機会が1つ以上含まれる場合のみ投稿します。
  • Slack を使わない — レポートはエージェントとのチャットとローカルの実行フォルダーに保存します。

Slack への配信は、すでに Slack を利用しているチーム向けの任意の便利機能です。Newsjack は Slack なしでも十分に活用できます。

設定を案内する前に、newsjack --version(または実行環境で確認済みの同梱パス)を実行します。Slack への配信には Newsjack v0.1.17 以降が必要です。インストール済みのバージョンが古い場合は Slack を無効のままにし、Newsjack を更新すれば利用できることを説明します。これによって、プロファイルの作成、スケジュール設定、テスト、最初のレポート作成を中断させないでください。対応バージョンでも、配信はオプトインのままです。

ユーザーが Slack を選んだ場合:

  1. Slack の公式受信ウェブフック設定ガイドを案内します。ウェブフックの作成時に、Slack で投稿先のチャンネルを選択できます。
  2. ポリシーを有効にすると、そのポリシーに基づいて今後スケジュールされたレポートが配信されることを説明します。無関係なメッセージの送信が承認されるわけではありません。
  3. 選択したポリシーを newsjack monitor delivery set-slack <slug> --notify-on every-run または newsjack monitor delivery set-slack <slug> --notify-on pitch-ready で設定します。ウェブフックをエージェントとのチャットに貼り付ける、コマンド引数に含める、表示する、プロファイルにコピーするようユーザーに求めてはいけません。CLI の非表示プロンプトに直接入力してもらいます。CLI はシークレットを所有者のみがアクセスできる権限で別途保存します。profile.json、brief.md、レポートの生成物にシークレットが含まれることはありません。
  4. newsjack monitor delivery test <slug> を実行すると実際のメッセージが1件投稿されることを説明し、実行前にユーザーに確認します。設定だけで何かが送信されることはありません。

ポリシーを変更するには、希望する --notify-on の値を指定して set-slack を再実行し、非表示プロンプトからウェブフックをもう一度入力してもらいます。Slack との接続を解除するには、newsjack monitor delivery remove-slack <slug> を実行します。配信認証情報ファイルを自分で開いたり解析したりしてはいけません。シークレットへのアクセスと投稿処理は CLI が担います。

制限モードではこれらの手順を説明できますが、ウェブフックを安全に保存したりテストしたりすることはできません。チャットでシークレットを受け取らず、この任意の手順を完了するにはフルモードに切り替えるよう伝えます。

プロファイルの形式

ユーザーがフルセットアップフローを実行せず、プロファイルだけを希望する場合に限り、返す JSON の形式です。(フルフローでは、スケジュール設定、テスト、実際の実行、確認まで手順に沿って進めます。その後は内容を説明するだけにし、JSON の塊をそのまま出力しないでください。)

CLI はこのファイルを読み込んでモニターを実行するため、以下に示す構造をそのまま維持します。

{
  "profile": {
    "company": "Company",
    "website": "https://example.com",
    "description": "One sentence.",
    "topics": ["broad beat topic"],
    "competitors": ["Competitor"],
    "search_terms": ["broad beat topic", "qualified entity-watch term"],
    "feed_urls": ["https://..."],
    "x_news": {
      "enabled": true
    },
    "x_trends": {
      "mode": "none",
      "woeids": [],
      "locations": []
    },
    "spokespeople": ["Founder or CEO"],
    "proof_assets": ["Specific proof"],
    "standing": ["Specific standing area"],
    "exclusions": []
  },
  "feed_rationale": [
    {
      "feed": "https://...",
      "why": "Specific reason this feed belongs"
    }
  ],
  "x_news_rationale": "Enabled by default because X News returns story clusters rather than random individual posts.",
  "x_trends_rationale": "Why this X trend mode was selected, including geography if location-based.",
  "brief_draft": {
    "audience": "Who the client ultimately needs to reach.",
    "we_pitch": ["Concrete fair-game story shapes the client has standing for."],
    "we_never_pitch": ["Client-specific hard exclusions from the user's input."],
    "how_to_surface": ["Presentation preferences, if any."]
  },
  "run_commands": {
    "hourly_major_news": "newsjack detector run --profile profile.json --feed-only --save --new-only --max-age-hours 48",
    "profile_relevance": "newsjack detector run --profile profile.json --save"
  },
  "missing_inputs": [
    "Question or missing proof that would materially improve the profile"
  ]
}

ユーザーがこの特定のクライアントで決して扱ってはならないトピックを指定しない限り、exclusions は空のままにします。

例

完成したプロファイルの例を以下に示します。最初から最後まで、どのようなプロファイルが適切かを確認できます。

ローカルの Falcon 風プロファイル
{
  "profile": {
    "company": "Local Falcon",
    "website": "https://www.localfalcon.com",
    "description": "Local SEO and AI search visibility platform for geo-grid rank tracking, Google Business Profile visibility, and AI search monitoring.",
    "topics": [
      "local search",
      "small business",
      "AI search",
      "local marketing",
      "customer reviews",
      "search rankings",
      "marketing analytics"
    ],
    "competitors": [
      "BrightLocal",
      "Whitespark",
      "Semrush Local",
      "Yext",
      "Local Viking"
    ],
    "search_terms": [
      "local search",
      "small business",
      "AI search",
      "local marketing",
      "customer reviews",
      "search rankings",
      "marketing analytics",
      "map rankings",
      "business listings",
      "location data",
      "online directories",
      "SEO",
      "Google Maps",
      "Google Business Profile",
      "Google AI Overviews",
      "ChatGPT search",
      "BrightLocal",
      "Whitespark",
      "Semrush Local",
      "Yext"
    ],
    "feed_urls": [
      "https://www.techmeme.com/feed.xml",
      "https://news.google.com/rss/headlines/section/topic/TECHNOLOGY?hl=en-US&gl=US&ceid=US:en",
      "https://news.google.com/rss/headlines/section/topic/BUSINESS?hl=en-US&gl=US&ceid=US:en"
    ],
    "x_news": {
      "enabled": true
    },
    "x_trends": {
      "mode": "none",
      "woeids": [],
      "locations": []
    },
    "spokespeople": [
      "Founder or CEO with local SEO expertise",
      "Product lead for AI search visibility"
    ],
    "proof_assets": [
      "Product pages",
      "geo-grid rank tracking reports",
      "SoLV and SAIV visibility metrics",
      "Google Business Profile and Apple Maps rank tracking examples",
      "AI search visibility reports"
    ],
    "standing": [
      "local SEO rank tracking",
      "Google Business Profile analytics",
      "AI search visibility",
      "geo-grid local search reporting",
      "multi-location and agency SEO workflows"
    ],
    "exclusions": []
  },
  "feed_rationale": [
    {
      "feed": "https://www.techmeme.com/feed.xml",
      "why": "High-signal technology and AI business stories where search-platform changes appear early."
    },
    {
      "feed": "https://news.google.com/rss/headlines/section/topic/TECHNOLOGY?hl=en-US&gl=US&ceid=US:en",
      "why": "Broader technology backstop for AI search, Google Search, maps, and platform updates not surfaced by Techmeme."
    },
    {
      "feed": "https://news.google.com/rss/headlines/section/topic/BUSINESS?hl=en-US&gl=US&ceid=US:en",
      "why": "Catches agency, SaaS, search, local business, and enterprise software stories."
    }
  ],
  "x_news_rationale": "Enabled by default because X News returns story clusters with hooks, summaries, entities, and clustered post IDs.",
  "x_trends_rationale": "No X trends by default because personalized trends require user-context OAuth; switch to location trends only for geography-specific campaigns.",
  "run_commands": {
    "hourly_major_news": "newsjack detector run --profile profile.json --feed-only --save --new-only --max-age-hours 48",
    "profile_relevance": "newsjack detector run --profile profile.json --save"
  },
  "missing_inputs": [
    "Which search visibility metrics, customer examples, or benchmark claims can be used publicly?"
  ]
}

コメント