SkillAtlasSkill 详情

news-signal-outreach

Put your AI agent on the growth team.

审核状态:已审核Quality 72Security 60

复制安装命令

用 Codex 或 Claude 安装复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它先审查 Skill 页面再帮你安装。

复制前请先查看来源、License 和安全提示。

项目 README

来源文件:README.md

抓取于 2026年8月21日
CleanShot 2026-07-13 at 20 15 47@2x CleanShot 2026-07-13 at 20 16 54@2x

AI Skills for Brand Growth

Put your AI agent on the growth team.

Research customers and competitors, analyze what is working, create the next campaign, and learn from the result. Goose Skills gives Claude Code, Cursor, Codex, and other coding agents ready-to-use workflows for ads, social media, content, competitive intelligence, SEO, lead generation, and GTM.

Browse all skills at https://skills.gooseworks.ai

Works with Claude Code · Cursor · Codex

npm version License: MIT Skills


Contents


Quick Start

AI Coding Agents (Claude Code, Cursor, Codex, etc)

Paste this into your coding agent (Claude Code, Cursor, or Codex) and it'll set everything up:

Install the Gooseworks skills:

In the terminal, run `npx gooseworks install --all`.

Then run `npx gooseworks login` and it'll open a browser to sign in and set up the tools, then confirm it worked.

The skills can be used with /gooseworks <prompt>

Claude Cowork

Run this command in a terminal first:

npx gooseworks install --all

Then authenticate:

npx gooseworks login

Then make sure you're working inside a local folder on your machine, and then you can use the skills in Cowork like this:

Use /gooseworks skill to generate some ad creatives

Install manually

Prefer to run it yourself? Use the command directly:

npx gooseworks install --all       # All detected agents

This gives your coding agent access to the full catalog of 200+ skills. After installing, just ask your agent to use any skill by name.

If you want a cloud-based AI coworker that already knows all these skills and more, sign up to Gooseworks


Brand Growth collection

The Brand Growth collection is a curated path through the normal Goose Skills catalog for consumer and ecommerce brand work. It is not a separate package or command: install GooseWorks once, then ask /gooseworks for the outcome you need.

StageWhat your agent can doExample skills
ResearchUnderstand the brand, customers, competitors, audiences, creators, trends, comments, and product demandbrand-research, audience-research, comment-mining, competitor-social-research, influencer-prospecting, trend-discovery, product-demand-research
AnalyzeDiagnose ads, creator profiles, transcripts, policy risk, landing-page message match, and unusual social performancecompetitor-ad-intelligence, creator-profile-teardown, transcript-intelligence, meta-ads-analyzer, meta-ad-policy-checker, ad-to-landing-page-auditor, outlier-post-finder
CreateRepurpose research, remix graphic ads, make product photography and social graphics, and animate static imagescontent-repurposing, remix-graphic-ad-from-reference, product-photoshoot, goose-graphics, animate-image
Learn and iterateBring results back into research and analysis, then decide the next testRe-run the relevant analysis skill with current performance and audience evidence

ScrapeCreators powers structured public social and ad-library research behind several workflows. Signed-in GooseWorks users access it through the managed first-party proxy and do not need a separate ScrapeCreators key. The user-facing skills turn that source data into a brief, shortlist, analysis, or recommendation instead of returning raw API output.

Browse the Brand Growth collection

After installation, start with:

/gooseworks onboard me

The agent will collect the useful company context for future growth work and finish by asking what you want to do first. Existing users can skip onboarding and keep using /gooseworks exactly as they do today.


Commands

npx gooseworks search "reddit scraping"   # Search the skill catalog
npx gooseworks credits                     # Check your credit balance
npx gooseworks update                      # Update to latest skill version

Skills Catalog

200+ skills across the growth stack, grouped by focus area:

CategoryWhat's inside
AdsResearch, build, and analyze paid campaigns across Meta and Google
SEOKeyword research, content gaps, SERP analysis, technical audits
Lead generationFind, enrich, and qualify prospects for your pipeline
OutreachDraft, personalize, and run outbound across email and social
ContentBlog posts, social content, carousels, video scripts, newsletters
ResearchCompany, market, and prospect deep-dives
Competitive intelTrack competitor pricing, launches, positioning, and ads
MonitoringWatch for mentions, signals, and changes across the web
SocialScrape and analyze social platforms and audiences
BrandVoice, positioning, and visual brand assets

Browse and search every skill at skills.gooseworks.ai.


Usage Examples

After installing, just ask your coding agent naturally:

"/gooseworks Generate static ad creatives for my brand"
"/gooseworks Use the reddit-post-finder skill to search r/startups"
"/gooseworks Use the apollo-lead-finder skill to find CTOs at AI companies"
"/gooseworks Use the competitor-intel skill to research Acme Corp"
"/gooseworks Use the goose-graphics skill to create a LinkedIn carousel about our launch"

