{"id":97218,"plugin_id":"plugin_asdk_app_6af5ea1db6988191ac1d4099cef1a6db","kind":"skill","collection_source":"plugin_package","comparison_source":null,"observed_at":"2026-11-15T07:39:02.842Z","digest":"88a1243f5d986de645b0c8600e9a23fca7f83713d4bab6aefc8ac3df58ac97bc","against":null,"payload":{"description":"Use SpotsNow to research podcast advertising, discover shows and inventory, analyze brands and networks, prospect advertisers, and create or edit campaign plans.","included_files":[],"name":"podcast-intelligence","skill_md_contents":"---\nname: podcast-intelligence\ndescription: Use SpotsNow to research podcast advertising, discover shows and inventory, analyze brands and networks, prospect advertisers, and create or edit campaign plans.\n---\n\n# SpotsNow podcast intelligence\n\nUse SpotsNow when the user needs podcast advertising research, advertiser\nprospecting, inventory discovery, or campaign and bundle planning.\n\n## Resolve names and classifications first\n\n- Use `resolve_entity_ids` for podcast or network names before calling tools that\n  require `podcastId`, `podcastIds`, or `networkId`. Never invent UUIDs.\n- Use `list_classifications` before applying an industry or category filter.\n  Pass category slugs and exact industry names returned by that tool.\n- Brand tools require bare domains. Ask the user to confirm a domain when it is\n  missing or ambiguous; `resolve_entity_ids` does not resolve brands.\n\n## Podcast and network research\n\n- Use `find_podcasts_by_audience_description` for audience or demographic\n  discovery. Without audience descriptions, include a budget and at least one\n  demographic filter. Treat `campaignBudget` as total budget and\n  `maximumOneAdBudget` as the explicit per-spot cap.\n- Use `get_podcast_details` for catalog, estimated CPM, demographics, ad-load,\n  host, and stored social data. Request only the sections needed.\n- Use `get_batch_lookalike_shows` for shows similar to known podcasts.\n- Use `get_new_performing_podcasts` for shows newly attracting repeat buyers.\n- Use `get_network_podcasts` to explore or rank a network catalog.\n- Use `get_bulk_podcasts_fill_rate` for monetization and fill-rate questions\n  across shows or a network.\n- Use `get_podcast_recent_ads` for the most recently detected audio/RSS and\n  YouTube ads. Recency is based on episode publication time, not spend.\n\n## Brand, sponsor, and industry intelligence\n\n- Use `get_brand_details` for brand profiles, category buying behavior, and\n  estimated spend. Request only needed sections and label estimates.\n- Use `get_brand_sponsored_shows` for where a brand advertises, including top\n  spend, recent activity, new sponsorships, and churned shows.\n- Use `get_podcast_advertising_brands` for a podcast's leading sponsors or all\n  brands detected in the last three months.\n- Use `get_industry_details` for industry spend trends, brands, ads, and shows.\n- Use `get_network_prospect_brands` for brands that fit a network but have not\n  advertised on it.\n- Use `get_reference_brand_prospect_shows` to find shows repeat-bought by a\n  comparable advertiser that the prospect does not already buy.\n\n## Inventory discovery\n\n- Use `discover_ad_inventories` to find eligible inventory for a target\n  audience. Respect viewer permissions and price masking.\n- Suggest dates only from `spots[].availableWeeks`; listing start and end dates\n  are not bookable weeks.\n- Treat `availabilityCheckedAt` as a snapshot, not a reservation. Refresh\n  discovery before confirming dates.\n- Keep monthly starts at least 30 days apart for a listing.\n- Display reach with `reachSource`; label `audienceSize` as estimated show\n  audience.\n- Prefer inventory CPM. Only if it is absent and unmasked, use the basic\n  estimated CPM from `get_podcast_details` and label it as estimated.\n- Confirm inferred brand audiences before discovery and include `bookingUrl`\n  when returned. Discovery does not book or purchase inventory.\n\n## Read plans and bundles\n\n- Use `list_plans` to find campaigns and bundles. Filter rather than scanning\n  every plan.\n- Use `get_plan` to read status, budget, edit permission, shows, fit reasons,\n  ad counts, and selected listings.\n- Use `get_bundle_weeks` before editing bundle dates. Use only IDs and live\n  weeks returned by that call, and follow pagination when needed.\n- Generated plans may be asynchronous. Empty shows can mean generation has not\n  completed; do not describe that as a failed or completed plan.\n\n## Create or edit plans\n\nThese five tools change saved plan state. Do not invoke them until the user has\nconfirmed the material inputs or exact edit.\n\n- `generate_campaign`: require confirmed `brandDomain`, `budget`, and\n  `targetAudience.descriptions`. Suggest audience descriptions for confirmation.\n  Offer optional demographic, existing-advertiser exclusion, and competitor\n  exclusions without assuming them. Share the returned link and do not claim\n  asynchronous generation is complete.\n- `generate_bundle`: follow the same confirmation rules and explain that it uses\n  active internal SpotsNow inventory. Share `bundleUrl` without claiming the\n  bundle is complete.\n- `add_plan_podcasts`: resolve show names, show the final list, and get\n  confirmation before adding. This changes the plan only.\n- `remove_plan_podcasts`: use podcast IDs from `get_plan`, show the final list,\n  and get confirmation before removing. Removal is reversible and does not\n  cancel bookings.\n- `update_bundle_weeks`: call `get_bundle_weeks` first, show the exact\n  add/remove week changes, and get confirmation. On a conflict, read live weeks\n  again before retrying. This does not reserve inventory or place/cancel orders.\n\n## Response and safety rules\n\n- Never invent spend, audience, pricing, demographic, sponsorship, inventory,\n  UUID, date, or plan data.\n- Distinguish reported values from estimates and name the returned time period.\n- Respect masking, authorization, edit permissions, and unmatched results.\n- Ground recommendations in tool responses and make missing information clear.\n- Do not expose private listener contact information or unnecessary internal\n  diagnostics.\n- Never claim that inventory was reserved or booked, a payment was made, an\n  order was placed, outreach was sent, or a campaign was launched. The available\n  write tools create and edit SpotsNow plans only.\n\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}