Back to catalog

intentsignals

Find where to distribute content or validate product ideas.

Category 🎯 Intent Signals
Version v0.1.0
distributionintent-signalsproduct-validationcontent-strategy

IntentSignals Skill

Finds distribution opportunities and validates product ideas by scanning online communities. Takes a natural language description of what you have, determines the mode, scans platforms via last30days, and outputs actionable recommendations.

When to Use

  • User wants to find places to share a blog post, article, or content
  • User wants to validate if a product idea has demand
  • User wants to know what questions people ask about a topic before writing
  • User wants to find communities where their expertise would be valued

Don't use for: monitoring brand mentions (use last30days directly), competitor tracking, or real-time alerts.

Prerequisites

  • last30days skill installed and functional
  • At least one source configured (Reddit works without API keys)

Mode Detection

Parse the user's input to determine which mode to use:

Input Pattern Mode What to Scan For
"I wrote / I have / here's my post" + URL or title Content Distribution Active threads where this content answers a question
"I'm thinking of building / I want to create" Product Validation Existing pain points, competitors, feature requests
"I want to write about / what should I write" Content Validation Top questions, knowledge gaps, real phrases people use
"Where should I share / promote / distribute" Content Distribution Active communities where the content adds value
"Is there demand for / do people need" Product Validation Complaints about existing solutions, unmet needs

If ambiguous, ask: "Are you looking to validate an idea, plan content, or distribute something you've already written?"

Procedure

Step 1: Parse Intent and Extract Keywords

From the user's input, extract:

  • Core topic: What is this about in 3-5 words?
  • Audience: Who would care about this? (e.g., CTOs, indie makers, developers)
  • Platform hints: Any platform the user mentioned?
  • Mode: Determined from the table above.

Step 2: Generate Search Queries

Based on the mode, generate 3-5 search queries that capture how REAL PEOPLE talk about this topic (not how the user describes their product).

Content Distribution mode: Generate queries like:
  • "looking for advice on [topic]"
  • "how do you handle [problem]"
  • "recommendations for [category]"
  • "struggling with [pain point]"
Product Validation mode: Generate queries like:
  • "frustrated with [existing solution]"
  • "wish there was a tool for [need]"
  • "alternative to [competitor]"
  • "does anyone know [capability]"
Content Validation mode: Generate queries like:
  • "what is [topic]"
  • "how to [do thing related to topic]"
  • "best practices for [topic]"
  • "mistakes to avoid in [topic]"

Step 3: Scan Platforms via last30days

For each search query, use the last30days skill:

/last30days [query]

Scan at minimum:

  • Reddit (always — richest intent signals)
  • Hacker News (for tech/product/startup topics)
  • X/Twitter (for real-time discussion)

Optionally scan:

  • YouTube (for video discussions)
  • Podcasts (for long-form mentions)
  • ProductHunt (for product-related topics)

Collect results from all queries. Deduplicate by URL.

Step 4: Score and Rank Opportunities

For each result, assess:

1. Relevance (1-10): How closely does this match the user's content/idea?

2. Intent signals (1-10): Is the poster actively seeking help/advice, or just discussing?

3. Engagement potential (1-10): Is the thread active? Will a comment be seen?

4. Spam risk (1-10): How natural would it be to mention the user's content here?

Ranking formula:
score = (relevance  0.4) + (intent  0.3) + (engagement  0.2) + ((10 - spam_risk)  0.1)

Select the top 5 opportunities.

Step 5: Generate Actionable Output

For each of the top 5 opportunities, provide:

### [N]. Thread/Post Title
- Platform: [Reddit r/X / HN / X]
- Why it fits: [1-2 sentences explaining the match]
- Suggested approach: [What to say — lead with value, not a link]
- Spam risk: [N]/10
- Timing: [Post now / within 24 hours / wait for more engagement]
Suggested approach rules:
  • Lead with an insight or answer, THEN mention the content naturally
  • Never open with a link
  • On Reddit: comment as a helpful community member, not a promoter
  • On HN: be technical and opinionated, reference specific points
  • On X: ask a question or share a data point, thread if needed

Step 6: Log the Run

Append to wiki/produce/hermes/products/intentsignals/tracking/daily-log.md:

### Run [N]
- Time: [HH:MM]
- Input: "[user's input]"
- Mode detected: [mode]
- Platforms scanned: [list]
- Opportunities found: [count]
- Selected: [which ones the user picked]
- Action taken: [what was posted]
- Spam risk: [N]/10
- Result: pending

Output Format

Always structure the output as:

# IntentSignals Report

Mode: [Content Distribution / Product Validation / Content Validation]
Input: "[user's input]"
Scanned: [platforms] (last 30 days)
Date: [today]


Top 5 Opportunities

1. Title

...

2. Title

...

Quick Actions

- Best opportunity: #N — [one-line reason] - Suggested first move: [specific action]

Pitfalls

  • Don't keyword-stuff. The user's product description and the search queries should be different. People don't search for your product name — they search for their problem.
  • Don't recommend dead threads. Skip anything with < 5 comments or > 30 days old (for distribution mode).
  • Don't spam. If the top 5 all have spam risk > 5, say so: "These threads are risky — consider waiting for better opportunities."
  • last30days may fail. Reddit scraping is fragile. If it fails, fall back to web_search for the same queries and note the degraded quality.
  • Log even failures. If a run produces nothing useful, log it — that's data too.

Verification

After a run, confirm:

  • [ ] Mode was correctly detected
  • [ ] At least 3 opportunities were found (or explain why fewer)
  • [ ] Each opportunity has a suggested approach (not just a link)
  • [ ] Spam risk is assessed for each
  • [ ] Run is logged to daily-log.md