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:
| Mode | Input | Example | |------|-------|---------| | News → Companies | A news item. Extract companies/people mentioned, qualify them. | "Here's an article about new FDA regulations on telehealth" | | Companies → News | A 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 → News | A 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
| Question | Purpose | Stored As | |----------|---------|-----------| | What does your company do? (1-2 sentences) | Relevance matching | company_description | | What problem do you solve? | Connection angle identification | pain_point | | What industries do you sell to? | ICP filter | target_industries | | What company sizes? | ICP filter | target_company_size | | What geographies? | ICP filter (optional) | target_geographies | | Any disqualifiers? | Hard no's | disqualifiers | | Who are your buyers? (titles) | Contact finding | buyer_titles | | Who are your champions? (titles) | Contact finding | champion_titles | | Who are your users? (titles) | Contact finding | user_titles |
Your Company Context
| Question | Purpose | Stored As | |----------|---------|-----------| | What specific outcomes does your product deliver? | Relevance angle building | product_outcomes | | Name 2-3 proof points (customers, metrics) | Email credibility | proof_points | | What categories of news are most relevant to your product? | Helps prioritize | relevant_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
| Question | Options | Stored As | |----------|---------|-----------| | How should we find news? | Web search / Google News / RSS feeds / Social media | news_tool | | How far back should we look? (when scanning companies for news) | 7 / 14 / 30 / 60 days | lookback_days |
Contact Finding & Outreach Config
| Question | Options | Stored As | |----------|---------|-----------| | How should we find contacts? | Apollo / LinkedIn / Clearbit / Web search | contact_tool | | Where do you want outreach sent? | Smartlead / Instantly / Outreach.io / CSV export | outreach_tool | | Email or multi-channel? | Email only / Email + LinkedIn | outreach_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
- 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
- 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
- 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
- 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)withinlookback_days - Filter results against
relevant_news_categoriesfrom config - Extract the same fields as Mode A for each news item found
- Group results: Company → list of news items, ranked by relevance to your product
Mode C: People → News
- For each person, search for recent news/activity:
- Web search:
"{full_name}" AND "{company}"withinlookback_days - LinkedIn activity (if available): recent posts, shares, co