# Instagram Creator Lead Finder · Keywords & Hashtags (`data-slayer/instagram-creator-lead-finder`) Actor

Find and qualify Instagram creators from keywords and hashtags. Export public profile evidence, contact signals, source posts, and transparent filter decisions.

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

## Pricing

from $2.00 / 1,000 creator profile checkeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## Instagram Creator Lead Finder: Keywords & Hashtags

Turn niche keywords and hashtags into an evidence-backed Instagram creator prospect list—with source posts, public profile facts, clear qualification reasons, and a profile-check budget you control.

### Watch the demo

YouTube video coming soon.

### Find creators without stitching together three exports

Searching posts is easy. Turning those posts into a clean outreach list is the slow part: the same creator appears more than once, filters remove profiles after you inspect them, and a high result limit does not guarantee qualified leads.

This Actor combines bounded content discovery, creator deduplication, public-profile checks, and transparent qualification in one run. You choose the niche, the filters, and the maximum number of profiles to inspect.

### What you get

Every completed profile check produces an auditable row. Use the qualified-leads view for outreach and the full view to understand where the rest were rejected.

| Evidence | What it includes |
| --- | --- |
| Creator identity | Username, stable account ID when available, display name, profile URL, privacy and verification status |
| Discovery evidence | The keyword or hashtag that found the creator, source post URL, post caption, timestamp, and available engagement counts |
| Public profile evidence | Biography, follower/following/post counts, account/category signals, and public bio links |
| Public contact signals | Public email, phone, or bio link when the profile publishes them |
| Qualification decision | `qualified` or `rejected`, every applied rule, and plain-language pass/rejection reasons |
| Optional Reel evidence | Sample size, average likes/comments/views where available, calculated sample engagement rate, and missing-metric flags |
| Run audit | Searches processed, posts examined, unique creators, profile checks, rejections by reason, Reel analyses, delivered leads, and stop reason |

Missing values stay missing. The Actor does not guess contacts, locations, demographics, niche fit, or audience composition.

### How output rows and errors work

The default dataset contains one row for every completed creator profile check. Each row is marked `qualified` or `rejected`, includes its discovery evidence, and lists every applicable pass or rejection reason. A profile that cannot be checked produces no dataset row and no profile-check event; the run summary records a neutral error instead.

Optional Reel evidence is labeled `not_requested`, `completed`, or `unavailable`. A Reel-analysis event is charged only for `completed` evidence with a usable sample. Missing counts remain `null`, never silently converted to zero.

The run summary reports search outcomes, scan and qualification counts, customer billing-event counts, safe error codes, and the exact stop reason. It never includes raw diagnostics or private service details. The JSON and CSV examples in the listing package are illustrative shapes, not claims about a live run.

### How it works

1. **Add keywords and hashtags.** Use plain text such as `specialty coffee` for Reel keyword discovery and `#specialtycoffee` for hashtag discovery.
2. **Set your budgets.** Choose the maximum qualified leads and the maximum creator profiles the run may inspect.
3. **Choose filters.** Set follower range, privacy, professional-account, and public-contact requirements.
4. **Optionally analyze recent Reels.** Add a bounded recent-Reels sample and an optional minimum sample engagement rate.
5. **Export the evidence.** Download qualified leads or review every checked profile and its decision.

### Example input

```json
{
  "searches": [
    "specialty coffee",
    "#specialtycoffee"
  ],
  "hashtagFeed": "top",
  "maxLeads": 10,
  "maxProfileLookups": 25,
  "minFollowers": 1000,
  "excludePrivateAccounts": true,
  "professionalAccountsOnly": false,
  "contactRequirement": "none",
  "analysisDepth": "profile_only",
  "excludeUsernames": []
}
```

### Inputs

#### Discovery

- **Keywords and hashtags:** 1–10 searches. Plain text searches Reels; a leading `#` searches a hashtag.
- **Hashtag discovery feed:** Top posts, Recent posts, or Reels only.
- **One page per search:** V1 intentionally uses one discovery page per search. Add several precise searches for broader coverage.

#### Lead and scan budgets

