Influencer Finder

Influencer discovery

by aaron-he-zhu · Apache-2.0 license · ★ 2,858 on GitHub · v20.1.0

Influencer discovery cover

Use when the user asks to "find influencers", "build an influencer list", or "discover creators in [niche]"; produces a multi-platform candidate pool, per-influencer evidence profiles, authenticity red-flag screening, and a…

---
name: influencer-discovery
slug: influencer-discovery
displayName: "Influencer Discovery · 红人发现"
summary: "多平台红人挖掘:候选池、证据画像、真实性红旗筛查与 Fit 就绪队列"
description: 'Use when the user asks to "find influencers", "build an influencer list", or "discover creators in [niche]"; produces a multi-platform candidate pool, per-influencer evidence profiles, authenticity red-flag screening, and a Fit-readiness queue without action ranking. Not for STAR scoring or ranking a known shortlist — use fit-scorer. 达人挖掘/找达人/创作者名单'
version: "20.1.0"
license: Apache-2.0
compatibility: "Claude Code and compatible agent-skill hosts"
homepage: "https://github.com/aaron-he-zhu/aaron-marketing-skills"
when_to_use: "Activate when building an influencer roster from scratch, expanding into a new platform or niche, replacing churned partners, finding micro and nano creators at scale, identifying which influencers a competitor partners with, or standing up an always-on discovery pipeline. The user names a niche, platform, follower band, or brand and wants a list of candidate creators to evaluate."
argument-hint: "<brand or niche> [platform] [follower-range]"
metadata: {"author": "aaron-he-zhu", "version": "20.1.0", "discipline": "influencer", "phase": "scout", "geo-relevance": "low", "hermes": {"tags": ["marketing", "influencer", "scout"], "category": "influencer"}, "openclaw": {"emoji": "📣", "homepage": "https://github.com/aaron-he-zhu/aaron-marketing-skills"}}
---

# Influencer Discovery

Find evidence-backed creator candidates across platforms, screen them against declared discovery filters, and build a non-ranked readiness queue for typed Fit evaluation.

Overview

Find evidence-backed creator candidates across platforms, screen them against declared discovery filters, and build a non-ranked readiness queue for typed Fit evaluation.

Manual install (npx, ZIP)
Claude Codenpx skills add aaron-he-zhu/aaron-marketing-skills --skill influencer-discovery -g -a claude-code
Claude Code (degit)npx degit aaron-he-zhu/aaron-marketing-skills/influencer/scout/influencer-discovery#main ~/.claude/skills/influencer-discovery
Claude.ai / desktopZip the folder and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md16.6 KB
Read SKILL.md here
aaron-he-zhu/main1 file shown
SKILL.md
Show the full text115 lines

Influencer Discovery

Find evidence-backed creator candidates across platforms, screen them against declared discovery filters, and build a non-ranked readiness queue for typed Fit evaluation.

Quick Start

Find 20 influencers in [niche] for [brand/product]
Find influencers in [niche] with 50K-200K followers on TikTok and Instagram,
based in [location], engagement above 4%, who have worked with brands like [brand]

Skill Contract

  • Reads: brand/product, niche or category, target platforms, follower range, engagement floor, decision-relevant geography/language, audience demographics, exclusions; dated candidate records from a user export, public source, roster, or live connector; the current campaign's STAR evidence_window when supplied; prior entity-registry brand profile and any audience-mapper output if present in memory; existing roster records under memory/creators/ (dedupe only through verified identity links against creators already rostered by creator-registry).
  • Writes: return discovery results inline by default; only with separate exact authorization, save them to memory/influencer/influencer-discovery/YYYY-MM-DD-<topic>.md. A saved artifact uses a stable opaque creator_ref plus pseudonymous recipient_ref, contact_source_ref, and agency_ref, keeps raw handles, profile URLs, and contact coordinates transient-only, and retains geography only at the granularity required by the declared filter. Save an opaque handle_ref/source_ref identity resolver only when the authorized source artifact or verified creator-registry link can resolve it. Without one, keep identity_status: unresolved, save no hidden raw-locator mapping, and set cross_session_locator_required: true. Reuse a verified creator-registry aggregate ID when one exists; otherwise generate creator-<UUIDv4> once for the candidate lineage. Never set creator_ref to a raw handle, name, URL, email, provider ID, or a deterministic hash of any of them. Each roster-worthy creator update requires another exact authorization for an operation: propose request through registry-events.py to memory/events/creators.ndjson; only creator-registry writes canonical records under memory/creators/.
  • Promotes: only with separate exact authorization, durable facts (verified creator/handle refs, confirmed niche/platform coverage, competitor-saturated creators) to memory/hot-cache.md; discovery readiness or queue position is not a durable ranking fact.
  • Done when:
    • The required search criteria are present; otherwise stop with NEEDS_INPUT and name the missing criteria without fabricating candidates.
    • Exactly two raw locators without complete criteria/evidence remain NEEDS_INPUT, not a vetted shortlist. A separately authorized partial checkpoint is labeled PARTIAL, lists every gap, and contains no tier or rank.
    • A candidate pool exists with at least the requested count screened past follower, engagement, and brand-safety filters.
    • Each candidate has a field-level evidence trail (provider/tool, source_ref, observed_at, window, evidence label), an audience read, and an evidence-completeness triage state (READY_FOR_FIT | NEEDS_REFRESH | INELIGIBLE) that is neither a score nor a STAR Suitability verdict.
    • Every candidate keeps one stable opaque creator_ref across the report and handoff; raw identity locators remain transient and are never copied into creator_ref.
    • Conflicting observations remain separate, identity merges have a verified cross-link, and the Fit handoff marks each volatile field current, stale, or unknown against the current STAR evidence_window with any refresh_required fields named.
    • A non-ranked Fit-readiness queue is compiled with next-step pointers; every stale/unknown required field produces NEEDS_REFRESH, NOT_RANKED, and NEEDS_INPUT until refreshed.
  • Primary next skill: fit-scorer — score and rank the discovered candidates with weighted criteria.