Your agent will search the GooseWorks catalog, download the skill, and run it automatically.


Building from Source

git clone https://github.com/gooseworks-ai/goose-skills.git
cd goose-skills
node scripts/validate-skills.js  # Validate SKILL.md + skill.meta.json contract
node scripts/build-index.js      # Generate skills-index.json
node bin/goose-skills.js list    # Test locally

Skill Metadata Contract

Each skill directory must include:

  • SKILL.md — Skill documentation and usage guide
  • skill.meta.json — Machine-readable metadata

skill.meta.json fields:

FieldRequiredDescription
slugYesUnique kebab-case identifier
categoryYescapabilities, composites, or playbooks
tagsYesString array of category tags
installation.base_commandYesInstall command
installation.supportsYesArray: claude, codex, cursor
featuresNoFeature flags
github_urlNoSource repository URL
authorNoSkill author
example_promptNoCopyable prompt shown in the catalog and docs for trying the skill

Security & Trust

These skills run inside your coding agent, so it's worth knowing exactly what they do:

  • Open source & inspectable. Every skill — its SKILL.md instructions and all scripts — lives in this repo under the MIT license. The gooseworks CLI fetches skills at runtime so recipes stay current, but the source you'd run is right here to read, diff, or pin before you run it.
  • Scripts run locally. Skill scripts execute on your machine and write to /tmp/gooseworks-scripts/, never into your project directory. Only API requests go through GooseWorks servers; review any script before letting your agent run it.
  • Your agent stays in control. The skills are a tool your agent reaches for when it fits the task (data at scale, sources behind auth, a specific provider) — not a replacement for its built-in web search or fetch on quick lookups. You can read or edit any installed SKILL.md to tune that behavior.
  • Credentials stay local. Auth is a Bearer token stored at ~/.gooseworks/credentials.json (file mode 0600). Third-party provider keys (Apify, Apollo, etc.) are held server-side — your token never touches them. All network calls are HTTPS.
  • The MCP server is opt-in. Registering the GooseWorks MCP server is off by default; it only happens if you explicitly run gooseworks install --mcp.

Found something that looks off? Open an issue — we'd rather fix it in public.


License

MIT — see LICENSE for details.

The skill files and CLI in this repository are MIT-licensed. The GooseWorks API they connect to is a separate paid service governed by its own terms.

其他

高风险

  • 来源需自行核对维护者身份。
  • 未检测到明显脚本安装指令。
  • 可能需要外部 token、网络权限或第三方服务。
  • 存在潜在风险命令,请谨慎安装。
  • 扫描发现:3 条。

Codex — Git Clone 安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 克隆仓库:git clone https://github.com/gooseworks-ai/goose-skills.git
  3. 将 "skills/outreach/composites/news-signal-outreach" 文件夹复制到 Codex 的 skills 目录中。
  4. 重启 Codex 让新的 skill 生效。

Codex — 手动复制安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 从源仓库下载 SKILL.md 及相关文件。
  3. 在 Codex 的 skills 目录中创建新文件夹。
  4. 将所有 skill 文件复制到新文件夹中。
  5. 重启 Codex 让新的 skill 生效。

Claude Code — Git Clone 安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 克隆仓库:git clone https://github.com/gooseworks-ai/goose-skills.git
  3. 将 "skills/outreach/composites/news-signal-outreach" 文件夹复制到 Claude Code 的 skills 目录中。
  4. 重启 Claude Code 让新的 skill 生效。

Claude Code — 手动复制安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 从源仓库下载 SKILL.md 及相关文件。
  3. 在 Claude Code 的 skills 目录中创建新文件夹。
  4. 将所有 skill 文件复制到新文件夹中。
  5. 重启 Claude Code 让新的 skill 生效。

Cursor — Git Clone 安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 克隆仓库:git clone https://github.com/gooseworks-ai/goose-skills.git
  3. 将 "skills/outreach/composites/news-signal-outreach" 文件夹复制到 Cursor 的 skills 目录中。
  4. 重启 Cursor 让新的 skill 生效。

Cursor — 手动复制安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 从源仓库下载 SKILL.md 及相关文件。
  3. 在 Cursor 的 skills 目录中创建新文件夹。
  4. 将所有 skill 文件复制到新文件夹中。
  5. 重启 Cursor 让新的 skill 生效。

GitHub Copilot — Git Clone 安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 克隆仓库:git clone https://github.com/gooseworks-ai/goose-skills.git
  3. 将 "skills/outreach/composites/news-signal-outreach" 文件夹复制到 GitHub Copilot 的 skills 目录中。
  4. 重启 GitHub Copilot 让新的 skill 生效。

