Roster Microsite Builder
Spin up a good-looking, shareable website — a media kit for one creator or a
whole roster — styled after the audience-report page, saved as a Cowork artifact
for one-click sharing. Doubles as the agency "wrap deck". It is also a big
generation engine: an agency rendering its roster pulls (and thereby seeds
the pooled cache with) an audience report per creator in one move, so the next
render next month is mostly free.
Read first: ${CLAUDE_PLUGIN_ROOT}/shared/conventions.md (tool schemas, credit
prices, the nine conventions). This skill honors the credit-estimate discipline
(${CLAUDE_PLUGIN_ROOT}/shared/credit-modes.md) and the Freshness Gate
(${CLAUDE_PLUGIN_ROOT}/shared/freshness-gate.md). Use the creatorland-design
skill for brand tokens, fonts, and components so the microsite is on-brand.
One creator, a procurement/legal dossier (not a website) → creator-diligence-audience-report.
Just the cost estimate for a roster → run check_audience_coverage alone.
Inputs to collect
- Scope (required) — a single creator, or a roster (list / CSV / pasted
handles). For each: platform + handle (and
source_user_id if known —
it guarantees a cache hit).
- View — single media-kit page, or a roster grid/index. Default: roster
grid when >1 creator.
- Consent (creator-side use) — if this microsite is a MEMBER's OWN media
kit (their data shown back to them or to brands on their behalf), confirm
consent before exposing their data. Flag it; do not assume.
Flow
Scope + cost preflight (MANDATORY). Run check_audience_coverage
{ creators: [...] } (free) across the whole roster first, then state:
creators: cached (free), fresh ≈ <F×25> credits
(~$<F×0.63>). Build all, or only the cached ones, or cap to N? Continue?
Pull only after the human confirms the spend. Honor "only the cached ones"
and "cap to N".
Pull data per creator (cache-first) — get_audience_report
{ platform, source_user_id | handle } for each in scope (25 credits each,
or $0 on a cache hit). Optionally query_market_intelligence
{ mode: "rate", vertical, creator_tier } per creator (derive creator_tier
from that creator's follower count — emerging <1k / nano 1k-10k / micro 10k-100k / mid 100k-500k / macro 500k-1M / mega 1M+ — so the chip scopes to
same-size creators; a tier too thin for the floor broadens, disclosed, to the
vertical band) for a rate-band chip. Capture each
report's as_of {profile_updated} and coverage block.
Render the microsite — ONE self-contained HTML artifact, Creatorland-
branded (use creatorland-design tokens), styled after the audience-report
layout:
- Per-creator card/section: avatar (the paid-plan
avatar { url, source }
from search_creators/get_creator_profile — render the headshot when
url is present, and degrade gracefully to an initials monogram when it's
null, e.g. on free/demo plans), handle, platform, followers, real
engagement rate, fake-follower % (suspicious/bot) + mass-follower %
(real but low-value) + a red/green credibility badge,
audience age/gender charts, geo (top countries / US weight), top interests
- audience brand-affinity, recent/top posts, and brand history.
- Roster view: a clean grid/index with filters (tier, platform, audience
geo, credibility).
- Charts: Chart.js loaded from CDN only — the artifact must be fully
self-contained (no external storage APIs, no localStorage), per the Cowork
artifact rules.
Save as a Cowork artifact (create_artifact) so it is shareable +
re-openable. Offer a PDF export of the same page.
Honest data labels — per creator: "audience data as of
"; a roster coverage line ("audience data available for
of "); credibility badge labeled vendor-derived; Instagram-first
coverage noted where TikTok/YouTube lack credibility / audience
brand-affinity. Strip all PII — no contact info anywhere on the page.
Deliverable
A single shareable Cowork HTML artifact:
- Single creator: a one-page media kit (hero + the per-creator card above).
- Roster: a header (roster name, N creators, coverage "M of N", date) + a
filterable grid of per-creator cards.
- Footer/provenance: "Audience data as of ; credibility scores are
vendor-derived; no contact information shown (by design)."
Marketing tie-in: ship one live example generated by this skill, linked
on the MCP marketing site as "see a sample roster site" (see CRE-889).
Honesty rules
- Cost is confirmed before pulling. The free
check_audience_coverage
preflight runs first; the paid pulls happen only on explicit go-ahead.
- Self-contained artifact. Chart.js from CDN only; NO external storage /
localStorage / sessionStorage (Cowork artifact rules) — all data inline.
- Cache-first economics. A re-render next month is mostly cache hits (free
vendor cost), so say " of were free from cache" in the build summary.
- Credibility is vendor-derived — badge it. Never imply the score is a
Creatorland computation.
- Fake ≠ mass followers. Two figures, not one: fake-follower % = suspicious/
bot accounts; mass-follower % = real people who over-follow (low-value, not
fake). Never merge them into a single "fake" number.
- Instagram-first honesty. TikTok/YouTube cards show demographics + geo and
state credibility / audience brand-affinity are "not available for this
platform today" — never fabricated.
- Consent gate for creator-side use. A member's own media kit is shown only
after consent is confirmed.
- PII invariant (convention 7). No contact info on the page, regardless of
source (the MCP strips the report's
contacts; you add none). "Contact via
Creatorland" is the only contact affordance.
Credit footprint
25 credits per creator needing a fresh report (cached creators are the same 25
billed but $0 vendor cost), + optional 5 per rate-band chip. A 12-creator roster
with 5 cached ≈ 7×25 = 175 credits ($4.40); the same roster re-rendered next
month, mostly cached, is far cheaper. The free check_audience_coverage
preflight always runs first and the estimate is stated before any pull.
1---2name: roster-microsite-builder3description: Build a shareable, good-looking microsite / media kit from creator audience data. Use when the user wants to "make a media kit", "build a roster site", "create a shareable creator/roster page", "wrap deck for these creators", "turn this roster into a website", or "a site like the audience report page". Renders one creator or a full roster into a Cowork HTML artifact styled after the audience-report layout. Pulls audience reports for any creators that need them (paid — preflight the cost).4---56# Roster Microsite Builder78Spin up a good-looking, **shareable website** — a media kit for one creator or a9whole roster — styled after the audience-report page, saved as a Cowork artifact10for one-click sharing. Doubles as the agency "wrap deck". It is also a big11**generation engine**: an agency rendering its roster pulls (and thereby seeds12the pooled cache with) an audience report per creator in one move, so the next13render next month is mostly free.1415Read first: ${CLAUDE_PLUGIN_ROOT}/shared/conventions.md (tool schemas, credit16prices, the nine conventions). This skill honors the credit-estimate discipline17(${CLAUDE_PLUGIN_ROOT}/shared/credit-modes.md) and the Freshness Gate18(${CLAUDE_PLUGIN_ROOT}/shared/freshness-gate.md). Use the **`creatorland-design`**19skill for brand tokens, fonts, and components so the microsite is on-brand.2021> One creator, a procurement/legal dossier (not a website) → `creator-diligence-audience-report`.22> Just the cost estimate for a roster → run `check_audience_coverage` alone.2324## Inputs to collect2526- **Scope** (required) — a single creator, or a roster (list / CSV / pasted27 handles). For each: **platform** + handle (and `source_user_id` if known —28 it guarantees a cache hit).29- **View** — single media-kit page, or a roster grid/index. Default: roster30 grid when >1 creator.31- **Consent (creator-side use)** — if this microsite is a MEMBER's OWN media32 kit (their data shown back to them or to brands on their behalf), confirm33 consent before exposing their data. Flag it; do not assume.3435## Flow36371. **Scope + cost preflight (MANDATORY).** Run `check_audience_coverage`38 `{ creators: [...] }` (free) across the whole roster first, then state:3940 > <N> creators: **<C> cached (free), <F> fresh ≈ <F×25> credits**41 > (~$<F×0.63>). Build all, or only the cached ones, or cap to N? Continue?4243 Pull only after the human confirms the spend. Honor "only the cached ones"44 and "cap to N".45462. **Pull data per creator** (cache-first) — `get_audience_report`47 `{ platform, source_user_id | handle }` for each in scope (25 credits each,48 or $0 on a cache hit). Optionally `query_market_intelligence`49 `{ mode: "rate", vertical, creator_tier }` per creator (derive `creator_tier`50 from that creator's follower count — emerging <1k / nano 1k-10k / micro 10k-100k / mid 100k-500k / macro 500k-1M / mega 1M+ — so the chip scopes to51 same-size creators; a tier too thin for the floor broadens, disclosed, to the52 vertical band) for a rate-band chip. Capture each53 report's `as_of {profile_updated}` and `coverage` block.54553. **Render the microsite** — ONE self-contained HTML artifact, Creatorland-56 branded (use `creatorland-design` tokens), styled after the audience-report57 layout:58 - **Per-creator card/section:** avatar (the paid-plan `avatar { url, source }`59 from `search_creators`/`get_creator_profile` — render the headshot when60 `url` is present, and degrade gracefully to an initials monogram when it's61 `null`, e.g. on free/demo plans), handle, platform, followers, real62 engagement rate, **fake-follower % (suspicious/bot) + mass-follower %63 (real but low-value) + a red/green credibility badge**,64 audience age/gender charts, geo (top countries / US weight), top interests65 + audience brand-affinity, recent/top posts, and brand history.66 - **Roster view:** a clean grid/index with filters (tier, platform, audience67 geo, credibility).68 - **Charts:** Chart.js loaded **from CDN only** — the artifact must be fully69 self-contained (no external storage APIs, no localStorage), per the Cowork70 artifact rules.71724. **Save as a Cowork artifact** (`create_artifact`) so it is shareable +73 re-openable. Offer a **PDF export** of the same page.74755. **Honest data labels** — per creator: "audience data **as of76 <profile_updated>**"; a roster coverage line ("audience data available for77 <M> of <N>"); credibility badge labeled **vendor-derived**; Instagram-first78 coverage noted where TikTok/YouTube lack credibility / audience79 brand-affinity. **Strip all PII** — no contact info anywhere on the page.8081## Deliverable8283A single shareable Cowork HTML artifact:8485- **Single creator:** a one-page media kit (hero + the per-creator card above).86- **Roster:** a header (roster name, N creators, coverage "M of N", date) + a87 filterable grid of per-creator cards.88- Footer/provenance: "Audience data as of <dates>; credibility scores are89 vendor-derived; no contact information shown (by design)."9091> Marketing tie-in: ship **one live example** generated by this skill, linked92> on the MCP marketing site as "see a sample roster site" (see CRE-889).9394## Honesty rules9596- **Cost is confirmed before pulling.** The free `check_audience_coverage`97 preflight runs first; the paid pulls happen only on explicit go-ahead.98- **Self-contained artifact.** Chart.js from CDN only; NO external storage /99 localStorage / sessionStorage (Cowork artifact rules) — all data inline.100- **Cache-first economics.** A re-render next month is mostly cache hits (free101 vendor cost), so say "<C> of <N> were free from cache" in the build summary.102- **Credibility is vendor-derived — badge it.** Never imply the score is a103 Creatorland computation.104- **Fake ≠ mass followers.** Two figures, not one: fake-follower % = suspicious/105 bot accounts; mass-follower % = real people who over-follow (low-value, not106 fake). Never merge them into a single "fake" number.107- **Instagram-first honesty.** TikTok/YouTube cards show demographics + geo and108 state credibility / audience brand-affinity are "not available for this109 platform today" — never fabricated.110- **Consent gate for creator-side use.** A member's own media kit is shown only111 after consent is confirmed.112- **PII invariant (convention 7).** No contact info on the page, regardless of113 source (the MCP strips the report's `contacts`; you add none). "Contact via114 Creatorland" is the only contact affordance.115116## Credit footprint117118~25 credits per creator needing a fresh report (cached creators are the same 25119billed but $0 vendor cost), + optional 5 per rate-band chip. A 12-creator roster120with 5 cached ≈ 7×25 = 175 credits (~$4.40); the same roster re-rendered next121month, mostly cached, is far cheaper. The free `check_audience_coverage`122preflight always runs first and the estimate is stated before any pull.