CitationBenchTalk to Sales
Playbooks

Daily Reddit pain-point monitoring for content ideas

Every morning, scrape your ICP's subreddits, score pain points by signal quality, and surface the top content opportunities — plus auto-generated blog briefs ready for approval.

Every morning, CitationBench scrapes your ICP's subreddits, scores pain points by signal quality, and surfaces the highest-value content opportunities. New content ideas flow daily without manual digging.

OutcomeTop 5–10 ranked pain points each morning + auto-generated blog briefs
Time~5 min setup; daily run takes ~3–5 minutes
Cost~10 credits per topic per run
PrereqsICP defined for the workspace (so subreddits are auto-inferred), Reddit OAuth connected

What it does

Daily at 07:00:
  research.discuss with:
    subreddits: inferred from ICP channels
    dateRange:  last 24h
    signalThreshold: 0.7

  surface top pain points (scored by signal, recency, repetition)
  ↓ optional:
  for top 3 pain points:
    produce.blog_post (mode: with-research, sourcing the Reddit threads)
    queues at WAITING_APPROVAL

Step 1 — Make sure your ICP is set

Without good ICP data, the agent doesn't know which subreddits to crawl.

curl .../v1/research/icp -H "Authorization: Bearer $CITATIONBENCH_API_KEY" -H "X-Workspace-Id: $WS"

Each ICP segment has channels (e.g. ["r/projectmanagement", "Lenny's Newsletter"]). The agent uses these.

If empty, generate ICPs first:

curl -X POST .../v1/research/icp -d '{ "domain": "acme.com" }'

Step 2 — Schedule the daily run

curl -X POST https://api.citationbench.com/v1/agent/invoke \
  -H "Authorization: Bearer $CITATIONBENCH_API_KEY" \
  -H "X-Workspace-Id: $WORKSPACE_ID" \
  -d '{
    "skill": "agent.scheduled",
    "input": {
      "action":   "research.discuss.research",
      "schedule": "daily:07:00",
      "config": {
        "topic":           "{{ workspace.brand.primaryKeyword }}",
        "dateRange":       { "from": "{{ today-1 }}", "to": "{{ today }}" },
        "signalThreshold": 0.7,
        "maxThreads":      30
      }
    }
  }'

{{ today-1 }} resolves at runtime to yesterday's date.

Step 3 — Wire pain points to content drafting

Hook a webhook on research.discuss.pain_point.surfaced:

curl -X POST .../v1/webhooks -d '{
  "url":    "https://hooks.our-portal.com/pain-points",
  "events": ["research.discuss.pain_point.surfaced"]
}'

Payload:

{
  "painPointId": "pain_***",
  "topic": "Cross-team capacity tracking invisible until too late",
  "signalScore": 0.91,
  "sources": ["https://reddit.com/r/projectmanagement/comments/abc/..."],
  "verbatimQuotes": ["We didn't know we were 30% over until sprint review"]
}

Or auto-spawn blog posts from high-signal pain points:

curl -X POST .../v1/agent/invoke -d '{
  "skill": "agent.scheduled",
  "input": {
    "schedule": "daily:08:00",
    "steps": [
      {
        "action": "research.discuss.pain_points.list",
        "config": { "minSignal": 0.85, "lastSeenWithinHours": 24, "limit": 3 }
      },
      {
        "action":      "produce.blog_post",
        "forEachFrom": "$.previousStep.data",
        "config": {
          "topic":       "{{ item.topic }}",
          "mode":        "with-research",
          "pillarSlug":  "performance",
          "refinerIds":  ["rfn_brand-voice"]
        }
      }
    ]
  }
}'

Each high-signal pain point becomes a queued blog draft.

Step 4 — Review the morning queue

# Just the pain points
curl -G .../v1/research/discuss/pain-points \
  --data-urlencode "minSignal=0.8" \
  --data-urlencode "lastSeenWithinHours=24"

# Or the auto-spawned drafts
curl -G .../v1/produce/blog-post \
  --data-urlencode "status=DRAFT" \
  --data-urlencode "tag=auto-pain-point"

Gotchas

  • Subreddit signal varies wildly. Some subreddits are gold (r/projectmanagement, r/engineeringmanagers), some are noise. Tune signalThreshold and the subreddit list explicitly if the auto-inferred list misses.
  • Reddit rate limits. Heavy daily crawling across many topics will throttle. Stagger via different schedule times for different topics, or use BYO Reddit OAuth credentials.
  • Pain-point dedup. The same pain point shows up across many threads. The agent dedups by topic similarity (LLM-based); occasionally over-dedups. Set dedupThreshold lower if you're losing variants.
  • Content uniqueness. If two days' top pain points overlap, you'll get duplicate drafts. Filter to "new pain points only" via lastSeenWithinHours.

On this page