GitHub Copilot — 手动复制安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 从源仓库下载 SKILL.md 及相关文件。
  3. 在 GitHub Copilot 的 skills 目录中创建新文件夹。
  4. 将所有 skill 文件复制到新文件夹中。
  5. 重启 GitHub Copilot 让新的 skill 生效。

Windsurf — Git Clone 安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 克隆仓库:git clone https://github.com/gooseworks-ai/goose-skills.git
  3. 将 "skills/outreach/composites/news-signal-outreach" 文件夹复制到 Windsurf 的 skills 目录中。
  4. 重启 Windsurf 让新的 skill 生效。

Windsurf — 手动复制安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 从源仓库下载 SKILL.md 及相关文件。
  3. 在 Windsurf 的 skills 目录中创建新文件夹。
  4. 将所有 skill 文件复制到新文件夹中。
  5. 重启 Windsurf 让新的 skill 生效。
查看 SKILL.md 原文
name: news-signal-outreach
version: 1.0.0
description: >
  End-to-end news-triggered signal composite. Takes any piece of news — an article,
  LinkedIn post, tweet, announcement, event, trend, regulation, product launch,
  acquisition, layoff, expansion, or any other public event — and evaluates whether
  the companies or people mentioned are ICP fits. If yes, identifies the connection
  between the news and your product, finds the right people to contact, and drafts
  personalized outreach using the news as the hook. Tool-agnostic. Accepts both
  company-level and person-level news triggers.

  AUTO-TRIGGER: Load this composite whenever a user shares a URL (LinkedIn post,
  article, tweet, blog post) or mentions a company/person they "came across",
  "saw", or "found" from any external source and asks about relevance, fit,
  ICP match, or whether to reach out. The user does NOT need to explicitly say
  "outreach" — any signal evaluation request from an external source triggers this.
tags: [outreach]

graph:
  provides:
    - icp-qualified-targets         # Companies/people from the news that fit ICP
    - relevance-angles              # How the news connects to your product
    - contact-list                  # People to reach out to
    - personalized-email-sequences  # Outreach drafts using the news as the hook
  requires:
    - news-input                    # The news item(s) — URL, text, or structured data
    - your-company-context          # What you sell, ICP, proof points
  connects_to:
    - skill: cold-email-outreach
      when: "User wants to launch the campaign via their outreach tool"
      passes: contact-list, personalized-email-sequences
    - skill: linkedin-outreach
      when: "User wants LinkedIn outreach instead of or alongside email"
      passes: contact-list
  capabilities: [web-search, contact-finding, email-drafting]

News Signal Outreach

The catch-all signal composite. Every other composite handles a specific signal type (funding, hiring, leadership change, champion move). This one handles everything else — any piece of news or public event that could create a reason to reach out.

A regulation change. A product recall. A competitor acquisition. A market expansion. A layoff. An earnings miss. A new partnership. An industry report. A conference keynote. A viral LinkedIn post. Any external event that shifts a company's priorities, creates urgency, or opens a window for your product.

Why this composite exists: The world generates an infinite stream of potential outreach triggers. The four structured signal composites handle the most common patterns. This composite handles the long tail — the unpredictable, opportunistic moments that often produce the best outreach because nobody else is sending a templated sequence about them.

When to Auto-Load

Load this composite when ANY of these are true:

  • User shares ANY URL (LinkedIn post, article, tweet, blog, news) and asks about a company or person mentioned in it
  • User says "came across", "saw this post", "found this article", "check this out", "is this relevant", "is this company a fit", "should we reach out"
  • User mentions a company or person they discovered from an external source (social media, news, conference, podcast, newsletter) and asks about relevance or fit
  • User asks "can we reach out to anyone based on this?"
  • User says "check if this news is relevant to our prospects", "news-based outreach", "trigger-based outreach"
  • User has a list of companies and wants to check recent news for outreach angles
  • The news doesn't fit neatly into funding, hiring, leadership change, or champion move categories
  • An upstream workflow surfaces a news item that needs evaluation

Key principle: If the user shares an external signal (URL, post, article, mention) and asks ANY question about the companies/people in it — load this composite. Don't wait for the word "outreach." The composite handles both evaluation-only (Steps 1-3) and full outreach (Steps 1-6).

Input Flexibility

This composite accepts three input modes:

ModeInputExample
News → CompaniesA news item. Extract companies/people mentioned, qualify them."Here's an article about new FDA regulations on telehealth"
Companies → NewsA list of companies. Find recent news about them, evaluate relevance."Check these 50 companies for any news we can use as an outreach angle"
Person → NewsA person or list of people. Find recent news about them or their company, evaluate relevance."Check if any of these prospects have been in the news"

