# Creator Outreach Vetter: Instagram, TikTok & YouTube (`fractionalhqforyou/creator-outreach-vetter`) Actor

Turn Instagram, TikTok and YouTube shortlists into scored creator records with engagement, sponsorship markers, contact routes and outreach angles. Try fictional demo rows, or score records you already hold.

- **URL**: https://apify.com/fractionalhqforyou/creator-outreach-vetter.md
- **Developed by:** [Jessy Mariau](https://apify.com/fractionalhqforyou) (community)
- **Categories:** Lead generation, Social media, AI
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $20.00 / 1,000 creators

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Creator Outreach Vetter: Instagram, TikTok & YouTube

Find the creators worth a closer look before you spend an afternoon opening profiles. This Actor combines public profile and post data into a ranked shortlist with engagement, posting activity, contact routes and outreach research notes.

Instagram, TikTok and YouTube use separate engagement benchmarks. The score helps compare a list; it does not verify audience authenticity, predict sales or establish a creator's availability.

### See the result first

Leave both Creators to vet and the optional records field empty, then run. Three fictional creators show the output without scraper runs or Actor event charges. Engagement ratios below are decimal values; 0.0474 means 4.74%.

| Fictional creator | Score | Band | Engagement ratio | Posts per week |
| --- | --- | --- | --- | --- |
| demo.kitchen | 92 | FIT | 0.0474 | 2.33 |
| demo.runs | 52 | MAYBE | 0.0195 | 4.81 |
| DemoWoodwork | 14 | PASS | 0.0759 | 0.15 |

These are actual outputs from the built-in fictional demo, not customer results. Open the dataset to inspect every reason, then export the rows as JSON, CSV or Excel.

### Cost of a real run

$0.02 per creator whose profile returns data. A 50-creator shortlist costs $1.00 in this Actor's events; repeating it weekly for four weeks costs $4.00. Unreadable profiles return an error row without this event charge. Supplied profile records are also charged when scored.

Live reads run separate Instagram, TikTok or YouTube scrapers on your Apify account, with their own charges and plan requirements. Instagram may need an additional Post Scraper run when the profile supplies fewer posts than requested. Supply `creators_records` to avoid fresh scraper calls. Check the Pricing tab and your Apify plan for current platform or standby usage costs.

### What I look at

Seven things feed the score, and they add up to exactly 100 so the total is always readable.

| Signal | Points | What earns them |
|---|---|---|
| Engagement against our benchmark | 30 | Likes plus comments per follower on the recent posts, measured against our benchmark for that follower band. 1.5 times the benchmark or better earns all 30. |
| Recency | 15 | The newest post went up in the last week. A month of silence drops this to 7, two months to 3. |
| Posting cadence | 15 | Three or more posts a week earns 15. Under one a month earns nothing. |
| Contact route | 15 | An email in the bio earns 15, a link in the bio earns 8, a bare bio earns 0. |
| Sponsored share | 10 | Some paid posts but under a third of them earns 10. None earns 6. Over 60 percent paid earns 0. |
| Niche fit | 10 | How many of your niche keywords appear in the bio and the recent captions. No keywords given means a neutral 5. |
| Audience size | 5 | 10k to 500k followers earns 5. The very small and the very large earn less. |

Anything scoring 60 or more is marked FIT. From 35 to 59 is MAYBE, and the rest is PASS. One override sits on top: an account with no post in the last 90 days is marked PASS whatever it scored, because a dead account with a great history is still a dead account. Every row carries the seven reasons that fired with the numbers behind them, so you can see why a creator scored what it did rather than taking the total on trust.

### The benchmark

The engagement points compare each creator against our benchmark for its follower band. It is a fixed heuristic table, not a published industry benchmark. Every row names the band it was measured against.

| Followers | Instagram | TikTok | YouTube |
|---|---|---|---|
| under 10k | 4.0 percent | 8.0 percent | 30 percent |
| 10k to 100k | 2.0 percent | 6.0 percent | 20 percent |
| 100k to 1M | 1.2 percent | 4.0 percent | 12 percent |
| over 1M | 0.8 percent | 3.0 percent | 8 percent |

Instagram and TikTok rates are likes plus comments per post, over followers. YouTube is different because the channel listing carries no likes, so its rate is the median views of the recent videos over subscribers.

### How to run it

Put the handles in, one per line. A profile URL works on its own. A bare handle needs a platform in front of it: ig:handle, tt:handle, yt:handle. Choose how many recent posts to read, add niche keywords if you have them, and run it. Then open the Overview table and sort on the fit score.

Leave the handles empty and you get three demo rows, one per platform, scored by the same rubric I use on real ones, so you can see the shape of the output before you spend anything.

### Watching a list over time

Every run saves the follower count of each creator under the watch key you give it. Run the same list again under the same key and each row carries the change since last time, as a number and as a percentage. Use one key per list. The first run under a new key has nothing to compare against, so those fields stay empty.

### What comes back

One row per creator. It holds the profile facts and the engagement rate with the benchmark it was measured against. Alongside those sit the cadence and the days since the last post, the sponsored count, the contact route, the niche hits and the follower delta. Underneath sit the rubric reasons in full, plus up to three pitch angles. A pitch angle is one sentence written from that row's own numbers:

> Their bio lists hello@demokitchen.example, so the pitch can go by email rather than a DM that may never be opened.

> 6 of the last 12 posts carry sponsorship markers; check those posts before approaching them.

> They publish about 4.5 posts a week, across the recent posts read.

I also write a summary record with how many creators landed in each band, how many carry an email, and the ten highest scores with their first pitch angle.

### Honest limits

- The engagement rate describes the posts you asked me to read, not the account's history. Ask for twelve and the number describes those twelve. Pinned posts are skipped when enough unpinned ones remain, because they are usually old best-performers.
- YouTube dates arrive as text like "3 weeks ago", so the recency and cadence for a channel are approximate. The row says so.
- YouTube carries no likes or comments at the channel level, so its engagement is a view rate, and its sponsored share is read from titles only.
- Sponsored posts are found by their markers: #ad, paid partnership, a discount code, the sponsored flag where the platform sets one. A deal with no marker is missed.
- The benchmark is ours. It is a working table for ranking a list, not a published industry figure.
- Nothing here is a judgement about the creator. It describes what the public profile showed on the day I read it.

### Use it from an AI agent

Vetting can happen inside an agent conversation, since I made this Actor double as an MCP server. Its endpoint is `https://fractionalhqforyou--creator-outreach-vetter.apify.actor/mcp` and the one tool, `vet_creators`, takes the same creator handles and returns the vetted rows. The per-event price is the same as a console run. Clients that only speak to the Apify MCP server can load `apify/actors-mcp-server` and name `fractionalhqforyou/creator-outreach-vetter` as the Actor.

### Help with your first run

Open an issue on this Actor with the run ID and the result you expected. Remove API keys and private records before sharing. Built by [Fractional HQ](https://fractionalhq.uk), independent design and automation.

# Actor input Schema

## `creators` (type: `string`):

Enter one item per line. A profile URL (instagram.com/handle, tiktok.com/@handle, youtube.com/@handle), or a handle with a platform prefix: ig:handle, tt:handle, yt:handle. Leave empty to get a demo dataset that charges nothing.

## `postsToRead` (type: `integer`):

The requested sample for engagement, cadence, recency and sponsorship markers. Instagram may run the separately billed Post Scraper whenever the profile response contains fewer posts than requested.

## `nicheKeywords` (type: `string`):

Words the creator should be talking about, one per line or comma separated. Matched against the bio and the recent captions. Leave empty and the niche points sit at a neutral 5 of 10.

## `watchKey` (type: `string`):

Names the saved snapshot the follower delta is measured against. Use the same key every time for the same list, and a different key for a different list.

## `creators_records` (type: `array`):

A JSON array of records to score without fetching anything: each is {"platform": "instagram" | "tiktok" | "youtube", "profile": {...}, "posts": \[...]} in the shape the wrapped scrapers return (Instagram Profile Scraper, TikTok Profile Scraper authorMeta, YouTube Channel Scraper aboutChannelInfo). Each record that scores is charged as one creator.

## Actor input object example

```json
{
  "postsToRead": 12,
  "watchKey": "default",
  "creators_records": []
}
```

# Actor output Schema

## `creators` (type: `string`):

One row per creator: the fit score and band, followers and the delta since the last run, engagement rate against our benchmark, cadence, recency, sponsored share, contact route, niche hits, the rubric reasons in full and the pitch angles written as sentences.

## `summary` (type: `string`):

The OUTPUT record: creators vetted, how many landed FIT, MAYBE and PASS, how many carry an email, how many events were charged, and the top 10 by score with their first pitch angle.

# 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 = {
    "creators": "",
    "nicheKeywords": "",
    "creators_records": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("fractionalhqforyou/creator-outreach-vetter").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 = {
    "creators": "",
    "nicheKeywords": "",
    "creators_records": [],
}

# Run the Actor and wait for it to finish
run = client.actor("fractionalhqforyou/creator-outreach-vetter").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 '{
  "creators": "",
  "nicheKeywords": "",
  "creators_records": []
}' |
apify call fractionalhqforyou/creator-outreach-vetter --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,fractionalhqforyou/creator-outreach-vetter"
        }
    }
}
```

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/zac78shYb767qnEvJ/builds/Z6fBNHQgikHVIYLhS/openapi.json