- **Maximum leads:** 1–50 qualified creators. This is a ceiling, not a guarantee.
- **Maximum profile lookups:** 1–100 creator profiles, including profiles later rejected by filters. It must be at least the lead limit.

#### Profile qualification

- Minimum and optional maximum followers
- Exclude private accounts
- Require a professional account
- Require no contact, any public contact/bio link, or a public email
- Exclude up to 10,000 usernames or profile URLs already in your CRM

#### Optional recent-Reels qualification

- Profile only, or Profile + recent Reels
- Maximum profiles allowed to receive Reel analysis
- 1–12 recent Reels sampled per creator
- Optional minimum sampled Reel engagement rate

The sampled Reel engagement rate is `(average likes + average comments) ÷ followers × 100`. It is a comparison signal based on the available sample, not an audited audience-quality metric.

### Pricing and predictable spend

The primary billing unit is a **completed creator profile check**, not a qualified lead. A checked profile can pass or fail your filters; either way, you receive the audit row and reason.

Recent-Reels analysis is an optional separate event and is charged only when a usable Reel sample is produced. Search pages, qualified-lead rows, contacts, summaries, and exports have no separate event charge.

| Apify plan | Actor start | Completed profile check | Completed recent-Reels analysis |
| --- | ---: | ---: | ---: |
| Free | $0.00005 | $0.0030 | $0.0035 |
| Bronze | $0.00005 | $0.0026 | $0.0031 |
| Silver | $0.00005 | $0.0023 | $0.0028 |
| Gold | $0.00005 | $0.0020 | $0.0025 |
| Platinum | $0.00005 | $0.0020 | $0.0025 |
| Diamond | $0.00005 | $0.0020 | $0.0025 |

Gold, Platinum, and Diamond use the same event prices.

Use **Maximum profile lookups**, **Maximum profiles for Reel analysis**, and Apify's maximum run charge to set a hard spending boundary.

Start with a small profile-check budget and increase it only after reviewing the qualification yield for your searches.

### Why fewer leads than the requested maximum is normal

`maxLeads` is a ceiling. You may receive fewer leads when:

- a first-page search contains fewer unique creators;
- the same creator appears across several searches;
- exclusions remove creators already in your CRM;
- profiles are private, unavailable, or outside your follower range;
- a required public contact is missing;
- recent-Reels evidence is unavailable or below your selected threshold; or
- the profile or Reel-analysis budget is reached first.

The run summary reports each count so you can decide whether to broaden the searches, loosen a filter, or increase a budget.

### Built for

- Influencer and UGC prospecting
- Agency creator sourcing
- Partnership and affiliate research
- Niche market mapping
- Creator CRM list building
- Campaign seeding and outreach preparation

### Export and automation

Use the dataset in JSON, CSV, Excel, XML, or RSS format. Run the Actor from Apify Console, API, CLI, schedules, webhooks, Make, Zapier, n8n, or your own workflow.

### Coverage and limitations

- Public Instagram data only; you do not provide Instagram login credentials.
- First-page discovery per supplied keyword or hashtag in V1; not exhaustive or global search.
- Search ranking and available posts can change between runs.
- Profile contacts are public observations, not deliverability-verified addresses.
- Linked websites are not crawled in V1.
- Engagement metrics depend on the Reels available in the bounded sample; missing metrics remain null rather than zero.
- The Actor does not estimate audience demographics, location, authenticity, or semantic fit when returned data does not support those claims.
- Use the data responsibly and follow applicable laws, platform terms, and outreach rules.

### FAQ

#### Am I charged for creators rejected by my filters?

Yes. Profile filters are applied after the creator's public profile is checked. Every charged profile check produces a visible row with the rejection reason. Excluded usernames and duplicates are removed before a profile check where possible and are not charged as profile checks.

#### Am I charged for failed Reel analysis?

No. The recent-Reels event is charged only when a usable sample and calculated evidence are attached to the creator row.

#### Does this find every creator in a niche?

No. It inspects one live discovery page per supplied search. It is designed for bounded, repeatable sourcing—not an indexed database or exhaustive Instagram search.

#### Does it verify email deliverability?

