# Influencer Brand Fit Evaluator (`hypebridge/hypebridge-brand-fit`) Actor

Assess whether any Instagram or TikTok influencer matches your campaign requirements. Analyzing posts, and computing demographic alignment, the tool provides instant criterion-by-criterion fit assessments, detailed reasoning, summary counts, and an overall percentage fit score.

- **URL**: https://apify.com/hypebridge/hypebridge-brand-fit.md
- **Developed by:** [Hypebridge](https://apify.com/hypebridge) (community)
- **Categories:** Agents, AI, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.25 / brand fit analysis

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/platform/actors/running/actors-in-store#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

### What does Influencer Brand Fit Evaluator do?

**Influencer Brand Fit Evaluator** scores any Instagram or TikTok creator against your own campaign requirements and returns a criterion-by-criterion verdict with written reasoning, summary counts, and an overall fit percentage. You write the criteria in plain English — location history, age range, follower floor, content tone, brand-safety rules — and get back a structured, machine-readable answer for each one.

It evaluates one creator per run. To score a roster, run it once per handle (or in parallel via the API).

### Why evaluate influencer brand fit?

- **Vet creators before you reach out**: Screen a shortlist against your brand guidelines in minutes instead of reading through profiles by hand.
- **Make the criteria explicit**: Location history, age range, audience size, engagement quality, and tone become named checks with a pass/partial/fail verdict, not a gut call.
- **Reduce campaign waste**: Catch misaligned creators before a contract, not after the first post.
- **Automate the workflow**: Pipe fit scores straight into your CRM, n8n workflow, or marketing dashboard through the Apify API.

### What data does Influencer Brand Fit Evaluator return?

| Field | Type | Description |
|-------|------|-------------|
| `brandFitId` | String | Unique ID for this brand fit analysis |
| `evaluationId` | String | ID of the underlying influencer evaluation — reusable in later runs |
| `influencerId` | String | Internal identifier for the evaluated creator |
| `handle` | String | Creator's social media handle |
| `platform` | String | `instagram` or `tiktok` |
| `brandName` | String | Brand the analysis was run for |
| `fitScore` | Number | Overall fit percentage, 0–100 |
| `summary` | Object | Criteria counts: `totalCriteria`, `metFully`, `metPartially`, `notMet`, `unknown` |
| `evaluation` | Array | One entry per criterion, each with `criterion`, `fitLevel`, and `reasoning` |
| `processingTimeSecs` | Number | How long the analysis took |
| `updatedAt` | String | ISO 8601 timestamp of the result |

### How to evaluate an influencer against your brand criteria

1. [Create a free Apify account](https://apify.com) if you don't have one.
2. Open **Influencer Brand Fit Evaluator** and click **Try for free**.
3. Enter your **Brand Name** and your **Brand Fit Criteria** — one requirement per line.
4. Enter an **Influencer Handle** (for example `natgeo`) and pick the **Platform**.
5. Click **Start**, then download the result from the **Dataset** tab as JSON, CSV, Excel, or HTML.

Already evaluated this creator? Paste the `evaluationId` from that earlier run instead of the handle — the evaluator reuses the existing profile analysis and skips straight to scoring your criteria.

### How much does it cost?

Pay-per-event pricing. You are charged for completed work, not for runtime, and a failed run charges nothing for the analysis.

Two things can be charged in a run:

- **Brand fit analysis** — charged once, when the analysis completes successfully.
- **Influencer evaluation** — charged only when you supply a handle with no `evaluationId`, so a full profile evaluation has to run first. Supply an `evaluationId` and this is skipped entirely.

Reusing an `evaluationId` across several sets of criteria is the cheapest way to test different campaign briefs against the same creator. Current per-event prices, including the discounts on paid Apify plans, are on the **Pricing** tab.

### Input

See the **Input** tab for the full schema. Key fields:

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `brandName` | String | required | Your brand or company name (1–100 characters) |
| `criteria` | String | required | Your requirements, one per line (10–10,000 characters) |
| `influencerHandle` | String | optional | Handle such as `natgeo` or `@natgeo`. Required unless `evaluationId` is given |
| `platform` | String | `instagram` | `instagram` or `tiktok` |
| `evaluationId` | String | optional | Evaluation ID from an earlier run. Skips re-evaluating the creator |

#### Example input

```json
{
  "brandName": "Nightly Traffic",
  "criteria": "Must have lived in Dallas for >3 years.\nIs younger than 35.\nHas more than 10K followers.",
  "influencerHandle": "natgeo",
  "platform": "instagram"
}
```

### Output

Results are saved to the **Dataset** tab and download as JSON, CSV, Excel, or HTML.

Each item includes:

- **Identity**: brandFitId, evaluationId, influencerId, handle, platform, brandName
- **Scoring**: fitScore, summary counts by fit level
- **Detail**: evaluation array with the verdict and reasoning for every criterion
- **Metadata**: processingTimeSecs, updatedAt

#### Sample output

```json
{
  "brandFitId": "brand_fit_1785937214781563018",
  "evaluationId": "eval_1784682550964999395",
  "influencerId": "natgeo",
  "handle": "natgeo",
  "platform": "instagram",
  "brandName": "Nightly Traffic",
  "fitScore": 33.33,
  "summary": {
    "totalCriteria": 3,
    "metFully": 1,
    "metPartially": 0,
    "notMet": 2,
    "unknown": 0
  },
  "evaluation": [
    {
      "criterion": "Must have lived in Dallas for >3 years.",
      "fitLevel": "not_met",
      "reasoning": "National Geographic is a global media organization headquartered in Washington, D.C. since 1888, rather than an individual person. It has no history of being located in Dallas."
    },
    {
      "criterion": "Is younger than 35.",
      "fitLevel": "not_met",
      "reasoning": "National Geographic is a long-standing corporate brand and scientific institution founded in 1888, over 130 years old."
    },
    {
      "criterion": "Has more than 10K followers.",
      "fitLevel": "met_fully",
      "reasoning": "The National Geographic account significantly exceeds the requirement, currently reaching over 268 million followers worldwide."
    }
  ],
  "processingTimeSecs": 23.48,
  "updatedAt": "2026-08-05T13:40:38.426Z"
}
```

### Tips

- Put one requirement per line. A single criterion bundling three conditions gets one verdict and one score slot, which blurs the result.
- Make criteria checkable from public information. "Has more than 10K followers" scores cleanly; "would enjoy our product" comes back as `unknown`.
- Save the `evaluationId` from each run. Reusing it to test another set of criteria against the same creator is both faster and cheaper.
- `unknown` means the evidence wasn't there, not that the creator failed. It scores as zero, so several `unknown` verdicts drag the percentage down — read the reasoning before rejecting anyone.

### FAQ

#### How is the fit score calculated?

Each criterion is worth a share of the total: `met_fully` counts as 1, `met_partially` as 0.5, and `not_met` and `unknown` as 0. The score is the sum of those points divided by `totalCriteria`, times 100. Three criteria scored one `met_fully` and two `not_met` gives 33.33%.

#### Can I evaluate TikTok creators as well as Instagram?

Yes. Set `platform` to `instagram` or `tiktok`.

#### Can I score several influencers at once?

Each run evaluates one creator. Start one run per handle — through the **API** tab or a scheduled task — and the results collect in separate datasets.

#### What does `evaluationId` actually save me?

The creator's profile evaluation is the expensive half of the work. Once it exists, any number of different brand criteria can be scored against it without redoing it, so pass the ID back in for follow-up runs.

#### Is this legal?

The evaluator only uses publicly available profile and content information. Check the platform's Terms of Service and make sure you have a legitimate purpose for the analysis.

### Support

- Bugs / feature requests → **Issues** tab
- Programmatic access → **API** tab

> **Disclaimer**: Our Actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our Actors, when used for ethical purposes by Apify users, are safe. However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.

# Actor input Schema

## `brandName` (type: `string`):

Name of the brand or company conducting the fit analysis (1-100 characters).

## `criteria` (type: `string`):

Detailed prompt or list of criteria to evaluate the influencer against (10-10,000 characters).

## `influencerHandle` (type: `string`):

Social media handle (e.g., 'natgeo' or '@natgeo'). Required if Evaluation ID is not provided.

## `platform` (type: `string`):

Social media platform (instagram or tiktok). Defaults to 'instagram'.

## `evaluationId` (type: `string`):

Existing evaluation ID from a previous influencer evaluation run. If provided, skips initial evaluation step.

## Actor input object example

```json
{
  "brandName": "Nightly Traffic",
  "criteria": "Must have lived in Dallas for >3 years.\nWent to High School or College in target city.\nIs younger than 35.\nHas more than 10K followers.",
  "influencerHandle": "natgeo",
  "platform": "instagram",
  "evaluationId": "eval_1755622542227434030"
}
```

# Actor output Schema

## `overviewView` (type: `string`):

Complete brand fit analysis including criterion fit levels, reasoning, and overall fit score percentage

# 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 = {
    "brandName": "Nightly Traffic",
    "criteria": `Must have lived in Dallas for >3 years.
Went to High School or College in target city.
Is younger than 35.
Has more than 10K followers.
Has an engaging voice and creates authentic content.`,
    "influencerHandle": "natgeo"
};

// Run the Actor and wait for it to finish
const run = await client.actor("hypebridge/hypebridge-brand-fit").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 = {
    "brandName": "Nightly Traffic",
    "criteria": """Must have lived in Dallas for >3 years.
Went to High School or College in target city.
Is younger than 35.
Has more than 10K followers.
Has an engaging voice and creates authentic content.""",
    "influencerHandle": "natgeo",
}

# Run the Actor and wait for it to finish
run = client.actor("hypebridge/hypebridge-brand-fit").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 '{
  "brandName": "Nightly Traffic",
  "criteria": "Must have lived in Dallas for >3 years.\\nWent to High School or College in target city.\\nIs younger than 35.\\nHas more than 10K followers.\\nHas an engaging voice and creates authentic content.",
  "influencerHandle": "natgeo"
}' |
apify call hypebridge/hypebridge-brand-fit --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,hypebridge/hypebridge-brand-fit"
        }
    }
}

```

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/oArh9wsCGUj8gwEvr/builds/501u3DQXEafTU9wff/openapi.json