Step 0: Configuration (One-Time Setup)

On first run for a client/user, collect and store these preferences. Skip on subsequent runs.

ICP Definition

QuestionPurposeStored As
What does your company do? (1-2 sentences)Relevance matchingcompany_description
What problem do you solve?Connection angle identificationpain_point
What industries do you sell to?ICP filtertarget_industries
What company sizes?ICP filtertarget_company_size
What geographies?ICP filter (optional)target_geographies
Any disqualifiers?Hard no'sdisqualifiers
Who are your buyers? (titles)Contact findingbuyer_titles
Who are your champions? (titles)Contact findingchampion_titles
Who are your users? (titles)Contact findinguser_titles

Your Company Context

QuestionPurposeStored As
What specific outcomes does your product deliver?Relevance angle buildingproduct_outcomes
Name 2-3 proof points (customers, metrics)Email credibilityproof_points
What categories of news are most relevant to your product?Helps prioritizerelevant_news_categories

Examples of relevant_news_categories:

# For a cybersecurity product:
relevant_news_categories: ["data breach", "compliance regulation", "security incident",
  "digital transformation", "cloud migration", "IPO/going public"]

# For a sales AI product:
relevant_news_categories: ["sales team scaling", "market expansion", "new product launch",
  "competitor acquisition", "cost cutting", "revenue miss"]

# For an HR tech product:
relevant_news_categories: ["layoffs", "rapid hiring", "remote work policy",
  "DEI initiative", "union activity", "culture crisis"]

Signal Detection Config

QuestionOptionsStored As
How should we find news?Web search / Google News / RSS feeds / Social medianews_tool
How far back should we look? (when scanning companies for news)7 / 14 / 30 / 60 dayslookback_days

Contact Finding & Outreach Config

QuestionOptionsStored As
How should we find contacts?Apollo / LinkedIn / Clearbit / Web searchcontact_tool
Where do you want outreach sent?Smartlead / Instantly / Outreach.io / CSV exportoutreach_tool
Email or multi-channel?Email only / Email + LinkedInoutreach_channels

Store config in: clients/<client-name>/config/signal-outreach.json or equivalent.


Step 1: Parse & Extract

Purpose: Take the raw news input — whatever form it arrives in — and extract structured entities (companies, people) and the core event.

Input Contract

Three modes:

Mode A: News → Companies/People

news_input: {
  mode: "news_to_targets"
  items: [
    {
      type: "url" | "text" | "structured"
      content: string               # URL to article, raw text, or structured summary
      source: string | null          # "TechCrunch", "LinkedIn post", "user provided", etc.
    }
  ]
}

Mode B: Companies → News

news_input: {
  mode: "targets_to_news"
  companies: [
    {
      name: string
      domain: string
      industry?: string
    }
  ]
  lookback_days: integer
}

Mode C: People → News

news_input: {
  mode: "people_to_news"
  people: [
    {
      full_name: string
      company: string
      linkedin_url?: string
    }
  ]
  lookback_days: integer
}

Process

Mode A: News → Companies/People

  1. Fetch and parse the news content:

    • If URL → fetch the page, extract article text
    • If raw text → use as-is
    • If structured → use as-is
  2. Extract entities:

    • Companies mentioned (name, role in the story — subject, affected party, partner, competitor)
    • People mentioned (name, title, company, role in the story)
    • The core event (what happened, in one sentence)
    • Event category (regulation, acquisition, partnership, product launch, market event, crisis, expansion, contraction, etc.)
    • Date of event
    • Affected industries
  3. Expand if needed: If the news implies a broader set of affected companies beyond those mentioned:

    • "New FDA regulation on telehealth" → all telehealth companies, not just ones in the article
    • "Major data breach at [company]" → the breached company AND their competitors (who can capitalize)
    • "Industry report shows X trend" → companies in that industry

Mode B: Companies → News

  1. For each company, search for recent news using configured news_tool:

    • Web search: "{company_name}" AND (news OR announced OR launches OR raises OR expands OR partners) within lookback_days
    • Filter results against relevant_news_categories from config
    • Extract the same fields as Mode A for each news item found
  2. Group results: Company → list of news items, ranked by relevance to your product

Mode C: People → News

  1. For each person, search for recent news/activity:

    • Web search: "{full_name}" AND "{company}" within lookback_days
    • LinkedIn activity (if available): recent posts, shares, comments
    • Look for: promotions, speaking engagements, published articles, quoted in press, new projects
  2. Group results: Person → list of news items/activity

Output Contract