No. It reports public contact details and bio links when present. It does not confirm that an inbox exists, accepts mail, or belongs to the creator.

#### Can I avoid creators I already contacted?

Yes. Add usernames, @handles, or Instagram profile URLs to **Exclude usernames**. Matching is case-insensitive.

#### Why use both keywords and hashtags?

Keyword Reel search can surface creators whose captions match a topic. Hashtag feeds provide a different discovery path. Combining precise searches can increase candidate variety, while the Actor deduplicates repeated creators.

### Start with a small run

Try two precise searches, 10 maximum leads, and 25 maximum profile lookups. Review the qualification summary before increasing the budget or adding recent-Reels analysis.

# Actor input Schema

## `searches` (type: `array`):

Add 1–10 niche searches. Use plain text for Reel keyword discovery and start a hashtag with #, for example specialty coffee and #specialtycoffee. Each search inspects one page in V1.

## `hashtagFeed` (type: `string`):

Choose which first-page hashtag feed to inspect. This setting applies only to searches that start with #.

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

Maximum qualified creators to return. This is a ceiling, not a guarantee; source coverage, deduplication, filters, and scan budgets can produce fewer leads.

## `maxProfileLookups` (type: `integer`):

Maximum discovered creator profiles to inspect, including profiles later rejected by your filters. Must be at least Maximum leads.

## `minFollowers` (type: `integer`):

Keep creators with at least this many followers. Use 0 for no minimum.

## `maxFollowers` (type: `integer`):

Optional upper follower limit. Leave empty for no maximum.

## `excludePrivateAccounts` (type: `boolean`):

Keep only public accounts that expose usable qualification evidence.

## `professionalAccountsOnly` (type: `boolean`):

Keep only accounts identified by Instagram as a business or creator/professional account. Leave off when individual creators are also useful.

## `contactRequirement` (type: `string`):

Optionally require contact evidence published on the Instagram profile. V1 does not crawl linked websites or verify deliverability.

## `analysisDepth` (type: `string`):

Profile only is faster and cheaper. Recent Reels also samples one page of Reels for profile-qualified candidates, subject to the separate Reel-analysis budget.

## `maxProfilesForReelAnalysis` (type: `integer`):

Maximum profile-qualified creators whose recent Reels may be fetched. Used only for Profile + recent Reels and must be at least Maximum leads in that mode.

## `reelsPerCreator` (type: `integer`):

Use up to this many available recent Reels per analyzed creator. The actual sample may be smaller.

## `minReelEngagementRate` (type: `number`):

Optional minimum for (average likes + average comments) ÷ followers × 100 across the sampled Reels. Requires Profile + recent Reels and is a sample-based comparison signal, not an audited audience metric.

## `excludeUsernames` (type: `array`):

Skip creators already in your CRM or prior exports. Add usernames, @handles, or Instagram profile URLs. Matching is case-insensitive.

## Actor input object example

```json
{
  "searches": [
    "specialty coffee",
    "#specialtycoffee"
  ],
  "hashtagFeed": "top",
  "maxLeads": 10,
  "maxProfileLookups": 25,
  "minFollowers": 1000,
  "excludePrivateAccounts": true,
  "professionalAccountsOnly": false,
  "contactRequirement": "none",
  "analysisDepth": "profile_only",
  "maxProfilesForReelAnalysis": 10,
  "reelsPerCreator": 6,
  "excludeUsernames": []
}
```

# Actor output Schema

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

One qualified or rejected row per completed public profile check.

## `dataset_table` (type: `string`):

No description

## `run_summary` (type: `string`):

Search, qualification, billing-event, error, and stop-reason counts.

# 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 = {
    "searches": [
        "specialty coffee",
        "#specialtycoffee"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("data-slayer/instagram-creator-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 = { "searches": [
        "specialty coffee",
        "#specialtycoffee",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("data-slayer/instagram-creator-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 '{
  "searches": [
    "specialty coffee",
    "#specialtycoffee"
  ]
}' |
apify call data-slayer/instagram-creator-lead-finder --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,data-slayer/instagram-creator-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/vSNFKvq2FoCK8WXy2/builds/KMgPcbU3rilkkTAcL/openapi.json
