# Reddit Lead Finder - Buying Intent & Keyword Mentions (`zaver.api/reddit-lead-finder`) Actor

Find Reddit users asking for what you sell: searches posts and comments for your keywords, tags buying-intent signals, scores every lead 0-100 and adds karma and account age. One row per person, no start fee, no Reddit API key. CSV, Excel or JSON.

- **URL**: https://apify.com/zaver.api/reddit-lead-finder.md
- **Developed by:** [Zaver](https://apify.com/zaver.api) (community)
- **Categories:** Lead generation, Social media
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.99 / 1,000 leads

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Reddit Lead Finder — Find People Asking for What You Sell

**Turn Reddit conversations into a lead list.** Enter the keywords your buyers use. The Actor searches Reddit posts and their comments, keeps the people who are asking, comparing or complaining, scores each one from 0 to 100, and adds profile data. One row per person. **Pay per lead, no start fee, profile data included.**

> ⭐ Posts and comments scanned · six buying-intent signals · lead score · vendors filtered out · karma and account age · proxies included · API and MCP ready

### What does Reddit Lead Finder do?

People on Reddit ask for recommendations in public: "what CRM do you use", "any alternative to X", "I would pay for a tool that does Y". Reddit Lead Finder finds those people for you.

1. It searches Reddit for each of your keywords, across all communities or the ones you pick.
2. It reads each matching post and, optionally, its comments.
3. It keeps authors who mention your keyword or show clear intent, and drops vendors promoting their own product.
4. It tags **intent signals**, computes a **lead score**, and looks up the person's **profile**.
5. It returns **one row per unique person**, with a link to the exact post or comment to reply to.

Intent signals are detected with transparent pattern rules, not a black box. You can see why every lead was scored the way it was.

### What data does the Reddit Lead Finder extract?

#### Lead fields

| Field | Description |
|---|---|
| `username`, `profileUrl` | Who the lead is |
| `leadScore` | 0 to 100. Higher means stronger intent, a closer keyword match and a more recent post |
| `intents` | Signals found in their text, from the list below |
| `isVendor` | `true` when the text reads like self-promotion |
| `keyword` | Which of your keywords found them |

#### Match fields

| Field | Description |
|---|---|
| `matchType` | `post` or `comment` |
| `matchText` | The passage around the keyword, ready to read |
| `matchUrl` | Direct link to that post or comment |
| `matchScore`, `matchedAt`, `matchAgeDays` | Upvotes and recency |
| `subreddit`, `postTitle`, `postUrl`, `postComments` | Where the conversation is happening |

#### Profile fields

| Field | Description |
|---|---|
| `totalKarma`, `postKarma`, `commentKarma` | Account reputation |
| `accountCreatedAt`, `accountAgeDays` | Account age, to filter out throwaways |
| `displayName`, `bio`, `avatar` | Public profile details |
| `hasVerifiedEmail`, `isModerator` | Trust signals |

#### Intent signals

| Signal | Example of what triggers it |
|---|---|
| `asking_for_recommendation` | "can anyone recommend", "what is the best tool for", "looking for a" |
| `willing_to_pay` | "happy to pay", "budget is around", "looking to hire" |
| `comparing_options` | "X vs Y", "alternative to", "switching from" |
| `pain_point` | "frustrated with", "too expensive", "keeps breaking" |
| `seeking_help` | "how do I", "struggling with", "any advice" |
| `mentions_price` | "$49 per month", "pricing", "subscription" |

### A Reddit API alternative

Since Reddit changed its API pricing, the official Data API needs a registered app, OAuth credentials and, for commercial use, a paid agreement. Free access is rate limited and listings stop at 1,000 items. Building this on PRAW means writing the search, comment expansion, de-duplication and profile lookups yourself, inside those limits.

This Actor is a **Reddit API alternative** for lead generation and social listening. It works **without the Reddit API**: there is no app to register, no client ID or secret, no token refresh and no API pricing to negotiate. You pay per row you export and nothing else.

| | Official Reddit API or PRAW | This Actor |
|---|---|---|
| Setup | Register an app, manage OAuth tokens | Paste links or keywords |
| Commercial use | Paid agreement with Reddit | Pay per result |
| Rate limits | Yours to manage | Handled for you |
| Proxies and retries | Not applicable, but you build the pipeline | Included |
| Output | Raw API objects | Flat rows: CSV, Excel, JSON |

### Why use this Reddit lead generation tool

#### It reads the comments, where most leads are

Post search alone misses the people who reply "I need this too". With **Scan comments too** on, every matching thread is read and qualifying commenters become leads.

#### One row per person

The same user asking in three threads is one lead, not three. You pay once and contact once.

#### Vendors are filtered out

Threads asking for recommendations fill up with founders pitching their own tools. **Exclude vendors and self-promoters** drops them by default.

#### Strict keyword matching

Reddit search returns any post that contains each of your words somewhere, including long posts that mention them once in passing. With **Strict keyword match** on, a post counts only when your keyword's words appear together or in the title. Off-topic threads are dropped before billing, and the run summary reports how many.

#### Filters run before billing

Minimum lead score, required intent signals, minimum karma and minimum account age all apply before a row is delivered. Filtered leads are free.

#### Profile data is included

Karma, account age and bio come with every lead at no extra charge.

### How to find leads on Reddit

1. Open the Actor and enter your **Keywords**: your category, the problem you solve, and competitor names.
2. Optionally list the communities your buyers use under **Only in these communities**.
3. Keep **Time range** at past month or past week. Fresh threads get replies.
4. Turn on **Only leads with an intent signal** for a short, warm list, or leave it off for full coverage.
5. Press **Start**. Sort the export by `leadScore` and open `matchUrl` to reply.

> 💡 Start with three kinds of keywords: the category (`crm software`), the pain (`losing track of leads`) and the competitor (`hubspot alternative`). Competitor keywords usually produce the highest scores.

### Input example

```json
{
  "keywords": [
    "crm software",
    "hubspot alternative"
  ],
  "subreddits": [
    "smallbusiness",
    "sales",
    "startups"
  ],
  "time": "month",
  "maxPostsPerKeyword": 100,
  "scanComments": true,
  "onlyWithIntent": true,
  "minLeadScore": 40
}
```

| Field | Type | Description |
|---|---|---|
| `keywords` | array | **Required.** What your buyers type, one per line: your category (`crm software`), the problem you solve (`follow up with leads`) or a competitor name (`hubspot alternative`). |
| `subreddits` | array | Optional. Restrict the search to these communities. Leave empty to search all of Reddit. |
| `time` | string | How far back to look. Recent conversations convert best. Default `"month"`. |
| `sort` | string | Which matching posts are scanned first. Default `"new"`. |
| `maxPostsPerKeyword` | integer | How many matching posts to scan per keyword (per community when communities are set). Default `100`. |
| `scanComments` | boolean | Also read the comments of every matching post and keep commenters who mention your keyword or show strong intent. Most leads are found in comments. Default `true`. |
| `maxCommentsPerPost` | integer | Top comments to read per matching post. Scanning is free; you pay only for leads delivered. Default `100`. |
| `strictMatch` | boolean | Keep a post only when your keyword's words appear together (or all in the title), not scattered through a long post. Reddit search also returns posts that mention each word once in passing; this removes them before billing. Turn off for maximum coverage. Default `true`. |
| `onlyWithIntent` | boolean | Keep only people whose text shows at least one intent signal. Turn on for a shorter, warmer list. Default `false`. |
| `intents` | array | Optional. Keep only leads showing at least one of these signals. |
| `minLeadScore` | integer | Skip leads scoring below this (0-100). Skipped leads are not billed. Default `0`. |
| `excludeVendors` | boolean | Drop people who are promoting their own product or service rather than looking for one. Default `true`. |
| `enrichProfiles` | boolean | Add karma, account age, bio and verified-email flag to every lead. Included in the price. Default `true`. |
| `minKarma` | integer | Skip accounts with less total karma than this. Needs profile data. Default `0`. |
| `minAccountAgeDays` | integer | Skip accounts younger than this. Needs profile data. Default `0`. |
| `includeNSFW` | boolean | Include posts, comments and communities marked 18+. Off by default. Default `false`. |
| `maxLeads` | integer | Hard cap on leads for the whole run. 0 means no cap. Default `0`. |

### Output example

```json
{
  "type": "lead",
  "username": "growing_shop",
  "profileUrl": "https://www.reddit.com/user/growing_shop/",
  "leadScore": 85,
  "intents": ["asking_for_recommendation", "willing_to_pay", "mentions_price"],
  "isVendor": false,
  "keyword": "crm software",
  "matchType": "post",
  "matchText": "We have outgrown spreadsheets and need CRM software for a 5 person team. Budget is around $50 per user. Can anyone recommend something simple?",
  "matchUrl": "https://www.reddit.com/r/smallbusiness/comments/1wab3cd/best_crm_for_a_5_person_team/",
  "matchScore": 57,
  "matchedAt": "2026-09-21T09:14:50Z",
  "matchAgeDays": 8,
  "subreddit": "smallbusiness",
  "postTitle": "Best CRM for a 5 person team?",
  "postComments": 88,
  "totalKarma": 4312,
  "accountAgeDays": 1460,
  "hasVerifiedEmail": true
}
```

### Pricing

Pay per result. **No start fee, no monthly rental, no minimum.**

| Event | Charged for | Price |
|---|---|---|
| `lead-found` | each unique person delivered, profile data included | **$3.99 / 1,000** |

| You export | You pay |
|---|---|
| 1,000 leads | **$3.99** |
| 10,000 leads | **$39.90** |
| 100,000 leads | **$399.00** |

You are charged right after each batch lands in your dataset, so a run you stop early costs only what it delivered. Targets that fail, are private, or return nothing are free. Proxies are included in the price - there is nothing else to pay for.

### Use cases

#### B2B and SaaS lead generation

Find founders, operators and developers asking for a tool in your category this week. Reply in the thread with a useful answer.

#### Competitor displacement

Search `"competitor alternative"`, `"switching from competitor"` and `"competitor pricing"`. These people have already decided to leave.

#### Agency and freelance prospecting

Search for "looking to hire", "need a developer" or "recommend an agency" in the communities your clients use.

#### Customer research

Set **Minimum lead score** to 0 and read `matchText`. It is a ready-made list of how buyers describe the problem, which is also your best ad copy.

#### Community-led growth

Track where your category is discussed, join the conversation early, and measure which communities produce the most qualified leads.

### FAQ

**Do I need a Reddit account or API key?**
No. It works without the Reddit API. The Actor reads public posts and comments without logging in.

**Is scraping Reddit legal?**
This is general information, not legal advice. The Actor collects only what any logged-out visitor can see, and never touches private communities, private messages or login-protected pages. Whether your use is lawful depends on where you are, what you collect and what you do with it. Usernames and posts can be personal data under laws such as GDPR and CCPA, and Reddit's User Agreement restricts automated collection and some commercial uses of its content. Collect only what you need, do not republish personal data, honour deletion requests, and ask a lawyer before building a commercial product on the data.

**Does it use AI to classify leads?**
No. Intent signals come from pattern rules, which keeps the price low and the results explainable. Every lead includes the matched text, so you can verify the signal yourself or pass it to your own model.

**Does it return email addresses?**
No. Reddit does not publish email addresses. You get the username, profile link and a direct link to the conversation, which is where outreach on Reddit happens.

**How is the lead score calculated?**
It adds points for each intent signal, for how closely the text matches your keyword, for a keyword in the post title, for recency and for upvotes. It subtracts points for self-promotion. The maximum is 100.

**How many leads will I get per keyword?**
It depends on how much your topic is discussed. A broad B2B keyword over the past month typically yields tens to a few hundred people. Add keyword variants and communities to widen the net.

**How do I contact a lead?**
Open `matchUrl` and reply in the thread, or message the user from their profile. Follow each community's rules on self-promotion. Helpful answers work; pasted pitches get removed.

**Can I run it every day and only get new leads?**
Schedule the Actor with **Time range** set to past 24 hours and de-duplicate on `username` in your sheet or CRM.

**Are bots and deleted accounts included?**
No. Deleted authors, AutoModerator and accounts whose names end in "bot" are skipped.

### Integrations

- **Apify API** - start runs and fetch datasets from Python, Node.js, cURL or any HTTP client.
- **MCP server** - call this Actor as a tool from Claude, Cursor, ChatGPT agents and any MCP client.
- **No-code** - Make, Zapier, n8n, Pipedream, Google Sheets, Airtable, Slack, webhooks.
- **Schedules** - run hourly, daily or weekly and append to the same dataset for monitoring.
- **Exports** - JSON, JSONL, CSV, Excel (XLSX), XML, HTML table, RSS.

### Related Reddit scrapers

- [Reddit Scraper](https://apify.com/zaver.api/reddit-scraper) - posts, comments, search, users and communities in one Actor
- [Reddit Comments Scraper](https://apify.com/zaver.api/reddit-comments-scraper) - every comment and nested reply from any post
- [Reddit Search Scraper](https://apify.com/zaver.api/reddit-posts-search-scraper) - posts, communities and users by keyword

***

*Not affiliated with, endorsed by or sponsored by Reddit, Inc. This Actor reads only publicly available pages, does not log in and does not access private communities, private messages or deleted content. You are responsible for using the data in line with applicable laws, Reddit's terms and the privacy rights of the people whose public posts you collect.*

# Actor input Schema

## `keywords` (type: `array`):

What your buyers type, one per line: your category (<code>crm software</code>), the problem you solve (<code>follow up with leads</code>) or a competitor name (<code>hubspot alternative</code>).

## `subreddits` (type: `array`):

Optional. Restrict the search to these communities. Leave empty to search all of Reddit.

## `time` (type: `string`):

How far back to look. Recent conversations convert best.

## `sort` (type: `string`):

Which matching posts are scanned first.

## `maxPostsPerKeyword` (type: `integer`):

How many matching posts to scan per keyword (per community when communities are set).

## `scanComments` (type: `boolean`):

Also read the comments of every matching post and keep commenters who mention your keyword or show strong intent. Most leads are found in comments.

## `maxCommentsPerPost` (type: `integer`):

Top comments to read per matching post. Scanning is free; you pay only for leads delivered.

## `strictMatch` (type: `boolean`):

Keep a post only when your keyword's words appear together (or all in the title), not scattered through a long post. Reddit search also returns posts that mention each word once in passing; this removes them before billing. Turn off for maximum coverage.

## `onlyWithIntent` (type: `boolean`):

Keep only people whose text shows at least one intent signal. Turn on for a shorter, warmer list.

## `intents` (type: `array`):

Optional. Keep only leads showing at least one of these signals.

## `minLeadScore` (type: `integer`):

Skip leads scoring below this (0-100). Skipped leads are not billed.

## `excludeVendors` (type: `boolean`):

Drop people who are promoting their own product or service rather than looking for one.

## `enrichProfiles` (type: `boolean`):

Add karma, account age, bio and verified-email flag to every lead. Included in the price.

## `minKarma` (type: `integer`):

Skip accounts with less total karma than this. Needs profile data.

## `minAccountAgeDays` (type: `integer`):

Skip accounts younger than this. Needs profile data.

## `includeNSFW` (type: `boolean`):

Include posts, comments and communities marked 18+. Off by default.

## `maxLeads` (type: `integer`):

Hard cap on leads for the whole run. 0 means no cap.

## Actor input object example

```json
{
  "keywords": [
    "crm software"
  ],
  "time": "month",
  "sort": "new",
  "maxPostsPerKeyword": 100,
  "scanComments": true,
  "maxCommentsPerPost": 100,
  "strictMatch": true,
  "onlyWithIntent": false,
  "minLeadScore": 0,
  "excludeVendors": true,
  "enrichProfiles": true,
  "minKarma": 0,
  "minAccountAgeDays": 0,
  "includeNSFW": false,
  "maxLeads": 0
}
```

# Actor output Schema

## `results` (type: `string`):

All dataset items.

## `resultsCsv` (type: `string`):

CSV download.

## `runSummary` (type: `string`):

Counts for the run.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "keywords": [
        "crm software"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("zaver.api/reddit-lead-finder").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "keywords": ["crm software"] }

# Run the Actor and wait for it to finish
run = client.actor("zaver.api/reddit-lead-finder").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "keywords": [
    "crm software"
  ]
}' |
apify call zaver.api/reddit-lead-finder --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,zaver.api/reddit-lead-finder"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/u5BMp7h7erdEdEJiE/builds/OpNNonQ22jXlppC4f/openapi.json
