← CheerfulCONTENT HISTORY

Update to Cheerful

Snapshot Oct 27, 2026 · 06:07 UTC · version 3.0.6

Collection source: downloaded plugin package.

WHAT CHANGED

First saved snapshot

No earlier snapshot is available to establish a change.

Save Cheerful and check future changes in Following.

Up to 10 plugins free · no card required.

Compare saved observations

Download comparison JSON
Full technical diff · 0 changed fields
Full snapshot data
{
  "description": "Review one creator's public profile against the user's brief in Cheerful: audience size, engagement, niche fit, recent posts, whether a public email exists, and whether the user has already saved or contacted them. Read-only. Use when the user asks \"vet @handle\", \"is @handle a good fit\", \"tell me about this creator\", \"check this influencer\", \"should I work with @handle\", \"have we contacted @handle before\", or pastes an Instagram, TikTok or YouTube profile link.",
  "included_files": [
    {
      "relative_path": "agents/openai.yaml",
      "size_in_bytes": 543
    }
  ],
  "name": "cheerful-vet-creator",
  "skill_md_contents": "---\nname: cheerful-vet-creator\ndescription: \"Review one creator's public profile against the user's brief in Cheerful: audience size, engagement, niche fit, recent posts, whether a public email exists, and whether the user has already saved or contacted them. Read-only. Use when the user asks \\\"vet @handle\\\", \\\"is @handle a good fit\\\", \\\"tell me about this creator\\\", \\\"check this influencer\\\", \\\"should I work with @handle\\\", \\\"have we contacted @handle before\\\", or pastes an Instagram, TikTok or YouTube profile link.\"\n---\n\n# Vet a creator\n\nCheck one creator against the user's brief and against what the user already has in Cheerful.\nRead-only: it saves nothing and contacts no one.\n\n## Step 0: Check the connection\n\nIf a Cheerful tool is unavailable, or a call answers \"Tool not found\" or asks to reconnect, stop\nand tell the user: \"Connect Cheerful from the plugin page, then ask me again.\" Don't retry.\n\n## Read this first: what the data can and can't tell you\n\n- **The platform must match.** The same handle can be a different person on another platform.\n  Take the platform from the link or the user's words; if neither says, use Instagram and say\n  so in your reply rather than asking.\n- **\"Not enriched yet\" is not \"no audience\".** TikTok and YouTube creators Cheerful hasn't seen\n  before come back with `is_enriched` false and no detail. Say \"not enriched yet\"; Cheerful fills\n  it in when the creator is added to a campaign.\n- **Most creators have no public email.** That is the common case, not a red flag.\n- **A first look is slow.** A profile Cheerful hasn't loaded recently can take about a minute.\n  Tell the user it is working and don't call it twice.\n- **Low engagement is a flag, not a verdict.** Under about 0.5% on 50k+ followers often means a\n  bought audience; say so plainly and let the user decide.\n\n## Workflow\n\n1. **Identify.** Get the handle (drop the @) and platform from the message or link. If the user\n   gave a brief earlier in the chat, use it; otherwise vet on general quality and say so.\n2. **Profile.** Call `creator_profile` with `handle` (or the pasted link) and `platform`. Note\n   followers, `engagement_rate`, bio, recent posts (topic, how recent, how they perform), where\n   the audience is (`audience`, when present) and whether a public email exists.\n3. **Already saved?** Call `list_read` with `action=\"index\"`. For lists whose names suggest a match,\n   call `list_read` with `action=\"get\"` and that `list_id`, and look for the handle. Stop after 3\n   lists.\n4. **Already contacted?** Call `inbox_read` with `action=\"search\"` and `search` set to the handle\n   (and the creator's name if the profile has one). Report any conversation with its campaign and\n   where it stands.\n5. **Verdict.** Score fit against the brief on niche, audience size, engagement and recent\n   activity: **Good fit**, **Possible fit** (say what's uncertain) or **Not a fit** (say why).\n6. **Offer, don't act.** Offer to save them to a list. Only if the user says yes, call\n   `save_creators_to_list` with this creator, `platform` set to the platform from step 1 (always\n   pass it; there is no default), and their `list_id` or a `new_list_name`.\n\n## Output layout\n\nIn ChatGPT the profile appears as a creator card automatically. After the card, write at most 2\nsentences: the verdict and the main reason, plus anything from steps 3-4 (already saved or\ncontacted). Don't repeat the card's numbers in prose.\n\nWhere no card is shown (for example in Codex), use this layout:\n\n```\n**@zardyplants · Liz and Paul · Instagram** — Good fit for \"US vegan cooking\"\n\n- **Audience:** 95.2k followers · 1.8% engagement\n- **Niche:** easy plant-based comfort food; posts new recipes weekly\n- **Recent posts:** 3 in the last 2 weeks, all recipes\n- **Contact:** has a public email\n- **In Cheerful:** on your list \"Vegan food creators (US)\" · not contacted yet\n\n**Why:** on-niche, consistent posting, healthy engagement for the size.\nWant me to save them to a list?\n```\n\n## Rules\n\n- Plain language: no ids, field names, status codes or \"tool\" in the reply.\n- Never print the creator's email address or phone number; say \"has a public email\".\n- Never email or message the creator yourself. If they fit and `create_campaign_draft` is listed, offer\n  to add them to a campaign (the user sends it from the launch card); otherwise outreach is set\n  up in Cheerful at https://app.cheerful.ai.\n- Don't promote plans or purchases.\n"
}

SHA-256 of public snapshot: f3be51357626a8fb77b4129ab7379395ede0c071de65703ec29585f4673c2738