Handoff Summary

Emit the standard shape from skill-contract.md §Handoff Summary Format.

Data Sources

Planning and screening need no live integration (Tier 1), but a real creator list still needs candidate records: public handles/links or an export supplied by the user, existing roster records, or a live search connector. Search criteria alone are not evidence that any specific creator or metric exists. If no candidate source is available, return a query/collection plan and NEEDS_INPUT; never invent handles, profiles, counts, or audience data.

Normalize evidence only in the report template, not through a new ingestion layer. For every factual field retain provider/tool, source_ref, observed_at, the measurement window (or not-supplied), and one label: Measured, Calculated, Estimated, User-provided, or Proxy. Keep conflicting values for the same field as parallel observations; do not average them, prefer the newest automatically, or merge identities from names/handles alone. A cross-provider identity becomes one creator only after a verified cross-link or explicit user confirmation.

Where a tool could sharpen results, use ~~ connector placeholders:

  • ~~influencer database — bulk discovery, follower/engagement metrics, audience demographics.
  • ~~social platform analytics — native creator-marketplace data, trending sounds, related accounts.
  • ~~CRM — surface possible existing-partner matches for verified identity-link review; never auto-merge records.
  • ~~audience overlap — estimate creator-audience vs. brand-audience match.

Keyless candidate-card metadata (oEmbed): YouTube (https://www.youtube.com/oembed?url=<video-url>&format=json), TikTok (https://www.tiktok.com/oembed?url=<post-url>), and X (https://publish.twitter.com/oembed?url=<post-url>) return a post's title, author name/handle, and thumbnail with no key — enough to resolve a candidate transiently and retain an opaque verified-handle evidence ref instead of hand-copying identity data. A handle ref remains separate from creator_ref: only an explicitly carried upstream creator_ref or a verified creator-registry identity link may resolve the aggregate; otherwise create a fresh random opaque ref and preserve the identity gap. Metadata only: no follower or engagement metrics, so those stay ~~influencer database or manual export — except YouTube, below.

Measured YouTube metrics (free key): python3 "${CLAUDE_PLUGIN_ROOT}/scripts/connectors/youtube.py" channel @handle returns the real displayed subscriber count, total views, and video count, and youtube.py videos @handle --limit 10 adds per-video views/likes/comments — upgrading a YouTube candidate's profile row from Estimated to Measured. Free YOUTUBE_API_KEY (10,000 units/day; one channel check ≈ 1–3 units). ToS boundary: vet a named shortlist, don't build a bulk creator database — quota extensions are refused for competitive harvesting. See scripts/connectors/README.md.

See CONNECTORS.md for the free/keyless recipe per category and the opt-in MCP layer. None are required — every step degrades to user-supplied inputs.

Instructions

Each step has a fill-in block in references/templates.md — copy the matching block. This skill does not compute a per-influencer score, STAR Suitability verdict, outreach priority, or action rank. It records evidence completeness and declared-filter results; fit-scorer owns typed comparison and ranking downstream.

  1. Define search criteria. Capture brand, goal, audience definition, budget/follower tier, platforms, engagement floor, location/language, exclusions, and the required/preferred parameter table. If any required criterion is missing, stop with NEEDS_INPUT; offer audience-mapper only when the user wants help defining the audience. Step 1 template.
  2. Conduct the search. Work hashtags, similar-accounts, competitor mentions, and platform-native discovery. Raw handles/profile URLs may appear only in Step 2's transient lookup block and must be removed before any save or handoff. Log the saved-safe batch with creator_ref, identity status, opaque handle_ref/source_ref when resolvable, provider/tool, query purpose, observed_at, window, and evidence label. If no public handles/links, user export, roster records, or live search connector can supply candidate records, produce the exact query pack and collection template, return NEEDS_INPUT, and stop before naming creators. Step 2 template.
  3. Initial screening. Filter the pool on follower range, engagement, recency, relevance, and brand safety; tally red flags (suspected fake followers, controversy, competitor exclusivity, inactivity). These are discovery signals, not verified STAR failures or vetoes; unsupported applicable evidence remains Unknown for downstream scoring. Per-platform reading cues: references/platform-vetting.md. Step 3 template.
  4. Build influencer profiles. For each qualified creator, first reuse an explicitly carried opaque creator_ref or a creator-registry aggregate ID whose handle link is verified. If neither exists, generate one random creator-<UUIDv4> and reuse it unchanged throughout this report lineage. Never derive it from a handle or other identity data. Save an opaque handle/evidence ref only when an authorized artifact or verified registry link resolves it; otherwise keep identity_status: unresolved, create no hidden locator map, and require the raw locator again in a later session. Then fill the profile (pseudonymous identity refs, field-level metrics and audience evidence, content, partnership history, contact-path refs, and evidence-completeness triage state). Preserve conflicts as parallel rows and merge provider identities only after a verified cross-link. Compare each volatile observation with the current campaign's STAR evidence_window: within it is current; outside it is stale; a missing window/date or absent STAR window is unknown. A stale or unknown required field stays visible, becomes refresh_required, and forces triage_state: NEEDS_REFRESH, ranking_status: NOT_RANKED, and NEEDS_INPUT; never invent a global TTL. Do not emit a score, recommendation tier, or STAR Suitability verdict. For a deep single-creator read with a contact waterfall, use references/creator-dossier.md. Step 4 template.
  5. Compile the discovery report. Roll profiles into summary stats, descriptive platform/follower-band breakdowns, and three non-ranked evidence queues: READY_FOR_FIT, NEEDS_REFRESH, and INELIGIBLE under the declared filters. Do not recommend a creator mix, label anyone Priority/Highly Recommended, or action-rank candidates before typed Fit. If the input is only two raw locators and criteria/evidence are incomplete, return NEEDS_INPUT and do not save a vetted pool. A partial checkpoint requires separate exact save authorization, must say PARTIAL/NOT_VETTED, list criteria/evidence gaps, and contain no rank, score, “top” label, or fit-scorer handoff. Step 5 template.
  6. Add insights. Note niche content trends, the competitive picture, and recommendations for future searches. Step 6 template.

Return the discovery report inline. Saving the report, caching the shortlist, and submitting each roster-worthy creator through registry-events.py as operation: propose are three separate operations and each requires exact authorization; without it, offer the eligible path and write nothing. After a vetted shortlist exists, hand fit-scorer the field-level evidence plus the STAR evidence_window, freshness_status, and refresh_required list; if no current STAR window exists, mark freshness unknown rather than inventing one. fit-scorer records the S1-S10 evidence read; creator-content-auditor alone determines verified STAR vetoes and renders the gate verdict.

Compact Example

User: "Find 15 micro-influencers (10K-100K followers) in sustainable fashion for a new eco clothing brand."

Illustrative output when a dated export or live connector returned candidate records: create one field-level evidence profile per opaque creator_ref, then place each row in READY_FOR_FIT, NEEDS_REFRESH, or INELIGIBLE under the declared filters. All rows remain NOT_RANKED; stale/unknown required fields are NEEDS_INPUT, and only the current complete rows hand off to fit-scorer. Without candidate records, return only the query/collection plan and NEEDS_INPUT. The report is returned inline, then save, promotion, and registry-proposal permissions are offered separately. Full walkthrough in references/templates.md.

Reference Materials

Next Best Skill

Primary: fit-scorer — score and rank the discovered candidates with weighted criteria before outreach.

Alternates (same influencer family):

  • competitor-tracker — when discovery surfaced competitor-saturated creators and you want to map the competitive field first.
  • audience-mapper — when the target audience is still fuzzy and criteria need sharpening before a re-search.

Termination: Maintain a visited-set. If a skill has already been invoked this session, stop and report chain-complete rather than re-invoking it. Max chain depth is 3 hops from the originating request; stop and summarize when reached.

1---
2name: influencer-discovery
3slug: influencer-discovery
4displayName: "Influencer Discovery · 红人发现"
5summary: "多平台红人挖掘:候选池、证据画像、真实性红旗筛查与 Fit 就绪队列"
6description: 'Use when the user asks to "find influencers", "build an influencer list", or "discover creators in [niche]"; produces a multi-platform candidate pool, per-influencer evidence profiles, authenticity red-flag screening, and a Fit-readiness queue without action ranking. Not for STAR scoring or ranking a known shortlist — use fit-scorer. 达人挖掘/找达人/创作者名单'
7version: "20.1.0"
8license: Apache-2.0
9compatibility: "Claude Code and compatible agent-skill hosts"
10homepage: "https://github.com/aaron-he-zhu/aaron-marketing-skills"
11when_to_use: "Activate when building an influencer roster from scratch, expanding into a new platform or niche, replacing churned partners, finding micro and nano creators at scale, identifying which influencers a competitor partners with, or standing up an always-on discovery pipeline. The user names a niche, platform, follower band, or brand and wants a list of candidate creators to evaluate."
12argument-hint: "<brand or niche> [platform] [follower-range]"
13metadata: {"author": "aaron-he-zhu", "version": "20.1.0", "discipline": "influencer", "phase": "scout", "geo-relevance": "low", "hermes": {"tags": ["marketing", "influencer", "scout"], "category": "influencer"}, "openclaw": {"emoji": "📣", "homepage": "https://github.com/aaron-he-zhu/aaron-marketing-skills"}}
14---
15 
16# Influencer Discovery
17 
18Find evidence-backed creator candidates across platforms, screen them against declared discovery filters, and build a non-ranked readiness queue for typed Fit evaluation.
19 
20## Quick Start
21 
22```
23Find 20 influencers in [niche] for [brand/product]
24```
25 
26```
27Find influencers in [niche] with 50K-200K followers on TikTok and Instagram,
28based in [location], engagement above 4%, who have worked with brands like [brand]
29```
30 
31## Skill Contract
32 
33- **Reads**: brand/product, niche or category, target platforms, follower range, engagement floor, decision-relevant geography/language, audience demographics, exclusions; dated candidate records from a user export, public source, roster, or live connector; the current campaign's STAR `evidence_window` when supplied; prior `entity-registry` brand profile and any `audience-mapper` output if present in memory; existing roster records under `memory/creators/` (dedupe only through verified identity links against creators already rostered by [creator-registry](../../../protocol/creator-registry/SKILL.md)).
34- **Writes**: return discovery results inline by default; only with separate exact authorization, save them to `memory/influencer/influencer-discovery/YYYY-MM-DD-<topic>.md`. A saved artifact uses a stable opaque `creator_ref` plus pseudonymous `recipient_ref`, `contact_source_ref`, and `agency_ref`, keeps raw handles, profile URLs, and contact coordinates transient-only, and retains geography only at the granularity required by the declared filter. Save an opaque `handle_ref`/`source_ref` identity resolver only when the authorized source artifact or verified creator-registry link can resolve it. Without one, keep `identity_status: unresolved`, save no hidden raw-locator mapping, and set `cross_session_locator_required: true`. Reuse a verified creator-registry aggregate ID when one exists; otherwise generate `creator-<UUIDv4>` once for the candidate lineage. Never set `creator_ref` to a raw handle, name, URL, email, provider ID, or a deterministic hash of any of them. Each roster-worthy creator update requires another exact authorization for an `operation: propose` request through `registry-events.py` to `memory/events/creators.ndjson`; only `creator-registry` writes canonical records under `memory/creators/`.
35- **Promotes**: only with separate exact authorization, durable facts (verified creator/handle refs, confirmed niche/platform coverage, competitor-saturated creators) to `memory/hot-cache.md`; discovery readiness or queue position is not a durable ranking fact.
36- **Done when**:
37 - The required search criteria are present; otherwise stop with `NEEDS_INPUT` and name the missing criteria without fabricating candidates.
38 - Exactly two raw locators without complete criteria/evidence remain `NEEDS_INPUT`, not a vetted shortlist. A separately authorized partial checkpoint is labeled `PARTIAL`, lists every gap, and contains no tier or rank.
39 - A candidate pool exists with at least the requested count screened past follower, engagement, and brand-safety filters.
40 - Each candidate has a field-level evidence trail (`provider/tool`, `source_ref`, `observed_at`, window, evidence label), an audience read, and an evidence-completeness triage state (`READY_FOR_FIT | NEEDS_REFRESH | INELIGIBLE`) that is neither a score nor a STAR Suitability verdict.
41 - Every candidate keeps one stable opaque `creator_ref` across the report and handoff; raw identity locators remain transient and are never copied into `creator_ref`.
42 - Conflicting observations remain separate, identity merges have a verified cross-link, and the Fit handoff marks each volatile field `current`, `stale`, or `unknown` against the current STAR `evidence_window` with any `refresh_required` fields named.
43 - A non-ranked Fit-readiness queue is compiled with next-step pointers; every stale/unknown required field produces `NEEDS_REFRESH`, `NOT_RANKED`, and `NEEDS_INPUT` until refreshed.
44- **Primary next skill**: [fit-scorer](../fit-scorer/SKILL.md) — score and rank the discovered candidates with weighted criteria.
45 
46### Handoff Summary
47 
48> Emit the standard shape from [skill-contract.md §Handoff Summary Format](../../../references/skill-contract.md).
49 
50## Data Sources
51 
52Planning and screening need no live integration (Tier 1), but a real creator list still needs candidate records: public handles/links or an export supplied by the user, existing roster records, or a live search connector. Search criteria alone are not evidence that any specific creator or metric exists. If no candidate source is available, return a query/collection plan and `NEEDS_INPUT`; never invent handles, profiles, counts, or audience data.
53 
54Normalize evidence only in the report template, not through a new ingestion layer. For every factual field retain `provider/tool`, `source_ref`, `observed_at`, the measurement window (or `not-supplied`), and one label: `Measured`, `Calculated`, `Estimated`, `User-provided`, or `Proxy`. Keep conflicting values for the same field as parallel observations; do not average them, prefer the newest automatically, or merge identities from names/handles alone. A cross-provider identity becomes one creator only after a verified cross-link or explicit user confirmation.
55 
56Where a tool *could* sharpen results, use `~~` connector placeholders:
57 
58- `~~influencer database` — bulk discovery, follower/engagement metrics, audience demographics.
59- `~~social platform analytics` — native creator-marketplace data, trending sounds, related accounts.
60- `~~CRM` — surface possible existing-partner matches for verified identity-link review; never auto-merge records.
61- `~~audience overlap` — estimate creator-audience vs. brand-audience match.
62 
63**Keyless candidate-card metadata (oEmbed)**: YouTube (`https://www.youtube.com/oembed?url=<video-url>&format=json`), TikTok (`https://www.tiktok.com/oembed?url=<post-url>`), and X (`https://publish.twitter.com/oembed?url=<post-url>`) return a post's title, author name/handle, and thumbnail with **no key** — enough to resolve a candidate transiently and retain an opaque verified-handle evidence ref instead of hand-copying identity data. A handle ref remains separate from `creator_ref`: only an explicitly carried upstream `creator_ref` or a verified creator-registry identity link may resolve the aggregate; otherwise create a fresh random opaque ref and preserve the identity gap. Metadata only: no follower or engagement metrics, so those stay `~~influencer database` or manual export — **except YouTube**, below.
64 
65**Measured YouTube metrics (free key)**: `python3 "${CLAUDE_PLUGIN_ROOT}/scripts/connectors/youtube.py" channel @handle` returns the real displayed subscriber count, total views, and video count, and `youtube.py videos @handle --limit 10` adds per-video views/likes/comments — upgrading a YouTube candidate's profile row from Estimated to **Measured**. Free `YOUTUBE_API_KEY` (10,000 units/day; one channel check ≈ 1–3 units). ToS boundary: vet a **named shortlist**, don't build a bulk creator database — quota extensions are refused for competitive harvesting. See [scripts/connectors/README.md](../../../scripts/connectors/README.md).
66 
67See [CONNECTORS.md](../../../CONNECTORS.md) for the free/keyless recipe per category and the opt-in MCP layer. None are required — every step degrades to user-supplied inputs.
68 
69## Instructions
70 
71Each step has a fill-in block in [references/templates.md](references/templates.md) — copy the matching block. This skill does *not* compute a per-influencer score, STAR Suitability verdict, outreach priority, or action rank. It records evidence completeness and declared-filter results; [fit-scorer](../fit-scorer/SKILL.md) owns typed comparison and ranking downstream.
72 
731. **Define search criteria.** Capture brand, goal, audience definition, budget/follower tier, platforms, engagement floor, location/language, exclusions, and the required/preferred parameter table. If any required criterion is missing, stop with `NEEDS_INPUT`; offer [audience-mapper](../audience-mapper/SKILL.md) only when the user wants help defining the audience. Step 1 template.
742. **Conduct the search.** Work hashtags, similar-accounts, competitor mentions, and platform-native discovery. Raw handles/profile URLs may appear only in Step 2's transient lookup block and must be removed before any save or handoff. Log the saved-safe batch with `creator_ref`, identity status, opaque `handle_ref`/`source_ref` when resolvable, provider/tool, query purpose, `observed_at`, window, and evidence label. If no public handles/links, user export, roster records, or live search connector can supply candidate records, produce the exact query pack and collection template, return `NEEDS_INPUT`, and stop before naming creators. Step 2 template.
753. **Initial screening.** Filter the pool on follower range, engagement, recency, relevance, and brand safety; tally red flags (suspected fake followers, controversy, competitor exclusivity, inactivity). These are discovery signals, not verified STAR failures or vetoes; unsupported applicable evidence remains Unknown for downstream scoring. Per-platform reading cues: [references/platform-vetting.md](references/platform-vetting.md). Step 3 template.
764. **Build influencer profiles.** For each qualified creator, first reuse an explicitly carried opaque `creator_ref` or a creator-registry aggregate ID whose handle link is verified. If neither exists, generate one random `creator-<UUIDv4>` and reuse it unchanged throughout this report lineage. Never derive it from a handle or other identity data. Save an opaque handle/evidence ref only when an authorized artifact or verified registry link resolves it; otherwise keep `identity_status: unresolved`, create no hidden locator map, and require the raw locator again in a later session. Then fill the profile (pseudonymous identity refs, field-level metrics and audience evidence, content, partnership history, contact-path refs, and evidence-completeness triage state). Preserve conflicts as parallel rows and merge provider identities only after a verified cross-link. Compare each volatile observation with the current campaign's STAR `evidence_window`: within it is `current`; outside it is `stale`; a missing window/date or absent STAR window is `unknown`. A stale or unknown required field stays visible, becomes `refresh_required`, and forces `triage_state: NEEDS_REFRESH`, `ranking_status: NOT_RANKED`, and `NEEDS_INPUT`; never invent a global TTL. Do not emit a score, recommendation tier, or STAR Suitability verdict. For a deep single-creator read with a contact waterfall, use [references/creator-dossier.md](references/creator-dossier.md). Step 4 template.
775. **Compile the discovery report.** Roll profiles into summary stats, descriptive platform/follower-band breakdowns, and three non-ranked evidence queues: `READY_FOR_FIT`, `NEEDS_REFRESH`, and `INELIGIBLE` under the declared filters. Do not recommend a creator mix, label anyone Priority/Highly Recommended, or action-rank candidates before typed Fit. If the input is only two raw locators and criteria/evidence are incomplete, return `NEEDS_INPUT` and do not save a vetted pool. A partial checkpoint requires separate exact save authorization, must say `PARTIAL`/`NOT_VETTED`, list criteria/evidence gaps, and contain no rank, score, “top” label, or fit-scorer handoff. Step 5 template.
786. **Add insights.** Note niche content trends, the competitive picture, and recommendations for future searches. Step 6 template.
79 
80Return the discovery report inline. Saving the report, caching the shortlist, and submitting each roster-worthy creator through `registry-events.py` as `operation: propose` are three separate operations and each requires exact authorization; without it, offer the eligible path and write nothing. After a vetted shortlist exists, hand [fit-scorer](../fit-scorer/SKILL.md) the field-level evidence plus the STAR `evidence_window`, `freshness_status`, and `refresh_required` list; if no current STAR window exists, mark freshness `unknown` rather than inventing one. `fit-scorer` records the S1-S10 evidence read; [creator-content-auditor](../../activate/creator-content-auditor/SKILL.md) alone determines verified STAR vetoes and renders the gate verdict.
81 
82## Compact Example
83 
84**User**: "Find 15 micro-influencers (10K-100K followers) in sustainable fashion for a new eco clothing brand."
85 
86**Illustrative output when a dated export or live connector returned candidate records**: create one field-level evidence profile per opaque `creator_ref`, then place each row in `READY_FOR_FIT`, `NEEDS_REFRESH`, or `INELIGIBLE` under the declared filters. All rows remain `NOT_RANKED`; stale/unknown required fields are `NEEDS_INPUT`, and only the current complete rows hand off to `fit-scorer`. Without candidate records, return only the query/collection plan and `NEEDS_INPUT`. The report is returned inline, then save, promotion, and registry-proposal permissions are offered separately. Full walkthrough in [references/templates.md](references/templates.md#worked-example--sustainable-fashion-micro-influencers).
87 
88## Reference Materials
89 
90- [references/templates.md](references/templates.md) — all step fill-in blocks (criteria, search, screening, profile, report, insights), the worked example, tips, and the "what/when" overview.
91- [references/platform-vetting.md](references/platform-vetting.md) — per-platform creator playbooks (X/LinkedIn/TikTok/YouTube/Reddit) feeding screening and profiling in steps 3-4.
92- [references/creator-dossier.md](references/creator-dossier.md) — structured per-creator dossier from public data, with a contact-discovery waterfall.
93- [skill-contract.md](../../../references/skill-contract.md) — shared contract and Handoff Summary format.
94- [state-model.md](../../../references/state-model.md) — memory tiers and save-path conventions.
95- [CONNECTORS.md](../../../CONNECTORS.md) — free/keyless data recipes and opt-in MCP layer.
96- STAR benchmark at [references/star-benchmark.md](../../../references/star-benchmark.md) — scoring framework that fit-scorer applies downstream.
97- Siblings in the scout phase: [fit-scorer](../fit-scorer/SKILL.md), [audience-mapper](../audience-mapper/SKILL.md), [trend-spotter](../trend-spotter/SKILL.md).
98 
99## Next Best Skill
100 
101**Primary**: [fit-scorer](../fit-scorer/SKILL.md) — score and rank the discovered candidates with weighted criteria before outreach.
102 
103**Alternates (same influencer family)**:
104- [competitor-tracker](../../target/competitor-tracker/SKILL.md) — when discovery surfaced competitor-saturated creators and you want to map the competitive field first.
105- [audience-mapper](../audience-mapper/SKILL.md) — when the target audience is still fuzzy and criteria need sharpening before a re-search.
106 
107**Termination**: Maintain a visited-set. If a skill has already been invoked this session, stop and report chain-complete rather than re-invoking it. Max chain depth is 3 hops from the originating request; stop and summarize when reached.
108 
109## Related Skills
110 
111- [audience-mapper](../audience-mapper/SKILL.md) - Define who to reach
112- [fit-scorer](../fit-scorer/SKILL.md) - Score and rank discovered influencers
113- [competitor-tracker](../../target/competitor-tracker/SKILL.md) - Find competitor influencers
114- [outreach-manager](../../activate/outreach-manager/SKILL.md) - Contact discovered influencers
115 
View all files on GitHub →

Details

Version
20.1.0
License
Apache-2.0
Stars on the repo
★ 2,858
Checked
Source
aaron-he-zhu/aaron-marketing-skills ↗
Creator
aaron-he-zhu · 99 listings
View creator

Similar skills

See all →
SkillCreator Audience AnalyzerScrapeCreators/social-media-research-skills · by ScrapeCreatorsUse when the user wants to evaluate a creator, influencer, or brand audience using public profile signals, TikTok audience demographics, follower/following data, comments, geography, language, and content fit. Helps judge sponsorship and market fit.★ 2.6k GitHub starsSkillYouTube Channel Authenticity CheckThoughtLeaders-io/thoughtleaders-cli · by ThoughtLeaders-ioDetect non-organic views / fake engagement / bot comments on a YouTube channel before booking (or after delivering) a sponsorship. Use when asked to vet a channel, check if views/comments are real, investigate suspicious engagement, audit a sponsorship delivery, or whenever someone shares a YouTube channel/handle/URL and asks "is this real / safe to buy an ad on". Triggers: "fake views", "bot comments", "non-organic", "is this channel legit", "vet this channel", "engagement looks off", "audit this sponsorship".★ 25 GitHub starsSkillCreator Fit Scorerwriter/skills · by writerScores and ranks influencers for brand partnership fit using a multi-dimensional framework covering audience alignment, engagement quality, brand safety, content relevance, and commercial viability for CPG and retail e-commerce campaigns. Use when evaluating potential influencer partners, building shortlists, or comparing candidates. Triggers on requests for influencer evaluation, creator partnerships, influencer scoring, KOL assessment, or ambassador selection.★ 7 GitHub starsSkillCreator Partnership Planningcoreyhaines31/marketingskills · by coreyhaines31When the user wants to run influencer, creator, or ambassador partnerships to promote their product — finding and vetting partners, structuring deals, briefing creators, disclosure compliance, and measuring ROI. Also use when the user mentions 'influencer mark★ 51.1k GitHub starsAgentTwitter AI Influencer Managerdavila7/claude-code-templates · by davila7Twitter AI influencer engagement specialist. Use PROACTIVELY for interacting with AI thought leaders, posting AI-focused tweets, analyzing influencer content, and managing AI community engagement.★ 32.3k GitHub starsSkillTarget Audience Profileraaron-he-zhu/aaron-marketing-skills · by aaron-he-zhuUse when the user asks to "analyze my target audience", "build an audience profile for influencer targeting", "research a niche community", or "deep-dive a subculture before partnering with creators"; in audience mode produces demographic/psychographic profiles, a platform-priority matrix, named personas, and an influencer-selection criteria set, and in niche mode produces a community map, culture decode (language/norms/taboos), key-voice tiers, a Brand Fit Score, and a phased entry strategy. Not for finding specific creators to contract — use influencer-discovery; not for scoring a shortlist on Suitability — use fit-scorer. 目标受众画像/人群分析 · 细分社群/亚文化调研★ 2.9k GitHub stars

More from aaron-he-zhu

SkillAd Test Designeraaron-he-zhu/aaron-marketing-skills · by aaron-he-zhuUse when the user asks to "design an A/B test", "set up a creative/landing test", "run an incrementality test", or "is this result statistically and practically material?"; produces a hypothesis, variant matrix, sample-size/duration/power plan, and a documented effect/uncertainty read from own exported results. It applies only a precommitted owner-approved action rule; the statistical helper never chooses a business action. Not for producing variants — use ad-creative-builder; not for reading back one shipped change — use paid-measurement-loop. 广告AB测试设计/实验设计/显著性判定/增效测试★ 2.9k GitHub starsSkillAdvocacy Program Designeraaron-he-zhu/aaron-marketing-skills · by aaron-he-zhuUse when the user asks to "design an employee advocacy program", "set up founder-led sharing", or "build a share kit for the team"; produces an advocacy program blueprint in two modes — participation-driven opt-in (default) or top-down assigned with its coercion and authenticity risks flagged — with a voluntary opt-in roster spec submitted as channel-registry proposal events, share kits with mandatory per-person variation, staggered human posting windows plus anti-pod guardrails (no coordinated identical reshares, no engagement rings), per-person material-connection disclosure lines per FTC and 《互联网广告管理办法》, and a Slack/Teams distribution spec. Not for paid creator campaigns — use campaign-planner. 员工倡导/创始人IP分享/内部分享计划/披露合规★ 2.9k GitHub starsSkillBuyer Belief Mapperaaron-he-zhu/aaron-marketing-skills · by aaron-he-zhuUse when the user asks to "map what our buyers believe", "capture the objections we keep hearing", or "find the switching forces that move the beachhead"; produces a belief map of the beachhead — held beliefs and mental models, the recurring objections and their reframes, and the JTBD four forces (push of the problem, pull of the new, anxiety of switching, habit of the present) — each item sourced from interviews or win-loss notes (User-provided) and labeled Measured / User-provided / Estimated, with any unverified quote or comparative claim marked "[needs source]" and routed to the claims candidates, never adjudicated here. Not for demographic or persona profiling — use audience-mapper; not for the positioning canvas — use positioning-truth-tracer. 受众信念/异议地图/切换四力/流失语言★ 2.9k GitHub starsSkillTarget Audience Profileraaron-he-zhu/aaron-marketing-skills · by aaron-he-zhuUse when the user asks to "analyze my target audience", "build an audience profile for influencer targeting", "research a niche community", or "deep-dive a subculture before partnering with creators"; in audience mode produces demographic/psychographic profiles, a platform-priority matrix, named personas, and an influencer-selection criteria set, and in niche mode produces a community map, culture decode (language/norms/taboos), key-voice tiers, a Brand Fit Score, and a phased entry strategy. Not for finding specific creators to contract — use influencer-discovery; not for scoring a shortlist on Suitability — use fit-scorer. 目标受众画像/人群分析 · 细分社群/亚文化调研★ 2.9k GitHub starsSkillAudience Segment Builderaaron-he-zhu/aaron-marketing-skills · by aaron-he-zhuUse when the user asks to "build audience segments from my customer list", "make value-based / lookalike seed lists", "set up exclusion / suppression segments", or "map audiences to funnel stages across platforms"; turns the user''s OWN customer/CRM/GA4 export into seed audiences, value-based lookalike SEED lists, exclusion/suppression segments, and a cross-platform funnel-stage targeting map, informing the ROAS A (Audience) dimension. Not for building account structure or match types — use campaign-architect; not for organic SERP intent — use keyword-research. 付费广告受众分群/种子人群/排除人群/相似人群种子★ 2.9k GitHub starsSkillBrand Voice Codifieraaron-he-zhu/aaron-marketing-skills · by aaron-he-zhuUse when the user asks to "codify our brand voice", "define naming rules for our products and tiers", or "write the tone-of-voice guide with banned phrases"; produces the brand-level voice canon (register, tone spectrum, banned-phrase list, few-shot examples drawn only from the brand''s own published material) and the naming tax (product / feature / tier naming rules plus approved and banned terms) that seeds the narrative-registry canon and that every channel''s voice adaptation points up to. Not for per-platform voice adaptation — use channel-registry''s voice-dossier; not for finished copy or blog posts — use content-writer; not for the message hierarchy itself — use message-system-architect; not for claim adjudication — use offer-claims-registry. 品牌语气/词汇表/命名税/禁用词/品牌语言规范★ 2.9k GitHub stars