Signal recipe · Content
A content signal: 299 transcripts from 6 B2B sales channels for $0.90, and which tools and topics they talk about
The hosts and guests of a niche's YouTube channels name tools, rivals and problems out loud, hour after hour. Their captions turn that into something you can count. Here is how we did it for six B2B sales channels, for 90 cents.
The channels a market watches are where its opinions form. Sales leaders tell each other which tools they kept and which they ripped out, founders explain their pricing, trainers decide what next year's sales calls will sound like. Almost none of it is written down. It is spoken, in hour-long episodes, and YouTube keeps a caption track for nearly every one.
If you market a sales tool, plan content for a B2B audience, buy sponsorships, or want to know what your buyers are hearing, that is the signal you want: in the channels your market watches, which companies get named, next to whom, and which topics each channel keeps coming back to.
We built it for six YouTube channels about B2B sales on 15 October 2026 with our youtube-transcripts Actor on Apify. It reads the captions a logged-out viewer can see, with the video's title, date, length and views, and splits each transcript into chunks with start times. Every number below is from that run. The transcripts are the creators' work, so this post publishes counts and a few short quotes with links, not the text.
The signal, written as an input
The six channels: 30 Minutes to President's Club (a sales podcast), SaaStr (SaaS founders and go-to-market talks), Sales Gravy (sales training), Pavilion (a community for revenue leaders), Winning by Design (sales methodology) and Close (a CRM vendor's own channel). We checked each handle first with maxVideosPerChannel: 1.
{
"urls": ["@30MPC", "@Saastr", "@salesgravy", "@JoinPavilion", "@WinningByDesign", "@closecrm"],
"maxVideosPerChannel": 50,
"includeShorts": false,
"languages": ["en"],
"includeSegments": false,
"chunkSize": 300,
"chunkOverlap": 40,
"onlyNew": true
}Four notes on the fields:
urlstakes channel handles or links (the newest videos), playlist links, video links or bare video IDs, mixed in one list.includeShorts: falsekeeps a channel's regular videos and leaves out Shorts and past live streams.chunkSizeandchunkOverlapsplit each transcript into pieces of about 300 words, each with its start and end second, the next one repeating the last 40 words. That is the RAG export below, and it is also how a mention gets a timestamp.onlyNewremembers which videos it has returned for this input, so a weekly run reads, and charges for, only new uploads.
What came back
- 299 transcripts from 300 videos in 70 seconds, for $0.90. One Winning by Design video had no captions at all; it came back as a free row saying so. At $3 per 1,000 transcripts plus a $0.00005 start fee, that is the price on the free or Starter plan.
- 153 hours of video and 1.79 million words. 295 of the 299 transcripts are YouTube's automatic captions; 4 had captions written by the channel.
- 6,968 chunks of about 300 words, each with a start time and a link that opens the video there.
- LinkedIn came up in 142 of the 299 videos, Salesforce in 89, Claude or Anthropic in 68, and ChatGPT or OpenAI in 67. Among sales tools after Salesforce: HubSpot 45, Gong 33, Clay 31.
- Ad reads change the count. Gong was named in 42 videos, but in 16 of them inside a sponsor's ad on Pavilion. Counted on the conversation only, it is 33.
- A second run with the same input, a minute later, returned no new transcripts and cost $0.00005. That is what the weekly version below relies on.
The 50 newest videos cover very different periods per channel, because channels post at different rates:
| Channel | Videos | Oldest | Newest | Median length | Words |
|---|---|---|---|---|---|
| 30 Minutes to President's Club | 50 | 2025-12-23 | 2026-10-13 | 27 min | 296,452 |
| SaaStr | 50 | 2025-12-24 | 2026-10-09 | 46 min | 487,788 |
| Sales Gravy | 50 | 2026-06-22 | 2026-10-14 | 11 min | 153,565 |
| Pavilion | 50 | 2025-07-15 | 2026-10-01 | 55 min | 457,490 |
| Winning by Design | 49 | 2024-05-23 | 2026-09-29 | 39 min | 276,878 |
| Close | 50 | 2025-06-10 | 2026-10-13 | 6 min | 113,334 |
Which tools and companies come up
We counted names with plain text matching on the captions, case included: YouTube's captions capitalise names, so Clay finds the company and not the word clay. A few names come out of the captions misspelled, so we added the spellings we found ("Salesoft" for Salesloft, "Raplit" for Replit, "chat GPT"). Names that are also ordinary words or first names too often (Close, Instantly, Harvey) are left out. A video counts once per name however often it is said.
| Name | Videos (of 299) | Mentions | Channels | Also in ad reads |
|---|---|---|---|---|
| 142 | 543 | 6 | 0 | |
| Salesforce | 89 | 902 | 6 | 8 |
| 83 | 224 | 6 | 0 | |
| Slack | 72 | 244 | 6 | 11 |
| Claude / Anthropic | 68 | 548 | 5 | 0 |
| ChatGPT / OpenAI | 67 | 227 | 6 | 0 |
| HubSpot | 45 | 177 | 6 | 0 |
| Zoom | 45 | 95 | 6 | 0 |
| Shopify | 35 | 79 | 4 | 0 |
| Gong | 33 | 96 | 6 | 16 |
| Gemini | 32 | 63 | 4 | 0 |
| Clay | 31 | 267 | 5 | 0 |
| Replit | 31 | 319 | 2 | 0 |
| Microsoft | 26 | 51 | 5 | 0 |
| Lovable | 20 | 74 | 3 | 0 |
| ZoomInfo | 14 | 36 | 5 | 0 |
| Intercom | 14 | 53 | 3 | 0 |
| Cursor | 12 | 22 | 4 | 6 |
| Outreach | 11 | 22 | 4 | 0 |
| Salesloft | 11 | 17 | 2 | 0 |
| Apollo | 7 | 16 | 3 | 0 |
Videos and mentions are counted on the conversation, with intros, outros and ad reads taken out (next section). The last column is how many videos name it inside one of those. All 30 names and the per-channel counts are in tool-mentions.csv.
Mentions per video tell you something the video count doesn't. Replit is named 319 times, but in only 31 videos on two channels: SaaStr talks at length about building its own apps with it. Clay is named 267 times in 31 videos, about nine mentions a video, which is what a tool people walk through on screen looks like. Zoom, with 95 mentions in 45 videos, is mostly the meeting tool named in passing.
Ad reads change the count
Podcasts read the same sponsor message in every episode for weeks. To keep those from counting as conversation, we set aside any run of 12 words that appears word for word in three or more videos of the same channel. That took out 20,860 words, mostly SaaStr's and Pavilion's sponsor reads and intros, and none of Winning by Design's.
It matters for exactly the names a sales-tool marketer cares about. On Pavilion, Gong was named inside two different sponsors' ads in 16 episodes: from November to December 2025 an ad for a customer-evidence platform listed it among its customers, and from January to April 2026 an ad for a rival call-analysis tool quoted one of its customers: "we ripped out Gong and went all in on Momentum". Ramp, listed as a customer in two sponsors' ads, drops from 19 videos to 6 once ads are taken out, and Slack from 76 to 72.
That is a signal of its own. Which channels your competitors sponsor, and whether their ads name you, is one search across the repeated passages.
Which channel owns which topic
Topics are phrase lists, matched ignoring case; a video counts for a topic when its phrases come up at least three times, so one passing mention doesn't count.
| Topic | Videos (of 299) | Channel where it comes up most |
|---|---|---|
| Pipeline and forecasting | 81 | Sales Gravy (19) |
| AI agents | 77 | SaaStr (44) |
| Hiring and ramping reps | 74 | Pavilion (25) |
| LinkedIn prospecting | 63 | 30 Minutes to President's Club (20) |
| Churn, retention and expansion | 56 | Winning by Design (27) |
| Cold calling | 44 | 30 Minutes to President's Club (22) |
| Pricing | 39 | SaaStr (14) |
| Discovery | 34 | 30 Minutes to President's Club (18) |
| Quota and compensation | 25 | Pavilion (11) |
| Objection handling | 22 | 30 Minutes to President's Club (12) |
| Fundraising and valuations | 20 | Pavilion (10) |
| Product-led growth | 18 | Winning by Design (10) |
| Cold email | 14 | 30 Minutes to President's Club (11) |
Phrase lists are in recipe-4-analysis.py and per-channel counts in topic-mentions.csv. "AI agents" includes the word "agents", which in this niche almost always means software.
Each channel has a clear lane. 30 Minutes to President's Club is the prospecting channel: cold calling, discovery, objections and cold email all peak there. SaaStr talks about AI agents in 44 of its 50 videos. Pavilion is about running a revenue team: hiring, compensation, fundraising. Winning by Design is about what happens after the sale, with retention and expansion in 27 of its 49 videos. If you plan content or sponsorships, that table says where a topic already has an audience and where it has none.
Head to head, by channel
The same counts, split by channel, for the pairs people ask about:
| Channel | Claude / Anthropic | ChatGPT / OpenAI | Salesforce | HubSpot | Gong | Clay |
|---|---|---|---|---|---|---|
| 30 Minutes to President's Club | 4 | 2 | 4 | 3 | 13 | 2 |
| SaaStr | 37 | 29 | 40 | 19 | 4 | 15 |
| Sales Gravy | 0 | 2 | 3 | 1 | 1 | 0 |
| Pavilion | 15 | 20 | 24 | 10 | 10 | 10 |
| Winning by Design | 8 | 12 | 15 | 8 | 4 | 3 |
| Close | 4 | 2 | 3 | 4 | 1 | 1 |
Videos per channel that name each one, ad reads excluded.
Gong is a 30 Minutes to President's Club name (13 of its 50 videos); Clay is a SaaStr name (15). Claude leads ChatGPT on SaaStr, ChatGPT leads on Pavilion and Winning by Design. Sales Gravy, a sales-training channel, barely names software at all.
What people actually say
Counts tell you where to look; the chunk timestamps take you to the moment. Four examples, each a few words long, each linked to the point in the video:
- On SaaStr, about which data tool its own sales agents prefer: "They slightly prefer Clay." (from We Doubled Revenue with Agents. Here's Exactly How., 18 September 2026)
- On SaaStr, about software vendors that charge extra when an agent uses their product: "Salesforce is just rolling it out." (from Agent Pricing is Chaos, 2 October 2026)
- On Winning by Design, against the idea that phone prospecting is over: "I don't think cold calling is dead. I love cold calling." (5 June 2026)
- On Pavilion, inside a sponsor's ad: "we ripped out Gong and went all in on Momentum" (29 April 2026)
The links open at the start of the 300-word chunk that holds the quote, so the line itself is within the next two minutes.
The RAG-ready export
The same run gives you a search index over everything these channels said. Each chunk becomes one line of JSON, ready for any embedding model and vector store:
{"id": "4o8FJRULLi4-0", "videoId": "4o8FJRULLi4", "channel": "30 Minutes to President's Club", "title": "How I Use LinkedIn Sales Navigator to Find Warm Leads (Crash Course)", "publishedAt": "2026-10-13", "start": 0, "end": 85.4, "url": "https://www.youtube.com/watch?v=4o8FJRULLi4&t=0s", "text": "So, we're going to talk about search filters. How do you save them? ..."}Our 299 videos made 6,968 chunks and about 2.05 million words with the overlap. The url field opens the video at the chunk's start, so an answer built from a chunk can cite the exact moment. The analysis script writes this file (chunks.jsonl) from the Actor's output in a few lines; we don't publish ours, because the text belongs to the channels.
For internal research that is a good use of captions: ask "what do revenue leaders say about replacing call-recording tools?" and get answers with links to the moments they said it. Republishing the transcripts is not.
If you work from Claude Code or another MCP client
With the Apify MCP server connected, this prompt builds the same counts for your own niche and keeps the chunks for questions later:
Use the Apify Actor locaihost/youtube-transcripts on these channels: [your 5 to 10 channel handles].
maxVideosPerChannel 50, includeShorts false, languages ["en"], includeSegments false, chunkSize 300,
chunkOverlap 40. The price is $3 per 1,000 transcripts; tell me how many videos you expect first.
Save every chunk to chunks.jsonl with videoId, channel, title, publishedAt, start, end, a url with
&t=<start>s, and the text. Then, for these names: [your company and competitors], count how many
videos per channel mention each one, matching case. Before counting, remove any 12-word passage
that appears in three or more videos of the same channel (ad reads and intros) and tell me which
names were in those passages. Quote nothing longer than one sentence.After that, questions like "which videos compare us with [competitor], and what did they say?" are answered from chunks.jsonl with timestamped links.
The weekly version: new mentions, in Slack
The useful form of this signal is a message every Monday listing each new video, from the channels you follow, that names your company or a competitor, with links that open the video at each mention.
We use an n8n workflow with five nodes for it:
- Schedule Trigger, every Monday at 08:00.
- Channels and terms (a Set node): channel handles, one per line, and the names to watch, one per line.
- Apify, Run actor and get dataset: runs youtube-transcripts with
onlyNew: true, 120-word chunks for finer timestamps, and a $1 cap on the run. - Code: finds each term in each new video's chunks, case included, and builds one message: the video, how often each term came up, up to three timestamped links, and a dozen words around the first mention. A week with no mentions sends nothing.
- Slack: posts it to the channel you pick.
Download content-signal-to-slack.json. It comes with this post's six channels and six sales tools as terms; replace them with yours.
Setup takes about five minutes:
- In n8n, open Workflows > Import from file and pick the JSON.
- The workflow uses the verified Apify node (
@apify/n8n-nodes-apify). n8n Cloud installs it from the canvas; on self-hosted n8n, add it under Settings > Community nodes. - In the Apify node, create an Apify API credential with your token from the Apify console (Settings > API & Integrations).
- In Post to Slack, pick your Slack credential and the channel.
- Edit Channels and terms, and run it once by hand. The first run reads up to 10 videos per channel; from the next Monday you only get new uploads.
What it costs: the first run over these six channels reads 60 videos ($0.18). After that, they upload about seven regular videos a week between them, so a weekly run is about 2 cents. On Apify's free plan a run reads up to 200 videos; any paid plan removes the cap.
Read the counts once
- Captions mishear names. 295 of the 299 transcripts are automatic captions. "Replit" also came out as "Rapid" and "Replet", and the second is counted but the first is not. Check a sample of matches for every name you count, and add the misspellings you find.
- Case matters both ways. Matching
Claywith a capital keeps out the word clay, but it also misses the few places the captions wrote a name in lower case. - The windows differ. The 50 newest videos are four months of Sales Gravy and more than two years of Winning by Design. Compare channels on shares, not totals, and don't read a trend across them.
- A mention is not an opinion. "We ripped out Gong" and "we love Gong" count the same. The timestamped links are there so you read the context before you quote anyone.
More ways to use the content signal
- Product marketing. Put your company and three rivals in the terms. Over a quarter you see which channels mention you, next to whom, and whether the mentions are in conversation or in someone's ad.
- Sponsorship buying. The topic table shows which channel already owns your topic. The repeated passages show who else sponsors it, and for how long.
- Content planning. A topic that your buyers' favourite channels cover in half their videos is crowded; one they never cover is open.
- Sales enablement. A searchable library of how practitioners handle an objection, with links to the minute, is a better training resource than another slide.
- Other niches. Nothing here is about sales except the channel list and the names. Developer tools, marketing, finance, design: swap the handles and the terms.
Notes
- The sample. Six YouTube channels about B2B sales and SaaS go-to-market, picked by us, and the newest 50 regular videos of each (49 with captions at Winning by Design). It is not a sample of all sales content.
- The runs. Run
jdvjhDvCxYLvyhM7Yon 15 October 2026 at 04:59 UTC, 69.5 seconds, 299 transcripts charged. Then runSD5gX8d64xTSuGidXwith the same input, which skipped all 299 as already returned and charged nothing but the start fee. - Matching is evidence you can check. Every count comes from a regular expression in the analysis script, run on the captions. There is no model and no sentiment scoring.
- Copyright. The transcripts belong to the channels. This post publishes counts, video metadata (title, date, length, views) and four short quotes with links; the chunk text stays in our own files.
- Reproduce it. The channel list, the run script and the analysis script are next to this post, with the computed results and a list of the 299 videos with the names and topics found in each.
If you run this on your own niche, post two numbers in the comments: how many channels you followed, and how many of your competitors' mentions turned out to be in ads. That tells the next reader how much to trust a raw count.
Source: the public captions of 299 YouTube videos from six channels, read by locaihost data on 15 October 2026.