extracted_signals: [
  {
    entity: {
      type: "company" | "person"
      name: string
      company: string               # Company name (same as name if type=company)
      domain: string | null
      role_in_news: string           # "subject", "affected", "partner", "competitor", "mentioned"
    }
    news: {
      headline: string              # One-line summary of what happened
      event_category: string        # "regulation", "acquisition", "expansion", "crisis", etc.
      event_date: string
      full_summary: string          # 2-3 sentence summary
      source_url: string | null
      affected_industries: string[]
    }
  }
]

Human Checkpoint

## Extracted Signals

Source: [news source/input description]
Event: [one-line summary]
Category: [event category]

### Companies/People Extracted
| Entity | Type | Role in News | Industry |
|--------|------|-------------|----------|
| Acme Corp | Company | Subject | Healthcare |
| Jane Doe | Person | Quoted (CEO) | Healthcare |
| HealthTech sector | Industry | Affected | Healthcare |

Also evaluating: X companies in [affected industry] not directly mentioned

Proceed with ICP qualification? (Y/n)

Step 2: Qualify Against ICP

Purpose: For each extracted entity, determine if they're an ICP fit. Drop companies/people that don't match. Pure LLM reasoning — inherently tool-agnostic.

Input Contract

extracted_signals: [...]              # From Step 1 output
icp_criteria: {
  target_industries: string[]
  target_company_size: string
  target_geographies: string[]
  disqualifiers: string[]
}
your_company: {
  description: string
  pain_point: string
}

Process

For each entity:

  1. If entity is a company:

    • Check industry against target_industries
    • Estimate company size (from news context or quick web search)
    • Check geography if relevant
    • Check against disqualifiers
    • Result: Pass / Fail with reasoning
  2. If entity is a person:

    • Identify their company
    • Qualify the company through the same ICP checks above
    • Additionally check: is this person's role relevant? (matches buyer_titles, champion_titles, or user_titles)
    • Result: Pass / Fail with reasoning
  3. For entities implied but not mentioned (e.g., "all telehealth companies" from a regulation news):

    • Use web search or existing company lists to identify specific companies in the affected space
    • Qualify each against ICP
    • This step may surface new companies not in your existing pipeline

Output Contract

icp_qualified: [
  {
    entity: { ... }                   # From Step 1
    news: { ... }                     # From Step 1
    icp_assessment: {
      fit: "strong" | "moderate"
      industry_match: boolean
      size_match: boolean | "unknown"
      reasoning: string               # Why they're a fit
    }
  }
]
icp_disqualified: [
  {
    entity_name: string
    reason: string
  }
]

Human Checkpoint

## ICP Qualification

### Qualified (X entities)
| Entity | Type | Industry | Size | ICP Fit | Reasoning |
|--------|------|----------|------|---------|-----------|
| Acme Corp | Company | Healthcare SaaS | ~200 | Strong | Core ICP industry, right size |
| MedTech Inc | Company | HealthTech | ~500 | Moderate | Adjacent industry, large |

### Disqualified (X entities)
| Entity | Reason |
|--------|--------|
| BigPharma Co | Enterprise (50K+ employees) — above target size |

Approve qualified list?

Step 3: Identify Connection Angle

Purpose: This is the critical thinking step. For each ICP-qualified entity, determine the specific connection between the news event and your product. Why should they care about your product RIGHT NOW because of THIS news? Pure LLM reasoning — inherently tool-agnostic.

Input Contract

icp_qualified: [...]                  # From Step 2 output
your_company: {
  description: string
  pain_point: string
  product_outcomes: string[]
  proof_points: string[]
  relevant_news_categories: string[]
}

Process

For each qualified entity, answer three questions:

Question 1: "Why does this news create urgency for our product?"

Map the news event category to a product relevance pattern:

Event CategoryHow It Creates UrgencyExample
Regulation changeThey need to comply, your product helps them comply or adapt faster"New data privacy law → they need [your compliance tool] before enforcement date"
Acquisition / MergerSystems need integration, processes need standardization, new leadership evaluates stack"Acquired a company → need to unify [function your product handles]"
Market expansionNew market = new challenges, need tools that scale"Expanding to EMEA → need [your product] for localized [function]"
Product launchScaling up means scaling operations"Launching enterprise tier → need [your product] to handle enterprise [function]"
Competitive pressureCompetitor moved, they need to respond"Competitor launched [X] → they need to level up [area your product addresses]"
Cost cutting / LayoffsDo more with less, automation becomes essential"Cut 15% of staff → need [your product] to maintain output with smaller team"
Crisis / IncidentReactive buying — they need a solution NOW"Data breach → urgently need [your security product]"
PartnershipNew partner = new workflows, new opportunities"Partnered with [company] → need [your product] to support the integration"
Earnings / GrowthOver-performing = scaling challenges. Under-performing = efficiency pressure"Revenue grew 3x → [function your product handles] can't keep up manually"
Industry trend / ReportCategory awareness is high, they're thinking about this"Industry report says [trend] → they're likely evaluating solutions in this space"
Person-level newsPublished an article, spoke at a conference, posted on LinkedIn about a topic you solve"Posted about [pain] → they're actively thinking about this problem"

