用途
这是 Content Engine 流程的第 3 步(03 · 研究)。它不凭空编造选题,而是按指定时间范围从来源拉取原始素材,经过门槛筛选、去重,然后把选题写入 Idea Pool(点子池)。后续由 content-weekly-plan 从池中挑选内容。
输入参数
入参为 $ARGUMENTS:客户(默认是唯一活跃客户),可选 --source(默认 all),可选 --since(默认 7d)。采用结构化输入/输出,以便 n8n 能通过 SDK 调用该步骤。
第 0 步 · 配置(来自 Notion,而非代码仓库)
读取客户的 research-config(位于 Content Engine 中心页下的子页面「🔎 {Client} · Research Sources」;若不存在则用默认值创建并标记 [假设],并请用户修改):
- 创作者观察名单(来源 C):客户话题集群内的 15–25 个 profile(同侪 + 来自策略第 2 节的行业思想领袖)。不是泛泛的爆款,只限本领域。
- Fathom 范围(来源 A):要挖掘哪些类型的通话(默认:client / discovery / sales / mentoring)+ 匿名化规则(做概括、不出现客户姓名,类似策略中的「无 NDA」)。
- TikTok 种子(来源 E):商业销售-创始人领域的 hashtag / 创作者(来自 Viktor 的 Make 场景)。
- Reddit 子版块(来源 F):ICP 世界的 subreddit 列表(来自 Viktor 的 Make 场景)。
- 来源开关:本客户当前启用六类来源中的哪些。
来源(按优先级,对 Viktor 而言通话 > 抓取)
A · 通话(Fathom)——信号最强
通过 Fathom MCP:list_meetings(按 --since)→ 按 scope 过滤 → get_meeting_transcript / get_meeting_summary。提取:
- 创始人反复提出的问题 → P1(方法论)类主题和 lead-magnet 点子;
- 异议 / 错误认知 → P2(反差型)主题;
- ICP 的原话(痛点、目标、恐惧)→ 用于钩子和 JTBD 验证的素材;
- 对话(「我:…… / 他:……」)→ 可直接用的 story-wrapped 素材(Viktor 的顶级模式)。
每条洞察 → Source = call-insight,Notes 中写概括后的上下文(匿名),Source link 写 Fathom URL(内部使用,不用于发布)。
B · 自身工作流——build-in-public + hands-on
相当于独立开发者的「内部 Slack」。来源包括:每日日志、新的 Notion 工作、Claude 会话(如构建本 engine 的过程)、财务模型、GTM 交付物(匿名)。提取「我此刻正在构建/做什么」→ P3(AI/Claude)和 P4(personal)类主题。Source = own-thought。
⚠️ 只有通过 Personal 测试(见 content-weekly-plan 第 1 步)的主题才打 P4 Personal 标签:以第一人称写的具体工作案例(价格、工作坊、指标、工具)属于 P1/P3,不是 Personal。
C · 集群内 LinkedIn 爆款(Apify,无 cookie——账户零风险)
两种模式,两者都不需要 cookie/登录(作者账号无风险;不需要 li_at,li_at 留给追踪工具 / content-engage):
- C1 · 按创作者(观察名单):对观察名单中的每个 profile 使用 apimaestro/linkedin-profile-posts → 找出相对该创作者中位数 5 倍以上的爆款。(即抓取过 van der Blom 50 条帖子的同一 actor,100% success)。若已安装专门搜索爆款帖的 skill,也可通过它完成。
- C2 · 按主题(keyword/hashtag 搜索):apimaestro/linkedin-posts-search-scraper-no-cookies(keyword)或 harvestapi/linkedin-post-search(更便宜,约 $0.002/帖,过滤更多:author industry / keywords / mentions)→ 全 LinkedIn 范围内该主题的爆款帖,甚至包括观察名单之外的人。务必过滤到集群内(按 author job title / industry / keywords),否则会变成泛泛爆款。
⚠️ Interest Graph:应是客户话题集群内的爆款,而非泛泛爆款。只有当客户在该主题上有能力证据时,爆款才作为点子入池(否则只作为相邻卡片的 Notes 中的格式/角度参考,不单独成条)。Source = research-outlier,Source link = 原文 URL。
D · 评论
自己的帖子(Posts DB,待追踪工具可用后)+ 观察名单帖子下的评论(Apify)。提取评论中反复出现的问题/痛点 → P1/P2 类主题。Source = comment-mining。
E · TikTok 趋势(Apify)——格式/钩子模式,「像艺术家一样偷师」
作为 Viktor 的 Make 场景存在(TikTok→Telegram)。此处为原生实现:用 Apify TikTok scraper 按配置中的种子(商业销售-创始人领域的 hashtag / 创作者)抓取 → 找爆款短视频。取钩子模式和格式,不取主题(TikTok 爆款 ≠ 面向代理机构的 GTM)。必须步骤是重新框定到 ICP:把短视频钩子模式 → 转译为代理机构的业务开发问题。Source = tiktok-trend,Source link = URL。更接近 C(参考),而非痛点——通常作为卡片的 Notes 中的「呈现角度」。
F · Reddit 痛点(Apify)——ICP 世界的真实问题
作为 Viktor 的 Make 场景存在(Reddit→Telegram)。原生实现:用 Apify Reddit scraper 按配置中的 subreddit(r/agency、r/sales、r/msp、r/Entrepreneur、r/startups 等)抓取 → 找创始人/销售抱怨 pipeline、招聘、定位的帖子。这是通话(A)的公开对照:ICP 世界原话中的痛点与问题 → P1/P2 类主题。必须重新框定到自己的 ICP(泛泛的 Reddit 痛点 ≠ 没有自身证据/角度的帖子)。Source = reddit-pain,Source link = 帖子 URL。
📌 Viktor 已有 TikTok/Reddit 的 Make 场景(Haiku→Telegram「LinkedIn Drafts」)。本 skill 是它们的「大脑」:同样的来源,但经过门槛/去重/标签/能力证据 + Viktor 的 voice,进入 Idea Pool(而非 Telegram 里的原始草稿)。Make 保留为可选触发器(神经系统)——日后迁移到 n8n。
处理流水线(对每个候选)
- 三项门槛(methodology.md §2.1):钩子 > 点子 · 有能力证据(或备用策略 §2.3:research-backed / 「这是我在做的」/ 自己的故事)· 独特供给。全部不通过则丢弃,不写。
- 与 Idea Pool 去重:语义对比已有条目(Name + Hook draft + Notes)。近似重复则跳过,或用新角度丰富已有卡片(不要新增条目)。
- 复用暂停:若主题与 Last used 在 1–3 个月内的卡片重叠,则跳过。
- 打标签:Pillar(4 选 1)· Funnel · Format(建议,非固定)· 按 hook-bank.md 写的 Hook draft · Competence proof · Source · Source link。
- 打分 0–100(同 hook-bank 的 scoring):viral lever × 具体性 × 与 voice 的契合度 × 信号新鲜度。来自通话/真实痛点的信号 > matrix-expansion。
- 写入:Status = new,存入 Idea Pool(notion-schema.md)。
输出
- 写入 💡 Idea Pool 的新卡片(data_source 来自 notion-schema.md / 项目记忆)。
- 给用户的简短简报:每个来源新增多少、按分数排的 Top 5、被拒绝的及原因。(该简报在步骤被 n8n 封装后可作为 Telegram 投递候选。)
- 向编排器返回结构化 summary(用于 03→04 链路)。
完成定义(Definition of Done)
- 已读取 research-config(或已创建默认值 + 待修改标记)。
- 已按 --since 跑过活跃来源;每个来源要么产出洞察,要么明确「无新内容」。
- 每张新卡片通过能力证据门槛;未创建重复项;已考虑复用暂停。
- Idea Pool 已补充;简报已展示;summary 已返回。
⚠️ 卡片中不得出现真实客户姓名(通话/交付物匿名化)。