Brand Sponsor Finder
Last updated October 29, 2026
Find brands that pay creators in your niche. Reads public YouTube descriptions, podcast show notes, newsletter issues, event sponsor pages, partnership job posts, and creator program pages. One row per sighting with evidence link and date, one per brand with a recency score.
Install
npx @mambalabsdev/mcp-brand-sponsor-finderEvery tool here also runs hosted, with no install at all, through Apify's MCP endpoint.
Features
- Enter a niche and get the brands that paid for a placement in the last 90 days, or the window you set.
- Reads six public sources: YouTube descriptions, podcast show notes, newsletter issues, event sponsor pages, partnership job posts, and creator program pages.
- One row per sighting with its evidence link and date, and one row per brand with a recency score.
- Pay per event: Brand row at $0.02.
- Pay per event: Sighting row at $0.005.
Input
nichestringoptionalThe audience niche, for example "health and fitness", "beauty and skincare", or "food and beverage". Searches for channels, shows, and newsletters use it, and every row carries it. These three niches also start from a list of sources Mamba Labs has read before (turn off with use_niche_presets).
audience_keywordsstringoptionalOptional. More search terms for the audience, one per line or separated by commas, for example "strength training". Each one widens the podcast, newsletter, and (with your key) YouTube channel search. Up to 20. A text field, so a Clay column maps straight in.
window_daysstringoptionalOnly sightings from the last N days. Whole number, default 90, at most 365. Sent as text so Clay works.
sourcesstringoptionalOptional. Which sources to run, separated by commas, any of: youtube, podcast, event, newsletter, job_post, program. Empty runs all of them. job_post and program check the brands the other sources found.
seed_sourcesstringoptionalOptional. YouTube channel URLs or @handles, podcast RSS feed URLs, or newsletter URLs to read first, one per line or separated by commas. Each is read even beyond the per source limits.
event_calendarstringoptionalOptional. Events whose sponsor or partner page to read, as a JSON list of objects: [{"name": "...", "url": "sponsor page URL", "date": "YYYY-MM-DD", "city": "...", "audience": "...", "size": "..."}], or one sponsor page URL per line. url is needed; the rest is optional. A dated event inside the window gives dated rows; an undated or upcoming event gives undated rows.
youtube_api_keystringoptionalOptional, your own key from Google Cloud (free quota). With it the actor searches YouTube for channels in the niche and reads up to 50 uploads per channel; channel search uses 100 of your daily quota units per search term. Without it the actor reads each channel's public feed (15 newest uploads) and only the channels it already knows. Sent only to googleapis.com, never logged or written to a row.
use_niche_presetsstringoptionaltrue or false, default true. For health and fitness, beauty and skincare, and food and beverage, also read the channels, shows, newsletters, and event pages Mamba Labs has read before.
include_brandsstringoptionaltrue or false, default true. One row per brand domain with sighting count, last seen date, sources, creators or events, contact, and recency score.
include_sightingsstringoptionaltrue or false, default true. One row per sighting with its evidence link, date, promo code, placement type, and pitch angle.
max_channelsstringoptionalYouTube channels read per run. Whole number, default 20, at most 100. Sent as text so Clay works.
max_videos_per_channelstringoptionalNewest uploads read per channel (the public feed holds 15). Whole number, default 15, at most 50. Sent as text so Clay works.
max_podcastsstringoptionalPodcast shows read per run. Whole number, default 15, at most 100. Sent as text so Clay works.
max_episodes_per_podcaststringoptionalNewest episodes read per show. Whole number, default 8, at most 30. Sent as text so Clay works.
max_newslettersstringoptionalNewsletters read per run. Whole number, default 8, at most 50. Sent as text so Clay works.
max_issues_per_newsletterstringoptionalNewest issues read per newsletter. Whole number, default 8, at most 30. Sent as text so Clay works.
max_brands_to_checkstringoptionalBrands, most sighted first, whose job boards and program pages are checked. Whole number, default 25, at most 200. Sent as text so Clay works.
max_charge_usdstringoptionalOptional. The run stops before it would charge more than this.
Output schema
{
"row_type": "string",
"input_key": "string",
"niche": "string",
"brand": "string",
"brand_domain": "string",
"source": "string",
"creator_or_event": "string",
"sighting_date": "string",
"undated": "boolean",
"evidence_link": "string",
"promo_code": "string",
"placement_type": "string",
"price_or_rate": "string",
"contact": "string",
"notes": "string",
"pitch_angle": "string",
"domain": "string",
"name": "string",
"niches": "array",
"sighting_count": "integer",
"last_seen_date": "string",
"sources": "array",
"creators_sponsored": "array",
"recency_score": "integer",
"contact_name": "string",
"contact_title": "string",
"contact_email": "string",
"contact_program_page": "string",
"source_tag": "string",
"row_status": "string",
"error_reason": "string",
"billable_events_json": "string",
"scraped_at": "string"
}Pricing
| Event | Free plan price |
|---|---|
| Brand row | $0.02 |
| Sighting row | $0.005 |
| Actor Start | $0.002 |
Pay per event on the Apify platform. Paid Apify plans pay less per event. No subscription, no seat license.
On the Apify free plan the actor stops at $1.50 of charges a month, about 300 sighting rows. Any paid Apify plan removes the cap.
Limits
- YouTube without a key reads 15 uploads per channel, the size of a channel's public feed. Daily channels may have older in-window videos that are not read.
- Event logos drawn in JavaScript are not read. The row for that event says the section had no links.
- Program pages and undated events have no date. Those rows carry undated: true and do not count toward the recency score.
- Paywalled newsletter posts show only their free preview, where most sponsor slots sit.
- A named partnership contact is rare on public pages. contact_email is filled only from a role address (partnerships@, creators@, affiliates@, pr@) on the brand's own program page.
- Prices or rates are not published by brands, so price_or_rate is normally null.