Question 2: "What's the specific angle?"

Craft a one-sentence connection:

"Because [news event], [company] now needs [specific outcome your product delivers]."

Examples:

  • "Because Acme just acquired BetaCo, they need to unify two separate CRM systems — exactly what [product] does in 30 days."
  • "Because the new HIPAA amendment takes effect in Q3, [company] needs to audit their data handling — [product] automates this."
  • "Because [person] just posted about struggling with [pain], they're actively looking for a solution — [product] solves this."

Question 3: "How strong is this connection?"

StrengthCriteriaExample
DirectThe news explicitly describes a problem your product solvesLayoff in your product's department → they need automation
AdjacentThe news implies a downstream need your product addressesMarket expansion → implies scaling, which implies need for your tool
ThematicThe news is in the same category as your product's domainIndustry report about the trend you're in → awareness play

Output Contract

connection_angles: [
  {
    entity: { ... }
    news: { ... }
    icp_assessment: { ... }
    connection: {
      urgency_reason: string          # Why this news creates urgency
      specific_angle: string          # One-sentence connection
      connection_strength: "direct" | "adjacent" | "thematic"
      timing_note: string             # How time-sensitive this outreach is
      recommended_framework: string   # Which email framework fits best
    }
  }
]

Framework Selection Based on Connection Strength

