Scrape and search Reddit posts using Apify. Use when you need to find Reddit discussions, track competitor mentions, monitor product feedback, discover pain points, or analyze subreddit content. Supports keyword filtering, time-based searches, and subreddit-specific queries.
npx gooseworks install --all # then, in Claude Code, Cursor, or Codex: /gooseworks use the reddit-post-finder skill
Scrape Reddit posts and comments using the Apify trudax/reddit-scraper-lite actor.
Requires APIFY_API_TOKEN env var (or --token flag).
# Top posts from r/growthhacking in last week
python3 skills/reddit-post-finder/scripts/search_reddit.py \
--subreddit growthhacking --days 7 --sort top --time week
# Hot posts from multiple subreddits
python3 skills/reddit-post-finder/scripts/search_reddit.py \
--subreddit "growthhacking,gtmengineering" --days 7 --sort hot
# Keyword-filtered competitor tracking
python3 skills/reddit-post-finder/scripts/search_reddit.py \
--subreddit LLMDevs \
--keywords "Langfuse,Arize,Langsmith" \
--days 30
# Human-readable summary table
python3 skills/reddit-post-finder/scripts/search_reddit.py \
--subreddit growthhacking --days 7 --output summaryhttps://www.reddit.com/r/growthhacking/top/?t=week)trudax/reddit-scraper-lite actor via REST API| Flag | Default | Description |
|---|---|---|
--subreddit | required | Subreddit name(s), comma-separated |
--keywords | none | Keywords to filter (comma-separated, OR logic) |
--days | 30 | Only include posts from the last N days |
--max-posts | 50 | Max posts to scrape per subreddit |
--sort | top | Sort: hot, top, new, rising |
--time | week | Time window for top sort: hour, day, week, month, year, all |
--output | json | Output format: json or summary |
--token | env var | Apify token (prefer APIFY_API_TOKEN env var) |
--timeout | 300 | Max seconds to wait for the Apify run |
Small or low-traffic subreddits (e.g. r/gtmengineering) may return zero posts with --sort hot because the hot feed is nearly empty. Use --sort top --time week (or month) instead — this scrapes the top-ranked posts over the time window and reliably returns results.
If calling the Apify API directly (e.g. via curl), note these required fields:
{
"startUrls": [{"url": "https://www.reddit.com/r/growthhacking/top/?t=week"}],
"maxItems": 50
}Key notes for trudax/reddit-scraper-lite:
startUrls with full Reddit URLs (not a searches array for subreddit browsing)/top/?t=week), not separate input fieldsstartUrls and maxItems are confirmed working input fieldsproxyConfiguration, scrollTimeout, or searchTypeOutput fields:
dataType — "post" or "comment"title — Post titlebody — Post body textcommunityName — Subreddit name (without r/ prefix)upVotes — Number of upvotesnumberOfComments — Comment counturl — Full URL to the postcreatedAt — ISO timestamp of when the post was createdpython3 skills/reddit-post-finder/scripts/search_reddit.py \
--subreddit "LLMDevs,MachineLearning,LocalLLaMA" \
--keywords "Langfuse,Arize,Weights & Biases,Langsmith,Braintrust" \
--days 30 --sort top --time monthpython3 skills/reddit-post-finder/scripts/search_reddit.py \
--subreddit LLMDevs \
--keywords "frustrating,difficult,hard to,wish there was,better way" \
--days 30python3 skills/reddit-post-finder/scripts/search_reddit.py \
--subreddit "LLMDevs,MachineLearning" \
--keywords "YourProductName" \
--days 7 --sort newWhen presenting Reddit results to the user, always include the original post URL for every post. This is critical for allowing users to read the full discussion, comments, and context. Never return a summary table without links.
Posts are returned as JSON array sorted by upvotes. Each post has:
{
"dataType": "post",
"title": "Post title",
"body": "Post body...",
"communityName": "growthhacking",
"upVotes": 42,
"numberOfComments": 15,
"createdAt": "2026-02-18T12:00:00.000Z",
"url": "https://reddit.com/r/..."
}See references/apify-config.md for detailed API configuration, token setup, and rate limits.
startUrls with full Reddit URLs (not a searches array for subreddit browsing)/top/?t=week), not separate input fieldsstartUrls and maxItems are confirmed working input fieldsproxyConfiguration, scrollTimeout, or searchTypedataType — "post" or "comment"Full video production sequence with script review, actual ingredient choices, controlled generation, editing, evidence-based quality review, polish, captions and delivery. A host binding supplies project storage, authentic approvals, provider access and billing.
Build a vox-pop street interview video ad. An interviewer with a handheld mic asks passers-by one question about the brand's product, they give blunt wrong guesses, one gives the real answer, and the cut lands on a branded end card. Generates the takes through the GooseWorks fal proxy (Seedance 2.0 with native voice), then grades, re-cuts, captions and gates them locally. Use for the street-interview format.
Write the words of a short-form video ad (voiceover, dialogue, chat bubbles, on-screen lines) the way performance creative teams do instead of from a blank page. Builds the script from the buyers' own words, the beat sheet of an ad that already works and three deliberately different angles, filters them with a rule check and a second non-Claude model, and takes the strongest into the review with the other two as one-line swaps. Use it in every video ad run before any paid step, and whenever the user asks to write, rewrite or improve a video ad script or says a script sounds generic or AI-written.