Subreddit Pain Miner for Validation and Outreach avatar

Subreddit Pain Miner for Validation and Outreach

Pricing

Pay per usage

Go to Apify Store
Subreddit Pain Miner for Validation and Outreach

Subreddit Pain Miner for Validation and Outreach

Mines public Reddit JSON endpoints for customer pain signals, with a deterministic mock mode for testing.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Brian Keefe

Brian Keefe

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

Production-ready Apify Actor that mines public Reddit JSON endpoints for customer pain signals. It is designed for validation research and respectful outreach preparation, not automated posting.

What It Does

  • Searches public Reddit JSON endpoints for matching posts in selected subreddits.
  • Fetches public comments JSON for matched posts.
  • Deduplicates posts and comments.
  • Scores each item for painIntensity, buyerFit, and recency.
  • Emits structured records with quotes, vocabulary, urgency, validation questions, and a non-spammy reply draft.
  • Supports deterministic mockItems input so tests and smoke runs do not depend on live Reddit.

Output Fields

Each output item includes:

  • painQuote
  • sourceUrl
  • subreddit
  • author when public
  • suggestedValidationQuestion
  • softReplyDraft
  • competitorMentions
  • urgency
  • buyerVocabulary
  • itemType
  • createdAt
  • painIntensity
  • buyerFit
  • recency

Input

Required production inputs:

  • subreddits: array of subreddit names without r/
  • queries: array of search terms

Optional tuning inputs:

  • maxPosts
  • maxCommentsPerPost
  • timeWindowDays
  • sort

Deterministic testing input:

  • mockItems: optional array of fixture items. When present, the actor skips live Reddit requests entirely.

See examples/sample-input.json.

Local Run

Install:

$npm install

Run deterministic smoke path:

$npm run smoke

Run tests:

$npm test

Run the actor locally with the sample input file:

$node src/main.js --input examples/sample-input.json --output examples/generated-local-output.json

Run against live Reddit by removing mockItems from your input JSON and passing that file to src/main.js, or by using apify run.

Apify Run

Local Apify run:

$apify run

Typical Apify input:

{
"subreddits": ["SaaS", "smallbusiness"],
"queries": ["frustrated with", "looking for a tool"],
"maxPosts": 10,
"maxCommentsPerPost": 5,
"timeWindowDays": 90,
"sort": "relevance"
}

Anti-Spam Stance

  • This actor does not post, comment, message, or automate outreach on Reddit.
  • softReplyDraft is for human review only.
  • The output is intended for research, validation interviews, and respectful manual follow-up.

Error Handling

  • Uses only public Reddit JSON endpoints.
  • Gracefully handles 403, 429, and network errors by logging warnings and continuing.
  • Includes sourceUrl for every record so each finding can be reviewed manually.

Limitations

  • Public Reddit JSON can rate-limit or block requests.
  • Search quality depends on Reddit indexing and the chosen queries.
  • Scores are heuristic and should be reviewed by a human before making business decisions.
  • Deleted users and deleted comment bodies are omitted or normalized.

Files

  • Actor config: .actor/actor.json
  • Input schema: .actor/input_schema.json
  • Runtime: src/main.js, src/lib.js
  • Examples: examples/sample-input.json, examples/sample-output.json
  • Tests: tests/smoke.test.mjs

Publish Commands

Do not publish automatically from this repository. When ready, use:

apify login
apify push

Then publish from the Apify Console after final review.