Connection StrengthRecommended FrameworkWhy
DirectSignal-Proof-AskThe news IS the hook — reference it directly, show proof, ask
AdjacentPASProblem (implied by the news) → Agitate (what happens if they don't act) → Solve
ThematicAIDAAttention (news reference) → Interest (how it relates to them) → Desire (your product) → Action

Human Checkpoint

## Connection Angles

### Direct Connections (X entities) — Act quickly
| Entity | News | Angle | Timing |
|--------|------|-------|--------|
| Acme Corp | Acquired BetaCo | "Need to unify CRM systems — [product] does this in 30 days" | This week (integration planning starts immediately) |

### Adjacent Connections (X entities)
| Entity | News | Angle | Timing |
|--------|------|-------|--------|
| MedTech Inc | Expanding to EMEA | "Localized [function] becomes a requirement — [product] supports 15 languages" | This month |

### Thematic Connections (X entities)
| Entity | News | Angle | Timing |
|--------|------|-------|--------|
| HealthCo | Industry report on [trend] | "They're likely evaluating [category] solutions" | Flexible |

Approve these angles before we find contacts?

Step 4: Find Relevant People

Purpose: For each qualified entity with a connection angle, find the right people to contact.

Input Contract

connection_angles: [...]              # From Step 3 output
buyer_titles: string[]                # From config
champion_titles: string[]             # From config
user_titles: string[]                 # From config
max_contacts_per_company: integer     # Default: 3-5

Process

  1. If the entity is already a person (Mode C or person mentioned in news):

    • They're the primary contact. Still find 1-2 additional contacts at their company (buyer if they're a champion, champion if they're a buyer) for multi-threading.
  2. If the entity is a company:

    • Use configured contact_tool to find people matching buyer_titles, champion_titles, user_titles
    • Prioritize people whose role is closest to the news event:
    News CategoryPrioritize These Contacts
    Regulation / ComplianceLegal, Compliance, Operations leadership
    Acquisition / MergerCOO, CTO, VP Operations, Integration leads
    Market expansionVP Sales, VP Marketing, Country/Regional leads
    Cost cutting / LayoffsCOO, CFO, VP Operations
    Product launchCTO, VP Product, VP Engineering
    Crisis / IncidentCISO, VP Engineering, CTO (for security), CEO/COO (for operational)
    General growthDefault to buyer_titles from config
  3. For each contact, note their relevance to the news:

    • Are they directly affected by the news? (Their department, their function)
    • Are they the decision-maker for the response to this news?
    • Are they the person who will feel the pain this news creates?

Output Contract

contacts: [
  {
    person: {
      full_name: string
      first_name: string
      last_name: string
      title: string
      email: string | null
      linkedin_url: string | null
      role_type: "buyer" | "champion" | "user"
      news_relevance: string         # Why THIS person for THIS news
    }
    company: {
      name: string
      domain: string
    }
    connection: {
      specific_angle: string
      connection_strength: string
      urgency_reason: string
    }
    news: {
      headline: string
      event_category: string
      source_url: string | null
    }
  }
]

Human Checkpoint

## Contacts Found

### Acme Corp — "Acquired BetaCo" (Direct connection)
| Name | Title | Role | Why This Person |
|------|-------|------|----------------|
| Sarah Kim | COO | Buyer | Owns post-acquisition integration |
| David Park | VP Operations | Champion | Will manage unified workflows |
| Amy Chen | Director of Sales Ops | User | Directly affected by CRM unification |

### MedTech Inc — "Expanding to EMEA" (Adjacent connection)
| ... |

Total: X contacts across Y companies

Approve before we draft emails?

Step 5: Draft Personalized Outreach

Purpose: Draft outreach where the news event is the hook, your product is the solution, and the email demonstrates you understand their specific situation. Pure LLM reasoning — inherently tool-agnostic.

Input Contract

contacts: [...]                       # From Step 4 output
your_company: {
  description: string
  pain_point: string
  product_outcomes: string[]
  proof_points: string[]
}
sequence_config: {
  touches: integer                    # Default: 3
  timing: integer[]                   # Default varies by connection strength (see below)
  tone: string                       # Default: "casual-direct"
  cta: string                       # Default: "15-min call"
}

Process

  1. Adjust sequence timing by connection strength:

    StrengthTimingRationale
    DirectDay 1 / 3 / 7Urgency is real — they're actively dealing with this
    AdjacentDay 1 / 5 / 12Standard timing — urgency is implied, not immediate
    ThematicDay 1 / 7 / 14Slower cadence — this is awareness, not crisis response
  2. Build the email around the news, not the product:

    The news is the subject. Your product is the punchline. Never lead with the product.

    ElementSourceHow to Use
    News hookStep 1 news.headlineOpen with what happened — show you're informed
    Impact on themStep 3 connection.urgency_reasonExplain what this means for their specific role
    Your angleStep 3 connection.specific_angleConnect the dots to your product naturally
    ProofConfig proof_pointsShow a peer who faced a similar situation
    CTAConfigLow-friction ask
  3. Email structure by connection strength:

    Direct connection (Signal-Proof-Ask):

    Hook: Reference the specific news event
    Impact: What this means for them (1 sentence)
    Proof: A peer who faced the same situation and used your product
    Ask: Soft CTA
    

    Adjacent connection (PAS):

    Problem: The downstream challenge the news creates
    Agitate: What happens if they don't address it (1 sentence)
    Solve: How your product helps, with a proof point
    Ask: Soft CTA
    

    Thematic connection (AIDA):

    Attention: Reference the news/trend
    Interest: How it relates to their company specifically
    Desire: What your product does in this context
    Action: Soft CTA
    
  4. Personalization layers:

    LayerWhat Gets PersonalizedSource
    News referenceThe specific event and its relevanceStep 1 news data
    Company contextWhat their company does, their industry, their situationStep 2 ICP research
    Role contextWhy THIS person cares about this newsStep 4 news_relevance
    Your company fitHow your product specifically helps in this scenarioStep 3 connection angle
  5. Follow email-drafting skill hard rules. Additionally:

    • Never sensationalize negative news. If the signal is a layoff, breach, or crisis, be empathetic, not opportunistic. "I know this is a challenging time" not "Your layoffs mean you need our tool!"
    • Don't pretend you just happened to see the news. Be direct: "Saw the news about [event]" not "I came across an interesting article."
    • If the news is about a crisis, wait 48-72 hours before reaching out. Immediate outreach during a crisis looks predatory.

Output Contract

email_sequences: [
  {
    contact: { full_name, email, title, company_name, role_type, news_relevance }
    news_context: { headline, event_category, source_url }
    connection: { specific_angle, connection_strength }
    sequence: [
      {
        touch_number: integer
        send_day: integer
        subject: string
        body: string
        framework: string
        personalization_elements: {
          news_reference: string       # How the news was referenced
          company_context: string      # How their company situation was used
          role_context: string         # How their specific role was leveraged
          product_connection: string   # How the product was positioned
        }
        word_count: integer
      }
    ]
  }
]

Human Checkpoint

Present samples grouped by connection strength:

## Sample Outreach for Review

### Direct Connection: Sarah Kim, COO @ Acme Corp
News: Acme acquired BetaCo | Angle: CRM unification | Framework: Signal-Proof-Ask

**Touch 1 — Day 1**
Subject: Unifying Acme + BetaCo systems
> Hi Sarah — saw the BetaCo acquisition. Congrats. The integration
> sprint typically surfaces a CRM unification challenge fast —
> two systems, overlapping data, different workflows.
>
> [Peer company] faced the same thing after their acquisition last year.
> [Product] had both systems unified in 30 days. Happy to share how.
>
> Worth a 15-minute call?

**Touch 2 — Day 3**
> [New angle — data migration complexity, with a specific metric]

**Touch 3 — Day 7**
> [Breakup with offer to share the integration playbook]

---

### Adjacent Connection: Dr. Lee, VP Product @ MedTech Inc
News: EMEA expansion | Angle: Localization needs | Framework: PAS

**Touch 1 — Day 1**
Subject: EMEA expansion + [function] localization
> [full email]

---

Approve these samples? I'll generate the rest in the same style.

Step 6: Handoff to Outreach

Identical to the other signal composites. Package contacts + email sequences for the configured outreach tool.

Output Contract

campaign_package: {
  tool: string
  file_path: string
  contact_count: integer
  sequence_touches: integer
  estimated_send_days: integer
  next_action: string
}

Human Checkpoint

## Campaign Ready

Tool: [configured tool]
Signal type: News-triggered
News event: [headline]
Connection strengths: X direct, Y adjacent, Z thematic
Contacts: N people across M companies
Sequence: 3 touches (timing varies by connection strength)

Ready to launch?

Execution Summary

StepTool DependencyHuman CheckpointTypical Time
0. ConfigNoneFirst run only5 min (once)
1. Parse & ExtractWeb fetch (for URLs) or none (for text)Review extracted entities2-3 min
2. Qualify ICPWeb search (for company research)Approve qualified list2-3 min
3. Connection AngleNone (LLM reasoning)Approve angles + strength ratings3-5 min
4. Find PeopleConfigurable (Apollo, LinkedIn, etc.)Approve contact list2-3 min
5. Draft EmailsNone (LLM reasoning)Review samples, iterate5-10 min
6. HandoffConfigurable (Smartlead, CSV, etc.)Final launch approval1 min

Total human review time: ~15-25 minutes


Key Difference from Other Signal Composites

DimensionStructured Signals (Funding, Hiring, etc.)News Signal
Signal typePredefined, narrowArbitrary, broad — anything can be a trigger
DetectionTargeted search (job boards, funding databases)Open-ended (any news source)
Extra step—Step 3: Connection Angle identification. Other composites have obvious connections (funding = money to spend). News requires explicit reasoning about WHY this event matters for your product.
Input modesCompanies in → signals outThree modes: News→Companies, Companies→News, People→News
TimingPredictable windows (post-raise, pre-hire)Varies wildly by event type — crisis = 48hr delay, trend = flexible
SensitivityGenerally positive (funding, hiring, growth)Can be negative (layoffs, crises, failures). Requires empathy calibration.

Sensitivity Guidelines

Some news events require careful tone calibration:

Event TypeToneWhat NOT to Do
LayoffsEmpathetic. "I know this is a tough time."Don't say "your layoffs mean you need us!"
Data breach / Security incidentHelpful, not salesy. "If you need help with [specific thing]."Don't pile on or blame. Don't reach out same-day.
Earnings miss / Revenue declineEfficiency-focused. "Do more with what you have."Don't reference the miss directly in the subject line.
Executive departure / Fired CEOSkip the drama entirely. Focus on the new leader or the company's direction.Don't mention the departure unless it's public and amicable.
Lawsuit / Legal troubleGenerally avoid unless your product directly helps with compliance/legal.Don't reference the lawsuit. It looks ambulance-chasey.
Product failure / RecallOnly reach out if you have a direct solution.Don't gloat or compare.

Rule of thumb: If you wouldn't bring it up in a face-to-face conversation at a conference, don't put it in a cold email.


Tips

  • Direct connections are rare but powerful. Most news creates adjacent or thematic connections. When you find a direct one, prioritize it — these convert at 2-3x the rate.
  • Speed matters for direct connections. The first vendor to reference a relevant news event looks informed. The fifth looks like they're running the same playbook.
  • Don't force weak connections. If you can't articulate the angle in one sentence, the connection is too weak. Drop it.
  • News about competitors is gold. If a competitor raises funding, gets acquired, has a security breach, or launches a product — their customers and prospects are suddenly open to conversations.
  • Negative news requires a 48-72 hour cooling period. Reaching out the day of a layoff or breach is predatory. Wait, then lead with empathy.
  • Industry reports and trend pieces make great thematic triggers. "The Gartner report on [category] just dropped — here's what it means for [company]" positions you as thoughtful, not reactive.
  • Combine with other signal composites. News often contains embedded signals: an acquisition article mentions the acquiring company is hiring 50 people (hiring signal), a new CEO is named (leadership change signal), or the company just raised funding (funding signal). Route these to the appropriate specialist composite for better outreach.

发现问题?提交给管理员复核

评分:

评论 (0)

暂无评论,成为第一个评论者吧!