enrich-and-pitch
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseEnrich-and-Pitch — B2B Outbound Research & Generation (Казахстан)
Enrich-and-Pitch — B2B outbound调研与内容生成服务(哈萨克斯坦)
End-to-end пайплайн для персонализированного outbound: от названия компании до готовых opening сообщений под конкретных ЛПР с публично подтверждаемым контекстом.
Архитектура отчёта — две вкладки в одном HTML:
- Аналитика — всё что мы знаем. Порядок: Главное → Профиль → Hiring → ЛПР (раскрывающиеся карточки с вложенным контекстом) → Шаг 2 (market) → Шаг 3 (LinkedIn) → Шаг 4 (social) → Источники в конце. Черновика письма на Аналитике НЕТ — это только Коммуникация.
- Коммуникация — как мы пишем. Ровно одна для главного primary ЛПР (top-1, см. ниже как выбрать). Внутри неё
.comm-cardс 4 полными версиями письма (v1 база, v2 +рынок, v3 +LinkedIn, v4 +соцсети). В v2/v3/v4 добавки относительно предыдущей версии обёрнуты в.message-versions— это даёт визуальный diff. Никаких отдельных hook-блоков сверху. Письма для других ЛПР НЕ генерируем автоматически — сейл пишет им по тому же шаблону, если нужно.<span class="added-v2/v3/v4">…</span>
ЯЗЫК — простой русский, без жаргона:
- ✅ «Заход», «С чего зайти», «Что для него важно», «Где совпадаем» · ❌ «Hook», «Persona-fit», «outreach», «buyer»
- ✅ «Главный», «Второстепенный» · ❌ «Primary», «Secondary», «gatekeeper»
- ✅ «Текущая / Предыдущая версия», «База (бесплатно)», «+ Рынок», «+ LinkedIn», «+ Соцсети» · ❌ «Current / Previous», «Free baseline», «+ Market», «+ Social»
- ✅ «Свежие события», «Активность по найму», «Кто принимает решение» · ❌ «Recent events», «Hiring intelligence», «ЛПР»
- ✅ «Бесплатные источники», «Платные источники», «через Apify» · ❌ «free стек», «paid», «paid stack»
- ✅ «AI-агенты», «инструменты для отдела продаж», «оценка лидов» · ❌ «agentic AI», «sales tools», «lead scoring»
- Прямые цитаты людей оставляем на оригинальном языке (если их LinkedIn на английском) + переводим в скобках для контекста
Цель: продавец-неангличанин читает отчёт без напряга. Жаргон скрывает выводы.
КЛЮЧЕВОЙ ПРИНЦИП Analytics tab — выводы, не данные:
Сейл за 10 секунд должен понять что ВАЖНО, а не получить data dump. Каждая секция отвечает на вопрос «что я с этим делаю».
| Что | Как делать ✅ | Как НЕ делать ❌ |
|---|---|---|
| Каждая секция | 1 заголовок + 2-4 строки выводов | Fact-grid с 8-10 rows |
| Длинные данные | <details> collapsed по умолчанию | Всё всегда видно |
| Профиль компании | 3 строки (сектор + recent + клиенты) | Полный grid юр.данных на виду |
| Hiring | 3-5 буллетов выводов + collapsed список вакансий | Раскладка по 13 позициям |
| Market | 3 буллета напряжений + collapsed конкуренты | Sector definition + 5+ конкурентов + 7 dynamics |
| 1 ключевая цитата + 3-4 факта + collapsed full | 8 fact-rows headline/about/edu/awards/skills | |
| Полные досье | Внутри collapsed | Всегда видимый раздел |
| Источники | Внутри collapsed | Длинный список на виду |
Принцип: «что брать в outreach» > «что мы нашли».
4-шаговая ladder эволюции письма:
| Шаг | Что добавляем | Free/Paid | Версия письма |
|---|---|---|---|
| 1 | Company + ЛПР + Hiring (free) | Free | v1 (полное письмо — база) |
| 2 | Market context (free, через Claude) | Free | v2 (v1 + market-добавки в |
| 3 | LinkedIn deep dive (Apify) | Paid | v3 (v2 + LinkedIn-добавки в |
| 4 | Social signals FB/IG/TikTok (Apify) | Paid | v4 (v3 + social-добавки в |
Каждый шаг → regenerate полное письмо → новая версия в на вкладке Коммуникация. Latest становится , предыдущие — (dimmed). Добавленные с предыдущего шага фрагменты обёрнуты в чтобы был визуально виден diff. Hook больше не отдельная сущность — он часть письма.
.message-versions.current.previous<span class="added-v{N}">…</span>端到端个性化outbound流程:从企业名称到为特定ЛПR生成带有公开可验证背景的开篇消息。
报告架构——单个HTML文件包含两个标签页:
- 分析页 — 我们掌握的所有信息。顺序:核心内容 → 企业概况 → 招聘动态 → ЛПР(带内嵌背景的可展开卡片) → 第二步(市场) → 第三步(LinkedIn) → 第四步(社交平台) → 末尾的数据源。分析页不包含邮件草稿 — 仅展示沟通内容。
- 沟通页 — 邮件撰写规范。仅为核心主ЛПР(top-1,选择规则见下文)生成一个。卡片内包含
.comm-card,提供4个完整邮件版本(v1基础版、v2 +市场信息、v3 +LinkedIn信息、v4 +社交平台信息)。v2/v3/v4中相对上一版本新增的内容会被包裹在.message-versions标签中,便于直观对比差异。顶部无单独的hook模块。不会自动为其他ЛПР生成邮件——销售可根据同一模板自行撰写(如有需要)。<span class="added-v2/v3/v4">…</span>
语言规范——使用简洁俄语,无行业黑话:
- ✅ «切入点»、«从何处切入»、«他关注什么»、«我们的契合点» · ❌ «Hook»、«Persona-fit»、«outreach»、«buyer»
- ✅ «核心»、«次要» · ❌ «Primary»、«Secondary»、«gatekeeper»
- ✅ «当前版本/上一版本»、«基础版(免费)»、«+市场信息»、«+ LinkedIn信息»、«+社交平台信息» · ❌ «Current / Previous»、«Free baseline»、«+ Market»、«+ Social»
- ✅ «近期动态»、«招聘活动»、«决策人» · ❌ «Recent events»、«Hiring intelligence»、«ЛПР»
- ✅ «免费数据源»、«付费数据源»、«通过Apify» · ❌ «free стек»、«paid»、«paid stack»
- ✅ «AI-агенты»、«销售部门工具»、«线索评分» · ❌ «agentic AI»、«sales tools»、«lead scoring»
- 人物直接引语保留原文(若LinkedIn内容为英文)+ 括号内添加俄语翻译以便理解上下文
目标:让非英语母语的销售能够轻松阅读报告,避免黑话掩盖核心结论。
分析页核心原则——输出结论,而非原始数据:
销售应在10秒内了解关键信息,而非接收数据堆砌。每个板块需回答“我该如何利用这些信息”。
| 内容 | 正确做法 ✅ | 错误做法 ❌ |
|---|---|---|
| 每个板块 | 1个标题 + 2-4行结论 | 包含8-10行的事实表格 |
| 长文本数据 | 默认折叠的 | 始终展示全部内容 |
| 企业概况 | 3行内容(行业 + 近期动态 + 客户) | 展示完整的法人信息表格 |
| 招聘动态 | 3-5条结论要点 + 折叠的职位列表 | 罗列13个职位详情 |
| 市场信息 | 3条行业痛点要点 + 折叠的竞争对手列表 | 行业定义 + 5+竞争对手 +7条市场动态 |
| LinkedIn信息 | 1条核心引语 +3-4个事实 + 折叠的完整内容 | 8行事实列表(标题/简介/教育/奖项/技能) |
| 完整档案 | 放在折叠的 | 始终展示的独立板块 |
| 数据源 | 放在折叠的 | 展示冗长的可见列表 |
原则:“可用于outreach的信息” > “我们找到的信息”。
邮件版本迭代的4步阶梯:
| 步骤 | 新增内容 | 免费/付费 | 邮件版本 |
|---|---|---|---|
| 1 | 企业信息 + ЛПР + 招聘动态(免费) | 免费 | v1(完整基础版邮件) |
| 2 | 市场背景信息(免费,通过Claude获取) | 免费 | v2(v1 + 新增的市场内容,包裹在 |
| 3 | LinkedIn深度调研(Apify) | 付费 | v3(v2 + 新增的LinkedIn内容,包裹在 |
| 4 | FB/IG/TikTok社交信号(Apify) | 付费 | v4(v3 + 新增的社交平台内容,包裹在 |
每一步都会重新生成完整邮件 → 在沟通页的中新增版本。最新版本标记为,旧版本标记为(灰度显示)。相对上一版本新增的片段会被包裹在标签中,便于直观对比差异。Hook不再是独立模块 — 它是邮件的一部分。
.message-versions.current.previous<span class="added-v{N}">…</span>Когда использовать
使用场景
Пользователь просит:
- Исследовать компанию и подготовить outbound коммуникацию
- Сделать «контекст-360» по компании / ЛПР
- Найти decision-makers в компании и написать первое сообщение
- Подготовиться к холодному звонку / письму в KZ B2B
当用户提出以下需求时:
- 调研企业并准备outreach沟通内容
- 为企业/ЛПР生成“360度背景信息”
- 找到企业决策人并撰写首封邮件
- 为哈萨克斯坦B2B冷呼叫/邮件做准备
Входные данные
输入数据
Обязательно:
- Компания — название (например, «Globalink Logistics») или БИН (например, 110842011929)
- Наш оффер — 1-2 предложения о том, что продаём (например: «AI-инструменты для отдела продаж: лидген, скоринг входящих, аналитика звонков»)
Опционально:
3. Target роль — Buyer / Champion / User / Decision Maker если известно
4. Сигналы для использования — recent hiring, funding, expansion, события
Если каких-то обязательных входов не хватает — спроси у пользователя ДО старта.
必填项:
- 企业 — 名称(例如:«Globalink Logistics»)或БИН(例如:110842011929)
- 我方产品/服务 — 1-2条销售主张(例如:«AI销售部门工具:线索生成、 inbound线索评分、通话分析»)
可选项:
3. 目标角色 — 若已知,可指定Buyer / Champion / User / Decision Maker
4. 需关注的信号 — 近期招聘、融资、扩张、事件
若缺少必填项,需在启动前向用户确认补充。
Workflow — 4 стейджа
工作流程——4个阶段
Stage 1: Company Discovery
阶段1:企业信息挖掘
Цель: факт-чекнутый профиль компании.
目标: 经过事实核查的企业概况。
Stage 1.0 — ПОДТВЕРЖДЕНИЕ КОМПАНИИ (обязательный gate перед research)
阶段1.0 — 企业确认(调研前的必经环节)
Прежде чем тратить время на full research — найди кандидата и подтверди с пользователем. Это занимает 10 сек и страхует от прогона на не той компании (особенно частая ситуация с холдингами, где у одного бренда 3-5 юр.лиц).
Алгоритм:
-
Первичный поиск через WebSearch:
"<input>" Казахстан БИН- — это даёт самый надёжный hit
site:adata.kz "<input>"
-
Найди 1-3 кандидатов (юр.лиц с похожим названием). Например, для «Globalink» в Казахстане их 3:
- ТОО «Глобалинк» Транспортэйшн энд Лоджистикс Ворлдвайд (БИН 991140002859, операционная)
- Представительство Globalink Logistics Group Limited (БИН 110842011929)
- Documentolog Global Limited (для других кейсов)
-
Покажи кандидатов пользователю в чате компактно:
Нашёл кандидатов для «<input>»: 1. ТОО «Глобалинк» Транспортэйшн энд Лоджистикс Ворлдвайд БИН 991140002859 · Алматы · 501-1000 человек · директор Балаев Р.О. Действующая, 26 лет на рынке, грузовой автотранспорт 2. Представительство Globalink Logistics Group Limited БИН 110842011929 · Алматы · 16-20 человек · директор Мансур Сохаил Действующее представительство, 14 лет Какая нужна — 1, 2, обе, или другая? (если другая — уточни название/БИН) -
Ожидай реакции:
- «1» / «вторая» / «обе» → продолжай research на выбранной(ых)
- «другая, вот ссылка/БИН/полное название» → новый поиск с уточнением
- «не та / не нашли» → попроси у пользователя более конкретный идентификатор (БИН, сайт, полное юр. название)
Если найден ТОЛЬКО ОДИН кандидат:
Всё равно подтверди, но коротко:
Нашёл: ТОО Documentolog (БИН 070840007503, Астана, 41-50 человек, директор Аманбекова М.А., разработка ПО). Это та компания? (да/нет)После подтверждения — переходи к stage 1.1 (full research).
在投入时间进行全面调研前,先找到候选企业并与用户确认。此步骤仅需10秒,可避免针对错误企业开展工作(尤其常见于集团企业,同一品牌下可能有3-5个法人实体)。
流程:
-
初步搜索 通过WebSearch:
"<输入内容>" Казахстан БИН- — 此方式最可靠
site:adata.kz "<输入内容>"
-
找到1-3个候选企业(名称相似的法人实体)。例如,哈萨克斯坦的«Globalink»有3个候选:
- ТОО «Глобалинк» Транспортэйшн энд Лоджистикс Ворлдвайд(БИН 991140002859,运营主体)
- Представительство Globalink Logistics Group Limited(БИН 110842011929)
- Documentolog Global Limited(其他场景)
-
在聊天中向用户简洁展示候选企业:
为«<输入内容>»找到以下候选企业: 1. ТОО «Глобалинк» Транспортэйшн энд Лоджистикс Ворлдвайд БИН 991140002859 · 阿拉木图 · 501-1000人 · 总经理 Балаев Р.О. 运营中,成立26年,主营公路货运 2. Представительство Globalink Logistics Group Limited БИН 110842011929 · 阿拉木图 · 16-20人 · 总经理 Мансур Сохаил 运营中,成立14年 需要调研哪一家?(1、2、两家都调研,或其他?若为其他,请补充名称/БИН) -
等待用户回复:
- «1» / «第二家» / «两家都调研» → 针对选中的企业继续调研
- «其他,这是链接/БИН/完整名称» → 根据补充信息重新搜索
- «不是这家/没找到» → 请求用户提供更具体的标识(БИН、官网、完整法人名称)
若仅找到1个候选企业:
仍需确认,但可简化表述:
找到:ТОО Documentolog(БИН 070840007503,阿斯塔纳,41-50人,总经理 Аманбекова М.А.,主营软件开发)。是否为目标企业?(是/否)确认后 — 进入阶段1.1(全面调研)。
Stage 1.1 — Full research (только после подтверждения)
阶段1.1 — 全面调研(仅在确认后执行)
Параллельно выполни:
-
WebSearch — найти БИН и идентификаторы:
"<company>" Казахстан БИН- → получи URL вида
site:adata.kz "<company>"pk.adata.kz/counterparty/main/company/{БИН}/basic-info - Если на вход дали БИН — пропусти этот шаг
-
WebFetch adata.kz на:
https://pk.adata.kz/counterparty/main/company/{БИН}/basic-info- Полное юридическое название
- БИН (верификация)
- Статус (активна / ликвидирована / приостановлена)
- Директор (имя)
- Дата регистрации
- Адрес
- ОКЭД (вид деятельности)
- Размер (по числу сотрудников)
- Регистрирующий орган
-
WebFetch официального сайта (если SSL валидный):
- или
<domain>/about<domain>/o-kompanii - или
<domain>/teamили<domain>/komanda<domain>/leadership - или
<domain>/news<domain>/press - Если WebFetch падает на SSL → fallback:
WebSearch site:<domain> "<keyword>"
-
WebSearch hh.kz для employer_id:
- → найди employer URL вида
site:hh.kz "<company>" вакансииhh.kz/employer/{id}
-
WebFetch ПОЛНЫЙ список вакансий (не employer-страницу):
- URL pattern:
https://almaty.hh.kz/search/vacancy?employer_id={id}&items_on_page=50 - Если редирект — следуй на almaty.hh.kz или astana.hh.kz
- Извлеки список ВСЕХ открытых вакансий: title, локация, диапазон зарплаты, требуемый опыт
- URL pattern:
-
Активность по найму — КОМПАКТНО. 3 блока, никакой воды:A. Stats — 1 строка:
N вакансий · Астана X / Алматы Y · ЗП мин–макс ₸ · ссылка на источникB. Кого нанимают (3-5 буллетов): группировка функций + ⭐ для критичных позиций- Группируй похожие роли в одну строку («Customer Success — 4 роли»)
- Senior leadership / новые функции → отдельный буллет с ⭐
- НЕ перечисляй все 13 вакансий по одной — только агрегированные блоки
C. Где нет людей (2-3 буллета): значимые ОТСУТСТВИЯ- «0 AI/ML вакансий — внутренняя команда укомплектована или outsource»
- «0 системных Sales — продажи ещё не масштабируются»
- «0 Marketing/Brand — bottom-of-funnel не приоритет»
- Каждое отсутствие → одно интерпретирующее предложение
D. Что это значит — 1-2 предложения, добавляет интерпретацию (не дублирует bullets):- Какой моментум: formation новой функции / scaling / replacement?
- Как связан с recent events?
- Пример GOOD: «Скейлят CS на существующей базе + формируют новую международную партнёрскую функцию после интеграции с Контур. Sales infrastructure ещё не построена — окно для встраивания тулсов ДО legacy.»
- Пример BAD: «Активно нанимают, открыты 13 вакансий» (без интерпретации)
- Пример BAD: длинное эссе на абзац (слишком много)
Правила гигиены:- Весь блок Hiring Intelligence помещается на 1/3 экрана без скролла
- Stats — 1 строка
- Кого нанимают — 3-5 буллетов
- Где нет людей — 2-3 буллета
- Что это значит — 1-2 короткие фразы
-
WebSearch news:
"<company>" 2026 OR 2025 новости"<company>" интервью OR пресс-релиз"<company>" "назначен" OR "возглавил" OR "новый руководитель"
-
(Опционально, paid) Еслидоступен:
$GOSZAKUP_TOKEN- REST: + Bearer header → детали + сотрудники
GET https://ows.goszakup.gov.kz/v3/subject/biin/{BIN} - REST: → выигранные госконтракты
GET https://ows.goszakup.gov.kz/v3/contract?supplier_biin={BIN} - REST: → проверка по реестру недобросовестных
GET https://ows.goszakup.gov.kz/v3/rnu/{BIN}
- REST:
Output Stage 1: структурированный профиль компании + hiring intelligence (1 главный инсайт + категоризация ролей + ⭐ звёздные позиции). Каждый факт с источником.
并行执行以下操作:
-
WebSearch — 查找БИН及其他标识:
"<企业名称>" Казахстан БИН- → 获取类似
site:adata.kz "<企业名称>"的URLpk.adata.kz/counterparty/main/company/{БИН}/basic-info - 若输入为БИН,跳过此步骤
-
WebFetch adata.kz 页面:
https://pk.adata.kz/counterparty/main/company/{БИН}/basic-info- 完整法人名称
- БИН(验证)
- 状态(运营中/已注销/已暂停)
- 总经理姓名
- 注册日期
- 地址
- ОКЭД(经营范围)
- 规模(员工数量)
- 注册机构
-
WebFetch官方网站(若SSL有效):
- 或
<域名>/about<域名>/o-kompanii - 或
<域名>/team或<域名>/komanda<域名>/leadership - 或
<域名>/news<域名>/press - 若WebFetch因SSL失败 → 备选方案:
WebSearch site:<域名> "<关键词>"
-
WebSearch hh.kz 获取employer_id:
- → 找到类似
site:hh.kz "<企业名称>" вакансии的雇主URLhh.kz/employer/{id}
-
WebFetch完整职位列表(非雇主页面):
- URL格式:
https://almaty.hh.kz/search/vacancy?employer_id={id}&items_on_page=50 - 若重定向,跳转至almaty.hh.kz或astana.hh.kz
- 提取所有公开职位:标题、地点、薪资范围、所需经验
- URL格式:
-
招聘活动信息——简洁呈现,分3块,无冗余:A. 统计数据——1行:
N个职位 · 阿斯塔纳X个 / 阿拉木图Y个 · 薪资范围 ₸最低–₸最高 · 数据源链接B. 招聘方向(3-5条要点): 按职能分组 + 关键职位标记⭐- 类似职位合并为一行(例如:«客户成功——4个职位»)
- 高级管理岗位/新职能 → 单独标记⭐
- 不要逐一罗列13个职位 → 仅展示分组后的模块
C. 招聘空白(2-3条要点): 重要的职位缺失- «0个AI/ML职位——内部团队已配齐或外包»
- «0个销售体系岗位——销售尚未规模化»
- «0个营销/品牌岗位——漏斗底部转化非优先项»
- 每个空白点需附带解读
D. 解读——1-2句话,添加分析(不重复要点):- 企业处于什么阶段:新职能搭建/规模化/人员替换?
- 与近期事件有何关联?
- 正面示例: «在现有基础上扩大客户成功团队规模 + 与Контур整合后搭建新的国际合作职能。销售基础设施尚未建立——这是在遗留系统上线前嵌入工具的窗口期。»
- 负面示例: «正在积极招聘,开放13个职位»(无解读)
- 负面示例: 冗长的段落(内容过多)
规范要求:- 整个招聘信息板块无需滚动即可占1/3屏幕
- 统计数据——1行
- 招聘方向——3-5条要点
- 招聘空白——2-3条要点
- 解读——1-2短句
-
WebSearch新闻动态:
"<企业名称>" 2026 OR 2025 новости"<企业名称>" интервью OR пресс-релиз"<企业名称>" "назначен" OR "возглавил" OR "новый руководитель"
-
(可选,付费) 若可用:
$GOSZAKUP_TOKEN- REST请求:+ Bearer header → 详细信息 + 员工数据
GET https://ows.goszakup.gov.kz/v3/subject/biin/{BIN} - REST请求:→ 中标政府采购合同
GET https://ows.goszakup.gov.kz/v3/contract?supplier_biin={BIN} - REST请求:→ 失信名单核查
GET https://ows.goszakup.gov.kz/v3/rnu/{BIN}
- REST请求:
阶段1输出: 结构化企业概况 + 招聘情报(1个核心洞察 + 职位分类 + ⭐关键职位)。每个事实均附带数据源。
Stage 2: ЛПР Identification
阶段2:ЛПР识别
Цель: 1-3 конкретных человека, принимающих решения по нашему офферу.
-
Reasoning step (без вызова инструментов). На основе:
- Профиля компании из Stage 1
- Описания нашего оффера
Определи роли ЛПР, релевантных нашему предложению:- Для AI sales tools: Commercial Director / Head of Sales / Chief Sales Officer / CMO / Founder
- Для ERP/IT: CIO / CFO / COO / CTO / Founder
- Для логистики: Operations Director / Supply Chain Lead / CEO
- Подумай: кто Buyer (бюджет), Champion (продвинет внутри), User (будет использовать)
-
Найди имена для каждой роли:
- Директор уже известен из adata.kz (Stage 1)
- С официального сайта /team — другие топы (если есть)
- WebSearch
"<company>" CEO OR директор OR президент - WebSearch (например, "коммерческий директор")
"<company>" "<specific role>" - WebSearch → LinkedIn snippets с именами и должностями
site:linkedin.com/in/ "<company>" - WebSearch → recent appointments
"<company>" "назначен" OR "возглавил"
-
(Опционально, paid) Еслидоступен:
$APIFY_API_KEY- Вызов Apify actor → полный список сотрудников с должностями
LinkedIn Company People Search
- Вызов Apify actor
Output Stage 2: 1-3 человека с именем, ролью, обоснованием «почему этот человек ЛПР для нашего оффера».
Failure modes:
- Если найден 0 ЛПР → стоп. Зарепортить: «недостаточно публичной информации о руководстве. Рекомендую: outreach на общий info@ или сначала установить контакт через LinkedIn по company name».
- Если найдено >3 → выбери топ-3 наиболее релевантных нашему офферу.
目标: 找到1-3位与我方产品/服务相关的决策人。
-
推理步骤(无需调用工具)。基于:
- 阶段1获取的企业概况
- 我方产品/服务描述
确定与我方产品相关的ЛПР角色:- 针对AI销售工具:商务总监/销售主管/首席销售官/首席营销官/创始人
- 针对ERP/IT:首席信息官/首席财务官/首席运营官/首席技术官/创始人
- 针对物流:运营总监/供应链负责人/首席执行官
- 思考:谁是Buyer(预算负责人)、Champion(内部推动者)、User(实际使用者)
-
查找每个角色对应的姓名:
- 总经理姓名已从adata.kz获取(阶段1)
- 从官网/team页面获取其他高管信息(如有)
- WebSearch
"<企业名称>" CEO OR директор OR президент - WebSearch (例如:"коммерческий директор")
"<企业名称>" "<特定角色>" - WebSearch → 提取LinkedIn片段中的姓名和职位
site:linkedin.com/in/ "<企业名称>" - WebSearch → 近期任命信息
"<企业名称>" "назначен" OR "возглавил"
-
(可选,付费) 若可用:
$APIFY_API_KEY- 调用Apify actor → 获取完整的员工职位列表
LinkedIn Company People Search
- 调用Apify actor
阶段2输出: 1-3位人员的姓名、职位、以及“为何该人员是我方产品的ЛПР”的理由。
失败场景:
- 若未找到任何ЛПР → 停止流程。报告:"缺少公开的管理层信息。建议:发送邮件至通用邮箱info@,或先通过LinkedIn建立企业层面的联系。"
- 若找到超过3位 → 选择与我方产品最相关的前3位。
Stage 3: Personal Deep Dive
阶段3:个性化深度调研
Цель: context-360 на каждого выявленного ЛПР.
Для каждого ЛПР параллельно:
- WebSearch → подтверждение роли + public mentions
"<name>" "<company>" - WebSearch → public statements
"<name>" интервью OR подкаст OR выступление - WebSearch → KZ business медиа
"<name>" site:forbes.kz OR site:kursiv.kz OR site:kapital.kz OR site:inbusiness.kz - WebSearch → LinkedIn snippets из Google
"<name>" site:linkedin.com/in/ - WebSearch → проверь наличие TG-канала
"<name>" telegram канал OR t.me/- Если канал найден → вызови telegram-channel-parser на канал → последние 20 постов
- WebSearch → recognition signals
"<name>" награды OR премии - (Опционально, paid) Если : full LinkedIn profile + last 20 posts через Apify
$APIFY_API_KEY
Для каждого ЛПР собери:
- Background: история, predecessor roles, education если public
- Recent activity (последние 3-6 мес): посты, выступления, интервью, события
- Themes: о чём консистентно говорит (например, «scaling Eurasian corridor», «digital transformation», «AI in operations»)
- Specific recent events: конкретные интервью / награды / mentions
Output Stage 3: context dossier на каждого ЛПР с указанием источников.
目标: 为每位已识别的ЛПР生成360度背景信息。
为每位ЛПР并行执行以下操作:
- WebSearch → 确认职位 + 公开提及信息
"<姓名>" "<企业名称>" - WebSearch → 公开声明
"<姓名>" интервью OR подкаст OR выступление - WebSearch → 哈萨克斯坦商业媒体报道
"<姓名>" site:forbes.kz OR site:kursiv.kz OR site:kapital.kz OR site:inbusiness.kz - WebSearch → 从Google提取LinkedIn片段
"<姓名>" site:linkedin.com/in/ - WebSearch → 检查是否有Telegram频道
"<姓名>" telegram канал OR t.me/- 若找到频道 → 调用telegram-channel-parser获取频道最近20条帖子
- WebSearch → 荣誉信息
"<姓名>" награды OR премии - (可选,付费) 若可用:通过Apify获取完整LinkedIn资料 + 最近20条帖子
$APIFY_API_KEY
为每位ЛПР收集:
- 背景信息:职业经历、过往职位、公开的教育背景
- 近期活动(过去3-6个月):帖子、演讲、访谈、事件
- 核心主题:持续关注的领域(例如:«欧亚走廊规模化»、«数字化转型»、«运营中的AI应用»)
- 具体近期事件:访谈/奖项/提及等具体信息
阶段3输出: 每位ЛПР的背景档案,附带数据源。
⭐ Правила для черновика сообщения (КРИТИЧНО для KZ B2B)
⭐ 邮件草稿规则(哈萨克斯坦B2B场景至关重要)
Сообщение — это не пересказ research, это снайперский выстрел в pain ЛПР с peer-уважением. Правила выработаны итерациями на реальных B2B-кейсах в KZ:
邮件并非调研内容的复述,而是精准击中ЛПР痛点并体现同行尊重的狙击式沟通。以下规则基于哈萨克斯坦真实B2B场景迭代而成:
Объём и структура
篇幅与结构
| Параметр | Значение |
|---|---|
| Слов | 120-160 |
| Абзацев | 2-3 (target: 3) |
| SPSV checklist | Все 5 элементов обязательны, но складываются в 3 параграфа |
| Структура | Параграф 1 = Контекст · Параграф 2 = Предложение · Параграф 3 = Действие |
| 参数 | 要求 |
|---|---|
| 字数 | 120-160词 |
| 段落 | 2-3段(目标:3段) |
| SPSV checklist | 5个要素全部必备,但整合为3段 |
| 结构 | 第1段 = 背景 · 第2段 = 产品主张 · 第3段 = 行动号召 |
Hook (первый параграф)
Hook(第一段)
- ✅ Короткий KZ-warmup в 1 фразу (5-10 слов) перед диагнозом: «Слежу за X давно», «Внимательно наблюдаю», «Меня заинтересовала траектория Y». KZ-культура уважает признание контекста перед основной мыслью.
- ✅ Переход к диагнозу через тире / «и сейчас» / «и обратил внимание» — плавно из warmup в напряжение
- ✅ 1 предложение с контрастом из их данных сразу после warmup
- ✅ Сильные signal-числа из research — pain-метрики (маржа, конверсия) обязательны если есть
- ✅ Сильные формулировки показывают экспертизу: «редкое сочетание сигналов», «выходит на первый план раньше производства»
- ❌ НЕ длинный warmup на абзац: не «хотел поделиться наблюдением. Накануне я посмотрел релиз...» — это уже церемония, перебор
- ❌ НЕ fake-льстивый: не «вы крутые», не «уважаю всё что вы делаете» — это flattery, а не уважение
- ❌ НЕ accusatory: не «масштабирование убытка», не «вы делаете не то». Insight без осуждения.
Пример хорошего открытия (Радчук, Bayan Sulu):
«Андрей Сергеевич, добрый день. Слежу за "Баян Сулу" давно — и сейчас у вас редкое сочетание сигналов: валовая маржа за 9 мес 2025 минус 13.2%, при этом мощность к концу 2026 растёт на +13 тыс тонн...»
5 слов KZ-warmup → тире → сразу контраст из их P&L → strong frame.
- ✅ 1句5-10词的哈萨克斯坦式暖场后再切入核心:«关注X已久»、«密切关注»、«Y的发展轨迹引起我的兴趣»。哈萨克斯坦文化重视在核心观点前先认可背景。
- ✅ 通过破折号/«而现在»/«我注意到» 从暖场自然过渡到痛点
- ✅ 暖场后立即1句基于对方数据的对比表述
- ✅ 加入调研获取的关键数据信号 — 若有痛点指标(利润率、转化率)则必须包含
- ✅ 使用专业表述体现专业性:«罕见的信号组合»、«早于生产环节成为核心关注点»
- ❌ 不要冗长的暖场段落:不要«想分享一个观察结果。昨天我看到发布...» — 过于繁琐
- ❌ 不要虚假奉承:不要«你们很棒»、«我尊重你们所做的一切» — 这是奉承,而非尊重
- ❌ 不要指责语气:不要«亏损扩大»、«你们做错了»。洞察需不带指责。
优秀开篇示例(Радчук, Bayan Sulu):
«Андрей Сергеевич,您好。关注“Баян Сулу”已久 — 而现在你们出现了罕见的信号组合:2025年前9个月毛利率下降13.2%,但到2026年底产能将增长1.3万吨...»
5词暖场 → 破折号 → 直接引用对方损益表的对比 → 专业框架。
Body (второй параграф)
正文(第二段)
- Что мы делаем (1 предложение) + конкретная ценность с числами (1 предложение)
- Параллель с их собственной экспертизой если есть в research («тот же подход, что у вас в X, только повёрнутый в Y»)
- Числа конкретные и проверяемые из их P&L или industry-бенчмарков
- 我方业务介绍(1句) + 带数据的具体价值(1句)
- 若调研中发现对方的专业领域,可建立关联(«与你们在X领域的做法一致,只是转向Y方向»)
- 使用对方损益表或行业基准中的具体可验证数据
CTA (третий параграф)
CTA(第三段)
- KZ-уважение: «при возможности», «на ваше усмотрение», «если будет удобно»
- 2 дня недели на выбор, не агрессивный «давайте в среду»
- Не «вам было бы интересно» (риторика отсеется)
- 体现哈萨克斯坦式尊重:«若方便»、«请您决定»、«如有时间»
- 提供2个可选日期,不要强硬表述«周三见面»
- 不要使用«您是否感兴趣»这类套话(会被过滤)
Цифры
数据使用
- 2-4 ключевые в письме (не россыпь)
- В Hook — 1-2 контрастных (pain + opportunity)
- В Body — 1 ценность (bench + база)
- ❌ НЕ кладите 8 цифр в одно письмо — это slide, не sms
- 2-4个关键数据(不要堆砌)
- Hook部分 — 1-2个对比数据(痛点+机遇)
- 正文部分 — 1个价值数据(基准+基础)
- ❌ 不要在邮件中放入8个数据 — 这是幻灯片,不是短信
Запретный жаргон (НЕ использовать)
禁用黑话(不得使用)
- AI-pipeline, SFA, sell-out, контекст-360, FMCG-бенчмарк, канальная видимость, sales-process
- KPI, ROI, customer journey, value proposition, pain points (в значении «боли»)
- Английские термины без перевода если есть нормальный русский
- AI-pipeline、SFA、sell-out、контекст-360、FMCG-бенчмарк、канальная видимость、sales-process
- KPI、ROI、customer journey、value proposition、pain points(表示“痛点”时)
- 有合适俄语替代的英文术语
KZ-формулы уважения (обязательны)
哈萨克斯坦式尊重规范(必须遵守)
- Полное имя-отчество в обращении и в подписи
- На «вы» (не «ты»)
- «Накануне я посмотрел...» / «Я обратил внимание...» (subject + verb, не «увидел»)
- «При возможности», «на ваше усмотрение», «если будет удобно» — в CTA
- «С уважением, [полное имя]» в подписи
- 称呼和签名使用完整姓名+父称
- 使用正式的“您”而非“你”
- 使用«我最近关注到...» / «我注意到...»(主语+动词,而非«看到»)
- CTA中使用«若方便»、«请您决定»、«如有时间»
- 签名使用«此致,[完整姓名]»
Не выдумывай
不要编造内容
Если по какому-то блоку SPSV (особенно «Проблема») нет данных в research — лучше пропустить блок, чем добавить generic фразу. Принцип: каждая фраза должна быть подкреплена находкой из Stages 1-4.
若SPSV某模块(尤其“问题”模块)无调研数据支撑 — 最好跳过该模块,而非添加通用表述。原则:每句话必须基于阶段1-4的调研结果。
Replace, не add
替换而非新增
На v→v+1 (после нового шага research) — заменяем generic-фразы на specific, объём НЕ растёт. Если v3 > 170 слов — режем generic, не добавляем новое.
从v版本到v+1版本(新增调研步骤后) — 将通用表述替换为具体内容,篇幅不增加。若v3超过170词 — 删除通用内容,不新增信息。
Stage 4: Synthesis — заходы и черновики сообщений
阶段4:整合——切入点与邮件草稿
Делаем два артефакта:
- Заход (hook) — короткое insight-предложение «с чего начать диалог», главная единица персонализации
- Черновик сообщения — собран по структуре «анатомия» (см. ниже), включает заход + value prop + CTA
Оба эволюционируют с каждым шагом research. Чем больше слоёв data — тем выше качество по 5 измерениям.
生成两个成果:
- 切入点(hook) — 简短的洞察式表述“从何处开启对话”,是个性化的核心单元
- 邮件草稿 — 按照“结构框架”(见下文)整合切入点+价值主张+CTA
两者均随调研步骤逐步迭代。数据层越多,5维度质量越高。
📐 Framework качества — что делает заход и сообщение лучше
📐 质量框架——如何提升切入点与邮件质量
5 измерений, по которым растёт качество при каждом новом слое:
| # | Измерение | Что значит | Как растёт v1→v3 |
|---|---|---|---|
| 1 | Конкретика | Привязка к этой компании / человеку, не template | компания → +рынок → +персона |
| 2 | Свежесть сигнала | Recency reference: на что мы ссылаемся | вакансия (дни-недели) → рынок (мес) → LinkedIn-пост (часы-дни) |
| 3 | Их язык vs наш | Используем их собственные слова/фрейминг | 0% → их сектор-термины → прямая цитата |
| 4 | Доказательность | Получатель может проверить, что мы готовились | вакансия проверяема → +источники → +цитата (неоспоримо) |
| 5 | Peer-feel | Звучит как коллега пишет, или как cold-sales | холодное → знаем рынок → знаем тебя лично |
Это substantive-измерения. По ним можно сравнить любые две версии и сказать, какая сильнее.
5个维度,每新增一层数据,质量都会提升:
| # | 维度 | 含义 | v1→v3的提升路径 |
|---|---|---|---|
| 1 | 具体性 | 绑定到目标企业/个人,而非模板 | 企业信息 → +市场信息 → +个人信息 |
| 2 | 信号时效性 | 参考的信息时效性:我们引用的内容 | 职位信息(数天-数周) → 市场信息(数月) → LinkedIn帖子(数小时-数天) |
| 3 | 对方语言 vs 我方语言 | 使用对方的措辞/框架 | 0% → 行业术语 → 直接引语 |
| 4 | 可验证性 | 收件人可核实我们做了准备工作 | 可验证的职位信息 → +数据源 → +引语(无可辩驳) |
| 5 | 同行感 | 听起来像同行沟通,而非冰冷销售 | 冰冷销售 → 了解市场 → 了解个人 |
这些是实质性维度。可通过对比任意两个版本判断哪个质量更高。
✏️ Анатомия хорошего сообщения — 4 элемента, каждое 1 фраза
✏️ 优质邮件结构——4个要素,各1句
| Элемент | Содержание |
|---|---|
| Personal context | Конкретное событие / факт из их публичной активности |
| Why now | Связь с нашим продуктом и моментом |
| Specific value | Что именно решаем под их контекст (не «у нас классный продукт») |
| Low-friction CTA | 15-20 минут, конкретный день, не «вам было бы интересно» |
Правила гигиены:
- 3-5 предложений максимум
- Прямой тон, без лести, без buzzwords
- НЕТ слов: «надеюсь, у вас всё хорошо», «коротко о нас», «уделите 5 минут», «думаю, вам будет интересно»
- Specific, не generic: если можно заменить название компании и смысл не сломается — слишком общее
| 要素 | 内容 |
|---|---|
| 个性化背景 | 对方公开活动中的具体事件/事实 |
| 为何是现在 | 与我方产品及当前时机的关联 |
| 具体价值 | 针对对方背景的具体解决方案(而非«我们的产品很棒») |
| 低门槛CTA | 15-20分钟,具体日期,不要«您是否感兴趣» |
规范要求:
- 最多3-5句话
- 语气直接,无奉承,无流行词
- 禁止使用:«祝您一切顺利»、«简单介绍我们»、«占用您5分钟»、«我认为您会感兴趣»
- 具体而非通用:若替换企业名称后含义不变 → 过于笼统
🎨 Highlight-разметка в HTML-отчёте
🎨 HTML报告高亮标记
В полных письмах на вкладке Коммуникация подсвечиваем что было добавлено на каждом шаге:
- — добавлено после Шага 2 (Рынок)
<span class="added-v2">синий</span> - — добавлено после Шага 3 (LinkedIn)
<span class="added-v3">зелёный</span> - — добавится после Шага 4 (Соцсети)
<span class="added-v4">оранжевый</span>
Это даёт визуальный diff: пользователь видит, какие именно куски текста появились благодаря какому слою research.
ВАЖНО: эти span-обёртки применяются ТОЛЬКО внутри блоков (вкладка Коммуникация). На вкладке Аналитика — в person-cards, в Шаге 2, в раскрытом контексте ЛПР — НИКАКИХ span'ов не должно быть. Если возникает соблазн подсветить «добавление» на Аналитике (например, что market context добавил что-то к «С чего зайти») — НЕ делай этого. CSS для scope'нут на , и подсветка вне его не сработает; но и span'ы туда не вставляй — это смешивает уровни.
.message-versionadded-v*added-v*.message-versionВ framework-блоке Communication tab — легенда с этими цветами.
在沟通页的完整邮件中,高亮显示每一步新增的内容:
- — 阶段2(市场)后新增
<span class="added-v2">蓝色</span> - — 阶段3(LinkedIn)后新增
<span class="added-v3">绿色</span> - — 阶段4(社交平台)后新增
<span class="added-v4">橙色</span>
便于直观对比:用户可看到哪些文本内容来自哪一层调研。
重要提示: 这些span标签仅适用于模块(沟通页)。分析页的person-cards、阶段2、ЛПР展开背景中不得使用标签。若想在分析页高亮“新增内容”(例如市场背景为切入点新增了什么) — 不要这么做。的CSS仅作用于,分析页的高亮不会生效;且不要在分析页插入这些标签 — 会混淆层级。
.message-versionadded-v*added-v*.message-version沟通页的框架模块中包含这些颜色的图例。
Stage 4a — Person-First Action Summary (обязательное)
阶段4a — 以个人为核心的行动摘要(必填)
Цель: для каждого PRIMARY ЛПР собрать «карточку действий для сейла» — что нужно знать за 10 секунд.
Что включает person-card:
-
В приоритете сейчас (2-4 буллета) — что у этого ЛПР на тарелке прямо сейчас:
- Recent moves (последние 3-6 мес) с датами / именами / источниками
- Что лично говорит / постит / выступает
- На что он публично потратил время, деньги, внимание
- НЕ обобщения: «занимается AI» = плохо. «Запустил D8N.ai в 2025, инвестировал $100K в MOST Fund в Q4» = хорошо.
-
С чего зайти (1 событие + опорная фраза) — конкретный opening:
- ОДНО событие/факт (свежее, верифицируемое)
- Опорная фраза которая привязывает событие к диалогу
- Источник для этого события (чтобы сейл мог проверить)
-
Стык с нашим оффером (1-2 фразы) — где их фокус пересекает наш продукт:
- Обязательно. Без этого карточка не имеет ценности для сейла.
- Не «у нас классный продукт». А «они делают X — наш Y усиливает X»
Приоритизация ЛПР для карточек:
Per-tier hierarchy для ВЫБОРА кого включать в person-cards:
| Tier | Кто это | Включать в Главное? |
|---|---|---|
| Primary | Buyer / Champion / Decision Maker по нашему офферу | ✅ Полная карточка |
| Secondary | Gatekeeper / co-decision (юрист / финансист) | ❌ Только в «Идентифицированные ЛПР» list. Без person-card. |
Правила гигиены person-cards (вкладка Аналитика → Главное):
- 1-3 карточки максимум, только primary ЛПР
- Если только 1 primary найден — 1 карточка. Не заполняй искусственно.
- Если 0 primary — стоп. Сообщи: «не нашёл persona-level контекста для personalized outreach, рекомендую company-level подход».
Выбор ГЛАВНОГО ЛПР для COMM_CARDS (вкладка Коммуникация):
Если primary ЛПР больше одного — выбираем ровно одного для генерации полного письма. Критерии в порядке убывания приоритета:
-
Уровень в иерархии: CEO/Owner/Founder > C-level (CFO, CMO, CRO, COO, CTO) > VP > Head of > Director > Manager. Выше = главнее.
-
Final budget authority по нашему офферу: для AI-инструментов отдела продаж — Head of Sales / CRO / коммерческий директор; для серверов — IT-директор / CIO; для маркетинговых сервисов — CMO. Если top-1 по иерархии не имеет authority в нашей категории, а #2 имеет — берём #2.
-
Свежесть signals: при равных iерархии и authority — берём того, у кого больше recent public активности (новости, посты, выступления) за 30 дней.
-
Если совсем равны: берём первого по алфавиту фамилии (детерминированно).
В Executive Summary остаются 1-3 person-cards — все primary ЛПР с контекстом для сейла. Но кнопка «Перейти к письму →» () активна только у главного ЛПР. У остальных кнопка либо отсутствует, либо отображается как disabled с подписью «Письмо генерируем только для главного — для этого ЛПР используй шаблон главного как основу».
data-target="#comm-<slug>"Хороший пример (Documentolog → Канафин):
В приоритете сейчас:
• Cross-border расширение через Контур (фев 2026)
• Запуск D8N.ai в продакшен + укомплектование AI Research dept
• Формирование международной партнёрской функции (открыта senior позиция)
С чего зайти:
Открытая вакансия руководителя международных партнёрских продаж —
formation moment коммерческой функции после Контур. Конкретное публичное событие, можно сослаться напрямую.
Стык с нашим оффером:
Канафин уже строит вертикальный AI (D8N.ai) и инвестирует в B2B AI
(MOST Fund). Наш стек — «D8N.ai для коммерческих команд». Категория,
которую он сам признаёт ценной.Плохой пример (без personalization):
В приоритете сейчас:
• Развивает компанию
• Расширяется
• Внедряет AI
С чего зайти:
Поговорить про AI
Стык с нашим оффером:
У нас есть AI-решение для продаж.目标: 为每位核心ЛПР生成“销售行动卡片” — 10秒内了解关键信息。
行动卡片包含:
-
当前重点(2-4条要点) — 该ЛПР当前关注的事项:
- 近期动态(过去3-6个月),带日期/姓名/数据源
- 个人公开表述/发帖/演讲内容
- 公开投入时间、资金、关注的事项
- 不要笼统表述:«从事AI工作» = 差。«2025年推出D8N.ai,向MOST Fund投资10万美元(第四季度)» = 好。
-
切入点(1个事件+引导语) — 具体的开篇方式:
- 1个事件/事实(时效性强、可验证)
- 将事件与对话关联的引导语
- 事件的数据源(便于销售核实)
-
与我方产品的契合点(1-2句话) — 对方关注点与我方产品的交集:
- 必填项。无此内容,卡片对销售无价值。
- 不要«我们的产品很棒»。要«他们正在做X — 我方Y可强化X»
ЛПР卡片优先级:
按层级选择纳入行动卡片的ЛПР:
| 层级 | 人员类型 | 是否纳入核心内容? |
|---|---|---|
| Primary | 我方产品的Buyer / Champion / Decision Maker | ✅ 完整卡片 |
| Secondary | Gatekeeper / 共同决策人(律师/财务) | ❌ 仅列入«已识别ЛПР»列表,无行动卡片 |
分析页行动卡片规范:
- 最多1-3张卡片,仅包含Primary ЛПР
- 若仅找到1位Primary ЛПР — 1张卡片。不要刻意填充。
- 若未找到Primary ЛПР — 停止流程。告知:«未找到适合个性化outreach的个人背景信息,建议采用企业层面的沟通方式»。
沟通页核心ЛПР选择规则:
若Primary ЛПR超过1位 — 仅选择1位生成完整邮件。优先级从高到低:
-
层级高低: CEO/所有者/创始人 > C级高管(CFO、CMO、CRO、COO、CTO) > VP > Head of > Director > Manager。层级越高越优先。
-
我方产品的最终预算决策权: 针对AI销售工具 — 销售主管/CRO/商务总监;针对服务器 — IT总监/CIO;针对营销服务 — CMO。若层级最高者无该领域决策权,而第2位有 — 选择第2位。
-
信号时效性: 层级和决策权相同时 — 选择过去30天公开活动(新闻、帖子、演讲)更多的人员。
-
完全相同时: 按姓氏字母顺序选择(确定性规则)。
执行摘要中保留1-3张行动卡片 — 所有Primary ЛПР的销售背景信息。但«跳转至邮件 →»按钮()仅对核心ЛПР激活。其他ЛПР的按钮要么隐藏,要么显示为禁用状态,附带提示«仅为核心ЛПР生成邮件 — 此ЛПР可参考核心邮件模板撰写»。
data-target="#comm-<slug>"优秀示例(Documentolog → Канафин):
当前重点:
• 通过Контур拓展跨境业务(2026年2月)
• 推出D8N.ai并组建AI研究部门
• 搭建国际合作职能(开放高级职位)
切入点:
国际合作销售主管的开放职位 —
与Контур整合后商务职能的搭建节点。具体公开事件,可直接引用。
与我方产品的契合点:
Канафин已搭建垂直AI产品(D8N.ai)并投资B2B AI(MOST Fund)。我方技术栈是«面向商务团队的D8N.ai»,属于他认可的高价值领域。糟糕示例(无个性化):
当前重点:
• 发展企业
• 拓展业务
• 实施AI
切入点:
聊聊AI
与我方产品的契合点:
我们有AI销售解决方案。Stage 5: HTML Report Generation & Auto-Open
阶段5:HTML报告生成与自动打开
Цель: красивый, копируемый HTML-отчёт, автоматически открывается в браузере.
-
Подготовь данные для подстановки в шаблон (все собранные на Stage 1-4 факты + сообщения).
-
Прочитай шаблон:
Read: .claude/skills/enrich-and-pitch/templates/report.htmlВ конце шаблона есть HTML-комментарий с описанием всех placeholder'ов и структур повторяющихся блоков — следуй им строго. -
Сгенерируй заполненный HTML:
- Header / meta: ,
{{COMPANY_NAME}},{{BIN}}(формат «20 мая 2026, 14:30»),{{TIMESTAMP}},{{STACK_TAG}},{{STACK}}{{RUNTIME}} - ⭐ — секция «Главное»: 1-3 person-action карточки из Stage 4a (только PRIMARY ЛПР). Action-link
{{PERSON_CARDS}}ведёт к раскрывающейся карточке ЛПР ниже; кнопкаhref="#lpr-<slug>"переключает на вкладку Коммуникация и скроллит к нужному сообщению.data-target="#comm-<slug>" - +
{{COMPANY_FACTS_COMPACT}}— компания: компактные видимые факты + legal в collapsed{{COMPANY_FACTS_LEGAL}}<details> - Активность по найму: (1 строка),
{{HIRING_STATS}}(3-5 буллетов),{{HIRING_WHO}}(2-3 буллета),{{HIRING_GAPS}}(1-2 фразы вывода){{HIRING_MEANING}} - ⭐ — раскрывающиеся
{{LPR_CARDS}}per ЛПР. Summary — компактная карточка (имя, должность, why). Внутри раскрытия — контекст (background, recent activity, themes, угол захода). Черновика письма внутри НЕТ — он живёт только на вкладке Коммуникация.<details class="lpr-card" id="lpr-<slug>"> - — Market context, идёт сразу после ЛПР. STUB по умолчанию (Stage 5), FULL после Stage 6.
{{STEP2_SECTION}} - /
{{STEP3_SECTION}}— LinkedIn / Social. STUB по умолчанию (paid).{{STEP4_SECTION}} - — все использованные URL из всех стейджей. Всегда в самом конце вкладки Аналитика.
{{SOURCES}} - ⭐ — РОВНО ОДНА
{{COMM_CARDS}}для главного primary ЛПР (top-1, см. правило выбора в Stage 4a). Внутри только.comm-cardс 4 полными версиями письма (v1 база, v2 +рынок, v3 +LinkedIn, v4 +соцсети). Каждая версия = ПОЛНОЕ письмо. В v2/v3/v4 фрагменты, которые добавились относительно предыдущей версии, обёрнуты в.message-versions/<span class="added-v2">…</span>/added-v3— это даёт визуальный diff. Никаких отдельных hook-блоков. Для остальных primary ЛПР письма не генерируем — они остаются в person-cards Executive Summary с раскрывающимся контекстом, но без кнопки «Перейти к письму».added-v4
Контекст ЛПР живёт ВНУТРИ— каждый{{LPR_CARDS}}содержит<details class="lpr-card" id="lpr-<slug>">(компактная карточка) +<summary>(background, recent activity, themes, угол захода). Отдельного<div class="lpr-context">плейсхолдера нет.DOSSIERSПорядок секций на вкладке Аналитика (фиксированный):- Главное (PERSON_CARDS)
- Профиль компании
- Активность по найму (HIRING_*)
- Идентифицированные ЛПР (LPR_CARDS — с вложенным контекстом)
- Шаг 2: Market context (STEP2_SECTION)
- Шаг 3: LinkedIn deep dive (STEP3_SECTION)
- Шаг 4: Social signals (STEP4_SECTION)
- Источники (в самом конце)
- Header / meta:
-
Определи путь файла:bash
COMPANY_SLUG=$(echo "<COMPANY_NAME>" | tr '[:upper:]' '[:lower:]' | tr ' ' '-' | tr -cd 'a-z0-9-') TIMESTAMP=$(date +%Y%m%d-%H%M) REPORT_PATH="reports/${COMPANY_SLUG}-${TIMESTAMP}.html" -
Создай папкуесли её нет + добавь в
reports/(чтобы пользовательские отчёты не пачкали репо):.gitignorebashmkdir -p reports if [ -f .gitignore ] && ! grep -q "^reports/$" .gitignore; then echo "reports/" >> .gitignore fi -
Сохрани HTML через Write tool на.
$REPORT_PATH -
Автооткрытие в браузере (cross-platform):bash
open "$REPORT_PATH" 2>/dev/null \ || xdg-open "$REPORT_PATH" 2>/dev/null \ || start "" "$REPORT_PATH" 2>/dev/null \ || echo "Отчёт сохранён: $REPORT_PATH (открой вручную)" -
Финальный ответ пользователю:
✅ Готово. Отчёт открыт в браузере. Файл: reports/<slug>-<timestamp>.html Использовано: <stack>
目标: 美观、可复制的HTML报告,自动在浏览器打开。
-
准备模板数据(阶段1-4收集的所有事实 + 邮件内容)。
-
读取模板:
Read: .claude/skills/enrich-and-pitch/templates/report.html模板末尾有HTML注释,说明所有占位符和重复模块结构 — 严格遵循。 -
生成填充后的HTML:
- Header / meta:,
{{COMPANY_NAME}},{{BIN}}(格式«2026年5月20日 14:30»),{{TIMESTAMP}},{{STACK_TAG}},{{STACK}}{{RUNTIME}} - ⭐ — «核心内容»板块:阶段4a的1-3张行动卡片(仅Primary ЛПР)。行动链接
{{PERSON_CARDS}}指向下方的ЛПР展开卡片;按钮href="#lpr-<slug>"切换至沟通页并滚动至对应邮件。data-target="#comm-<slug>" - +
{{COMPANY_FACTS_COMPACT}}— 企业信息:可见的紧凑事实 + 折叠{{COMPANY_FACTS_LEGAL}}中的法人信息<details> - 招聘活动:(1行),
{{HIRING_STATS}}(3-5条要点),{{HIRING_WHO}}(2-3条要点),{{HIRING_GAPS}}(1-2句结论){{HIRING_MEANING}} - ⭐ — 每个ЛПР对应一个可展开的
{{LPR_CARDS}}。摘要为紧凑卡片(姓名、职位、理由)。展开后包含背景信息(background、recent activity、themes、切入点)。内部无邮件草稿 — 仅在沟通页展示。<details class="lpr-card" id="lpr-<slug>"> - — 市场背景,位于ЛПР之后。默认是STUB(阶段5),阶段6后变为FULL。
{{STEP2_SECTION}} - /
{{STEP3_SECTION}}— LinkedIn / 社交平台信息。默认是STUB(付费)。{{STEP4_SECTION}} - — 所有阶段使用的URL。始终位于分析页末尾。
{{SOURCES}} - ⭐ — 仅1个
{{COMM_CARDS}}对应核心Primary ЛПР(top-1,见阶段4a选择规则)。内部仅包含.comm-card,提供4个完整邮件版本(v1基础版、v2 +市场信息、v3 +LinkedIn信息、v4 +社交平台信息)。每个版本都是完整邮件。v2/v3/v4中相对上一版本新增的片段包裹在.message-versions/<span class="added-v2">…</span>/added-v3标签中,便于直观对比差异。无单独的hook模块。不为其他Primary ЛПР生成邮件 — 它们仅保留在执行摘要的行动卡片中,带展开背景,但无«跳转至邮件»按钮。added-v4
ЛПР背景信息位于内部 — 每个{{LPR_CARDS}}包含<details class="lpr-card" id="lpr-<slug>">(紧凑卡片) +<summary>(background、recent activity、themes、切入点)。无单独的<div class="lpr-context">占位符。DOSSIERS分析页板块顺序(固定):- 核心内容(PERSON_CARDS)
- 企业概况
- 招聘活动(HIRING_*)
- 已识别ЛПР(LPR_CARDS — 带内嵌背景)
- 步骤2:市场背景(STEP2_SECTION)
- 步骤3:LinkedIn深度调研(STEP3_SECTION)
- 步骤4:社交信号(STEP4_SECTION)
- 数据源(末尾)
- Header / meta:
-
确定文件路径:bash
COMPANY_SLUG=$(echo "<COMPANY_NAME>" | tr '[:upper:]' '[:lower:]' | tr ' ' '-' | tr -cd 'a-z0-9-') TIMESTAMP=$(date +%Y%m%d-%H%M) REPORT_PATH="reports/${COMPANY_SLUG}-${TIMESTAMP}.html" -
创建文件夹(若不存在)并添加到
reports/(避免用户报告污染仓库):.gitignorebashmkdir -p reports if [ -f .gitignore ] && ! grep -q "^reports/$" .gitignore; then echo "reports/" >> .gitignore fi -
通过Write工具保存HTML到。
$REPORT_PATH -
跨平台自动打开浏览器:bash
open "$REPORT_PATH" 2>/dev/null \ || xdg-open "$REPORT_PATH" 2>/dev/null \ || start "" "$REPORT_PATH" 2>/dev/null \ || echo "报告已保存:$REPORT_PATH(请手动打开)" -
向用户发送最终回复:
✅ 完成。报告已在浏览器打开。 文件:reports/<slug>-<timestamp>.html 使用技术栈:<stack>
Stage 5b: Предложить Шаг 2 в чате
阶段5b:在聊天中建议执行步骤2
Сразу после Stage 5 (после генерации и открытия HTML) — в чате Claude Code предложи запуск Stage 6.
В HTML вставь STUB-state:
{{STEP2_SECTION}}html
<section class="step2-stub">
<h2>📍 Шаг 2: Market context — не запущен</h2>
<p>Добавь контекст сектора и конкурентов — скажи в чате Claude Code <code>«запусти Шаг 2»</code></p>
</section>В чате после summary дай предложение:
🔬 Шаг 2 — Market context
Хочешь добавить понимание сектора, конкурентов и динамики рынка?
Это займёт ещё ~3-5 минут — тот же HTML обновится с market research.
Скажи «да» / «запусти Шаг 2» — пойду собирать market context.Ожидай реакции пользователя. Если «да» / «запусти Шаг 2» / эквивалент → переходи к Stage 6.
Если «нет» / «пока хватит» / молчание → завершай. Пользователь может позже сам запустить.
阶段5完成后(生成并打开HTML后) — 在Claude Code聊天中建议用户启动阶段6。
在HTML的中插入STUB状态:
{{STEP2_SECTION}}html
<section class="step2-stub">
<h2>📍 步骤2:市场背景 — 未启动</h2>
<p>添加行业背景、竞争对手信息,请在Claude Code聊天中发送指令 <code>«启动步骤2»</code></p>
</section>在聊天中发送以下建议:
🔬 步骤2 — 市场背景
是否需要添加行业认知、竞争对手及市场动态信息?
约需3-5分钟 — 同一HTML文件将更新市场调研内容。
发送«是» / «启动步骤2» — 我将开始收集市场背景信息。等待用户回复。若回复«是» / «启动步骤2» / 等效指令 → 进入阶段6。
若回复«否» / «暂时足够» / 无回复 → 结束流程。用户可后续自行启动。
Stage 6: Market Research (только если пользователь сказал «да» в Stage 5b)
阶段6:市场调研(仅当用户在阶段5b回复«是»时执行)
Цель: через WebSearch + WebFetch собрать market context. Не уходи в claude.ai — работаешь теми же тулзами что и в Stages 1-4.
Параллельные WebSearch'и:
-
Конкуренты компании в секторе:
"{сектор}" Казахстан конкуренты топ-5"{сектор}" Казахстан крупнейшие компании"{сектор}" {company} конкуренты- Из ответов извлеки 3-5 имён с краткой позицией (~10-15 слов про каждого)
- Сгруппируй: KZ-локальные / региональные (РФ/CIS) / глобальные
-
Динамика рынка 2024-2026:
"{сектор}" Казахстан рынок 2026"{сектор}" Казахстан объём рост"{сектор}" регулирование Казахстан 2026- Ищи: объём рынка, темпы роста, регуляторные изменения, мандатное внедрение, ключевые milestones
-
AI / технологические тренды в категории:
"{сектор}" AI внедрение тренды 2026"{сектор}" автоматизация AI Казахстан- Какие именно use cases AI в этой категории, кто из конкурентов внедряет, что мейнстрим
-
Что меняется в 2026 (макро):
- Год AI в РК → как это влияет на сектор
- Регуляторные изменения
- Cross-border / regional shifts
-
Уязвимости лидера сегмента:
- Угрозы со стороны глобалов / новых entrants / regulator
- Где компания МОЖЕТ потерять долю
- На что AI-native новички могут заходить
Hallucination guard: те же правила что Stage 1 — каждый факт с источником, неточные пометить.
目标: 通过WebSearch + WebFetch收集市场背景信息。不要使用claude.ai — 使用与阶段1-4相同的工具。
并行执行WebSearch:
-
行业内竞争对手:
"{行业}" Казахстан конкуренты топ-5"{行业}" Казахстан крупнейшие компании"{行业}" {company} конкуренты- 从结果中提取3-5个名称及简短定位(约10-15词)
- 分组:哈萨克斯坦本地 / 区域(俄罗斯/CIS) / 全球
-
2024-2026年市场动态:
"{行业}" Казахстан рынок 2026"{行业}" Казахстан объём рост"{行业}" регулирование Казахстан 2026- 查找:市场规模、增长率、监管变化、强制实施要求、关键里程碑
-
AI / 技术趋势:
"{行业}" AI внедрение тренды 2026"{行业}" автоматизация AI Казахстан- 该领域的AI应用场景、哪些竞争对手正在实施、主流趋势
-
2026年宏观变化:
- 哈萨克斯坦AI年 → 对行业的影响
- 监管变化
- 跨境/区域格局变化
-
行业领导者的弱点:
- 来自全球企业/新进入者/监管的威胁
- 企业可能丢失市场份额的领域
- AI原生新玩家的切入点
幻觉防护: 与阶段1规则相同 — 每个事实附带数据源,不确定的内容标记或删除。
Stage 7: Update HTML — Step 2 + regenerate full message (v1 → v2)
阶段7:更新HTML — 步骤2 + 重新生成完整邮件(v1 → v2)
Двойная задача:
- Заменить STUB Step 2 section на FULL market context (на вкладке Аналитика, между ЛПР и Шагом 3)
- Regenerate полное письмо v2 на вкладке Коммуникация — с подсветкой market-добавок через
.added-v2
После Stage 6:
双重任务:
- 将步骤2的STUB板块替换为完整市场背景(分析页,位于ЛПР与步骤3之间)
- 重新生成沟通页的完整邮件v2 — 通过高亮新增的市场内容
.added-v2
阶段6完成后:
7a. Regenerate full message v2 (Шаг 2 evolution)
7a. 重新生成完整邮件v2(步骤2迭代)
Для каждого PRIMARY ЛПР:
- Возьми v1 — полное письмо после Шага 1 (Personal context → Why now → Specific value → CTA)
- Сгенерируй v2 — то же письмо, но с добавкой market layer: конкуренты, регуляторный контекст, динамика сектора. Добавки обворачивай в чтобы они визуально подсвечивались
<span class="added-v2">…</span> - v2 должен звучать резко сильнее v1: если только переставил слова — не меняй (нет смысла в evolution)
- Добавь блок под v2 — 1-2 предложения, что именно добавилось
what-changed
Пример (Sulpak v1 → v2):
- v1: «80% покупок через карты лояльности → нагрузка на CRM 24/7, AXELOT WMS расширяется. Готовы обсудить серверы под этот контур»
- v2: v1 + +
<span class="added-v2">Mechta в 2024 потеряла 15%, категория упёрлась в насыщение → loyalty-data становится единственным защищаемым активом</span><span class="added-v2">регулятор движется тремя волнами поправок в 2026: 18 января уже в силе, 11 июля финальная</span>
针对每位Primary ЛПР:
- 基于v1 — 步骤1后的完整邮件(个性化背景 → 为何是现在 → 具体价值 → CTA)
- 生成v2 — 同一邮件,添加市场层内容:竞争对手、监管背景、行业动态。新增内容包裹在标签中以便高亮
<span class="added-v2">…</span> - v2必须明显强于v1:若仅调整措辞 — 无需更新(无迭代意义)
- 在v2下方添加板块 — 1-2句话说明新增内容
what-changed
示例(Sulpak v1 → v2):
- v1: «80%的购买通过会员卡完成 → CRM全天候负载,AXELOT WMS正在扩容。我们可讨论适配该系统的服务器方案»
- v2: v1 + +
<span class="added-v2">Mechta在2024年丢失15%份额,行业已达饱和 → 会员数据成为唯一的护城河</span><span class="added-v2">2026年监管将分三轮调整:1月18日已生效,7月11日将发布最终版本</span>
7b. Update HTML
7b. 更新HTML
-
Найди STUB Step 2 section → замени на FULL market context (HTML-шаблон ниже в этом файле).
-
На вкладке Коммуникация — единственная comm-card для главного ЛПР:
- v1 (текущая) → переезжает в
.previous - v2 (новая) → становится на самом верху
.current - v3 / v4 stubs остаются как есть
- v1 (текущая) → переезжает в
html
<div class="message-versions">
=== LATEST version (current) ===
<div class="message-version current">
<button class="copy-btn">Скопировать</button>
<div class="message-version-meta">
<span class="message-version-badge">v2 · + Рынок</span>
<span class="message-version-status">Текущая версия — после Шага 2</span>
</div>
<pre>{Имя}, добрый день.
{Personal context v1.} <span class="added-v2">{Market addition.}</span>
{Why now v1.} <span class="added-v2">{Market frame.}</span> {Specific value.}
{CTA.}
С уважением,
[Ваше имя]</pre>
<div class="what-changed">
<strong>Что изменилось в v2:</strong> 1-2 предложения объяснения добавленных market-слоёв.
</div>
</div>
=== Previous version (v1 base) ===
<div class="message-version previous">
<button class="copy-btn">Скопировать</button>
<div class="message-version-meta">
<span class="message-version-badge">v1 · База</span>
<span class="message-version-status">Предыдущая версия — после Шага 1</span>
</div>
<pre>{Full v1 letter without market additions.}</pre>
</div>
=== v3 / v4 stubs (остаются как есть) ===
...
</div>-
Никаких изменений на вкладке Аналитика в LPR-карточках — там черновика письма нет, контекст ЛПР остаётся прежним.
-
Сохрани файл, открой:bash
open "$REPORT_PATH" -
В чате: «✅ Шаг 2 добавлен. Обнови вкладку (Cmd+R). На вкладке Коммуникация v2 — с подсвеченными market-добавками. Старая v1 рядом для сравнения.»
-
找到步骤2的STUB板块 → 替换为完整市场背景(本文件下方的HTML模板)。
-
沟通页仅保留核心ЛПР的comm-card:
- v1(当前版本) → 移至
.previous - v2(新版本) → 成为顶部的
.current - v3 / v4的stub保持不变
- v1(当前版本) → 移至
html
<div class="message-versions">
=== 最新版本(current) ===
<div class="message-version current">
<button class="copy-btn">复制</button>
<div class="message-version-meta">
<span class="message-version-badge">v2 · +市场信息</span>
<span class="message-version-status">当前版本 — 步骤2后</span>
</div>
<pre>{姓名}, 您好.
{个性化背景v1内容.} <span class="added-v2">{新增市场内容.}</span>
{为何是现在v1内容.} <span class="added-v2">{市场框架内容.}</span> {具体价值内容.}
{CTA内容.}
此致,
[您的姓名]</pre>
<div class="what-changed">
<strong>v2新增内容:</strong> 1-2句话说明新增的市场层信息.
</div>
</div>
=== 上一版本(v1基础版) ===
<div class="message-version previous">
<button class="copy-btn">复制</button>
<div class="message-version-meta">
<span class="message-version-badge">v1 · 基础版</span>
<span class="message-version-status">上一版本 — 步骤1后</span>
</div>
<pre>{无市场内容的完整v1邮件.}</pre>
</div>
=== v3 / v4 stub(保持不变) ===
...
</div>-
分析页的ЛПР卡片无需修改 — 内部无邮件草稿,ЛПР背景信息保持不变。
-
保存文件并打开:bash
open "$REPORT_PATH" -
在聊天中告知:«✅ 步骤2已添加。请刷新页面(Cmd+R)。沟通页的v2版本包含高亮的市场新增内容。旧版本v1可用于对比。»
Stage 8: Шаг 3 — Paid sources (опционально, если есть keys)
阶段8:步骤3 — 付费数据源(可选,若有密钥)
Сразу после Stage 7 (после Шаг 2 готов) — снова предложение в чате:
🔬 Шаг 3 — Paid sources (LinkedIn deep dive + goszakup)
Хочешь добавить личные данные ЛПР через paid sources?
- Apify LinkedIn Profile + последние 10 постов
- (опционально) goszakup history если есть token
Это ещё ~2-3 мин, hook эволюционирует в v3 с laser-точным контекстом.
Скажи «да» / «запусти Шаг 3».Если пользователь сказал «да»:
-
Проверьв env:
$APIFY_API_KEYbashif [ -f .env ]; then source .env; fi if [ -z "$APIFY_API_KEY" ]; then echo "Нет APIFY_API_KEY. Положи в .env."; exit fi -
Найди LinkedIn URL primary ЛПР (из Stage 3 — если был snippet, или WebSearch заново)
-
Вызови Apify LinkedIn Profile Scraper:bash
curl -X POST "https://api.apify.com/v2/acts/dev_fusion~linkedin-profile-scraper/run-sync-get-dataset-items?token=$APIFY_API_KEY" \ -H "Content-Type: application/json" \ -d '{"profileUrls": ["https://www.linkedin.com/in/<lpr-handle>"]}'Альтернативный actor если первый не работает:,bebity/linkedin-premium-actor.curious_coder/linkedin-profile-scraper -
Из ответа извлеки:
- Recent posts (последние 10)
- About / Summary
- Skills и эндорсменты
- Network connections (high-profile)
- Recent activity (likes, comments, reposts)
-
Regenerate полное письмо v3 — на основе LinkedIn-данных:
- v3 включает конкретный recent LinkedIn signal (цитата из поста, недавняя активность) обёрнутый в
<span class="added-v3">…</span> - Пример добавки: «Видел ваш пост от [дата] про [тема] — пересекается с тем что вы делаете в [продукт]»
- v3 = v2 как база + LinkedIn-добавки, не переписываем письмо целиком
- v3 включает конкретный recent LinkedIn signal (цитата из поста, недавняя активность) обёрнутый в
-
Update HTML — Stage 9.
阶段7完成后(步骤2就绪) — 再次在聊天中建议:
🔬 步骤3 — 付费数据源(LinkedIn深度调研 + goszakup)
是否需要通过付费数据源添加ЛПР的个人信息?
- Apify LinkedIn资料 + 最近10条帖子
-(可选)若有token,添加goszakup历史数据
约需2-3分钟,切入点将迭代为v3,包含精准的个性化背景。
发送«是» / «启动步骤3»。若用户回复«是»:
-
检查环境变量中的:
$APIFY_API_KEYbashif [ -f .env ]; then source .env; fi if [ -z "$APIFY_API_KEY" ]; then echo "缺少APIFY_API_KEY。请放入.env文件。"; exit fi -
查找Primary ЛПР的LinkedIn URL(阶段3的片段,或重新WebSearch)
-
调用Apify LinkedIn Profile Scraper:bash
curl -X POST "https://api.apify.com/v2/acts/dev_fusion~linkedin-profile-scraper/run-sync-get-dataset-items?token=$APIFY_API_KEY" \ -H "Content-Type: application/json" \ -d '{"profileUrls": ["https://www.linkedin.com/in/<lpr-handle>"]}'若第一个actor不可用,备选:,bebity/linkedin-premium-actor.curious_coder/linkedin-profile-scraper -
从响应中提取:
- 最近10条帖子
- About / Summary
- 技能与背书
- 高价值人脉
- 近期活动(点赞、评论、转发)
-
重新生成完整邮件v3 — 基于LinkedIn数据:
- v3包含具体的LinkedIn近期信号(帖子引语、近期活动),包裹在标签中
<span class="added-v3">…</span> - 新增内容示例:«看到您[日期]发布的关于[主题]的帖子 — 与您在[产品]领域的工作契合»
- v3 = v2为基础 + LinkedIn新增内容,无需重写整个邮件
- v3包含具体的LinkedIn近期信号(帖子引语、近期活动),包裹在
-
更新HTML — 阶段9。
Stage 9: Update HTML — Step 3 → v3 current
阶段9:更新HTML — 步骤3 → v3成为当前版本
-
На вкладке Коммуникация — единственная comm-card для главного ЛПР:
- v2 (current) → переезжает в
.previous - v3 (новый) → становится на самом верху
.current - v1 (previous) → остаётся , ниже v2
.previous - Stub v3 → удаляется
- v3 содержит ПОЛНОЕ письмо v2 + LinkedIn-добавки обёрнутые в (personal post quote, дата, тема). Цвет подсветки автоматически зелёный (см. CSS .added-v3)
<span class="added-v3">…</span> - Добавь блок под v3 с описанием LinkedIn-слоя
what-changed
- v2 (current) → переезжает в
-
Опционально: добавить новую секциюс raw LinkedIn data (свёрнуто по умолчанию через
step3-personal-deep-dive). Положи между Шаг 2 и Шаг 4 на вкладке Аналитика.<details> -
Никаких изменений на вкладке Аналитика в LPR-карточках — там черновика письма нет.
-
Open + chat:
✅ Шаг 3 готов. На вкладке Коммуникация v3 — теперь с personal LinkedIn context (зелёная подсветка). v1, v2 рядом для сравнения.
-
沟通页仅保留核心ЛПР的comm-card:
- v2(当前版本) → 移至
.previous - v3(新版本) → 成为顶部的
.current - v1(previous) → 保持,位于v2下方
.previous - 删除v3的stub
- v3包含完整v2邮件 + 包裹在标签中的LinkedIn新增内容(个人帖子引语、日期、主题)。高亮颜色自动为绿色(见CSS .added-v3)
<span class="added-v3">…</span> - 在v3下方添加板块说明LinkedIn层内容
what-changed
- v2(当前版本) → 移至
-
可选: 添加新板块,包含原始LinkedIn数据(默认通过
step3-personal-deep-dive折叠)。放在分析页步骤2与步骤4之间。<details> -
分析页的ЛПР卡片无需修改 — 内部无邮件草稿。
-
打开文件并在聊天中告知:
✅ 步骤3完成。沟通页的v3版本包含LinkedIn个性化背景(绿色高亮)。v1、v2可用于对比。
Market context HTML template (для замены STUB в Stage 7)
市场背景HTML模板(阶段7替换STUB用)
html
<section class="step2-full">
<h2>📍 Шаг 2: Market context</h2>
<div class="summary-subtitle">Сектор, конкуренты, динамика, что из этого торчит</div>
<dl class="market-grid">
<dt>Сектор</dt>
<dd>...определение сегмента (1 фраза)...</dd>
<dt>Положение компании</dt>
<dd>...лидер / challenger / niche, размер доли если известно...</dd>
<dt>Конкуренты</dt>
<dd>
<ul>
<li><strong>Имя</strong> — позиционирование (KZ-локальный)</li>
<li><strong>Имя</strong> — позиционирование (региональный)</li>
<li><strong>Имя</strong> — позиционирование (глобал)</li>
</ul>
</dd>
<dt>Динамика</dt>
<dd>
<ul>
<li class="up">что растёт / drives the market</li>
<li class="up">регуляторные tailwinds</li>
<li class="down">что давит / угрозы / headwinds</li>
</ul>
</dd>
</dl>
<div class="market-insight">
<div class="market-insight-label">Что из этого торчит для нашего outreach</div>
<div class="market-insight-body">
1-2 предложения вывод. Как контекст сектора усиливает наш заход к этому ЛПР.
</div>
</div>
<div class="market-sources">
Источники: <a href="...">name1</a>, <a href="...">name2</a>, <a href="...">name3</a>
</div>
</section>html
<section class="step2-full">
<h2>📍 步骤2:市场背景</h2>
<div class="summary-subtitle">行业、竞争对手、动态、对outreach的价值</div>
<dl class="market-grid">
<dt>行业</dt>
<dd>...行业定义(1句话)...</dd>
<dt>企业定位</dt>
<dd>...领导者 / 挑战者 / 细分领域,若已知市场份额...</dd>
<dt>竞争对手</dt>
<dd>
<ul>
<li><strong>名称</strong> — 定位(哈萨克斯坦本地)</li>
<li><strong>名称</strong> — 定位(区域)</li>
<li><strong>名称</strong> — 定位(全球)</li>
</ul>
</dd>
<dt>市场动态</dt>
<dd>
<ul>
<li class="up">增长领域 / 市场驱动力</li>
<li class="up">监管利好</li>
<li class="down">压力因素 / 威胁 / 监管利空</li>
</ul>
</dd>
</dl>
<div class="market-insight">
<div class="market-insight-label">对outreach的价值</div>
<div class="market-insight-body">
1-2句话结论。行业背景如何强化对该ЛПР的切入点。
</div>
</div>
<div class="market-sources">
数据源:<a href="...">name1</a>, <a href="...">name2</a>, <a href="...">name3</a>
</div>
</section>Output Format (для пользователя в чате)
用户聊天输出格式
В начале (Stage 1.0 — подтверждение):
🔍 Ищу компанию...
Нашёл кандидата(ов) для «<input>»:
1. ТОО Documentolog
БИН 070840007503 · Астана · 41-50 человек · директор Аманбекова М.А.
Разработка ПО, 18 лет на рынке
2. (если есть второй) ...
Какую исследуем? (1 / 2 / обе / уточнить)Жди подтверждения. После него — иди в полный цикл.
После Stage 5 (Шаг 1 готов):
✅ Контекст-360 по <Company> готов. Отчёт открыт в браузере.
📄 reports/<slug>-<timestamp>.html
Найдено ЛПР: <N> (из них primary: <N>, главный: <Имя Фамилия>)
Сгенерировано писем: 1 (полное письмо для главного ЛПР)
Использовано: <stack>
Время: ~<X> сек
—————————————————————————
🔬 Шаг 2 — Market context
Хочешь добавить понимание сектора, конкурентов и динамики рынка?
~3-5 мин. Тот же HTML обновится с market research.
Скажи «да» / «запусти Шаг 2» — пойду собирать.Ожидай реакции пользователя.
После Stage 7 (если Шаг 2 был запущен):
✅ Шаг 2 добавлен в отчёт.
Использовано: <stack> + market research
Время Шага 2: ~<X> мин
Источников добавлено: <N>
Обнови вкладку браузера (Cmd+R) — Market context появится после Источников.初始阶段(阶段1.0 — 确认):
🔍 正在查找企业...
为«<输入内容>»找到以下候选企业:
1. ТОО Documentolog
БИН 070840007503 · 阿斯塔纳 · 41-50人 · 总经理 Аманбекова М.А.
软件开发,成立18年
2.(若有第二个)...
需要调研哪一家?(1 / 2 / 两家都调研 / 补充信息)等待确认。确认后进入完整流程。
阶段5完成后(步骤1就绪):
✅ <企业名称>的360度背景信息已就绪。报告已在浏览器打开。
📄 reports/<slug>-<timestamp>.html
找到ЛПР:<N>位(其中Primary:<N>位,核心:<姓名>)
生成邮件:1封(核心ЛПР的完整邮件)
使用技术栈:<stack>
耗时:~<X>秒
—————————————————————————
🔬 步骤2 — 市场背景
是否需要添加行业认知、竞争对手及市场动态信息?
约3-5分钟。同一HTML文件将更新市场调研内容。
发送«是» / «启动步骤2» — 我将开始收集。等待用户回复。
阶段7完成后(若执行了步骤2):
✅ 步骤2已添加到报告。
使用技术栈:<stack> + 市场调研
步骤2耗时:~<X>分钟
新增数据源:<N>个
请刷新浏览器页面(Cmd+R) — 市场背景将显示在数据源之后。Hallucination Guards (КРИТИЧНО)
幻觉防护规则(至关重要)
- Каждый факт в output должен иметь URL-источник.
- Если факт не подтверждён → пометь или опусти.
[не подтверждено] - Если человек / компания не верифицируется → не выдумывай: «не нашёл публичных данных о X».
- НИКОГДА не выдумывай: имена ЛПР, должности, факты биографии, финансовые данные, конкретные события, цитаты из интервью.
- Если goszakup данные не доступны → не выдумывай историю контрактов.
- Если LinkedIn профиль не найден → не выдумывай содержание постов.
- 每个事实的输出必须附带URL数据源。
- 若事实未确认 → 标记或删除。
[未确认] - 若人员/企业无法验证 → 不要编造:«未找到X的公开数据»。
- 绝对不要编造:ЛПР姓名、职位、生平事实、财务数据、具体事件、访谈引语。
- 若goszakup数据不可用 → 不要编造合同历史。
- 若未找到LinkedIn资料 → 不要编造帖子内容。
Tool Detection (auto-graceful degradation)
工具自动降级
В начале работы проверь доступные env vars:
- → enables Apify LinkedIn calls (Stage 2-3)
$APIFY_API_KEY - → enables goszakup API (Stage 1)
$GOSZAKUP_TOKEN - → enables Scrape.do для заблокированных сайтов (Stage 1)
$SCRAPEDO_TOKEN - → enables yandex-search-api для глубокого RU/KZ SERP
$YANDEX_SEARCH_API_KEY
В output финальная строка перечисляет что использовалось: или .
Использовано: free стекИспользовано: free + apify + goszakup工作开始前检查可用环境变量:
- → 启用Apify LinkedIn调用(阶段2-3)
$APIFY_API_KEY - → 启用goszakup API(阶段1)
$GOSZAKUP_TOKEN - → 启用Scrape.do访问被封锁网站(阶段1)
$SCRAPEDO_TOKEN - → 启用yandex-search-api进行深度俄文/哈萨克文搜索
$YANDEX_SEARCH_API_KEY
输出的最终行需说明使用的技术栈: 或 。
使用技术栈:免费技术栈使用技术栈:免费 + apify + goszakupFailure Modes
失败场景
- Компания не найдена в adata.kz: попробуй разные варианты написания (русский / казахский / English). Fallback: только WebSearch.
- 0 ЛПР найдено: report и стоп. Не генери generic сообщения.
- ЛПР без public footprint: сообщение можно сделать на основе только company context, но честно отметить «контекст по человеку ограничен».
- Все paid недоступны: продолжай на free стеке, в output пометь.
- adata.kz未找到企业:尝试不同拼写(俄语/哈萨克语/英语)。备选方案:仅使用WebSearch。
- 未找到任何ЛПР:报告并停止流程。不要生成通用邮件。
- ЛПР无公开信息:可基于企业背景生成邮件,但需明确标注«个人背景信息有限»。
- 所有付费工具不可用:继续使用免费技术栈,在输出中说明。
Расчётное время выполнения
预计耗时
- Free стек: 60-120 сек на компанию
-
- Apify: +30-60 сек
-
- goszakup: +20 сек
- 免费技术栈:每企业60-120秒
-
- Apify:+30-60秒
-
- goszakup:+20秒
Примеры запроса от пользователя
用户请求示例
✅ «Сделай контекст-360 на Globalink Logistics. Мы продаём AI-инструменты для отдела продаж: лидген, скоринг входящих, аналитика звонков.»
✅ «Обогати БИН 110842011929 и подготовь outreach. Наш оффер: SaaS для логистических компаний — управление документооборотом и отслеживание грузов.»
✅ «Найди ЛПР в Documentolog и напиши первое сообщение. Продаём: коучинг отделов продаж через AI-анализ переписки.»
✅ «为Globalink Logistics生成360度背景信息。我们销售AI销售工具:线索生成、inbound线索评分、通话分析。»
✅ «增强БИН 110842011929的信息并准备outreach内容。我们的产品:面向物流企业的SaaS — 文档管理与货物追踪。»
✅ «找到Documentolog的ЛПР并撰写首封邮件。我们销售:基于AI邮件分析的销售团队培训。»
Что НЕ делает этот skill
本技能不支持的功能
- Не отправляет письма (только генерирует драфты)
- Не сохраняет в CRM (только производит markdown)
- Не работает с компаниями вне Казахстана как primary use case (для них adata.kz и goszakup не релевантны — нужен другой набор источников)
- Не делает audio/voice анализ (это отдельная Surfnote-история)
- 不发送邮件(仅生成草稿)
- 不保存到CRM(仅生成markdown)
- 不支持哈萨克斯坦以外的企业作为核心场景(adata.kz和goszakup不适用,需其他数据源)
- 不支持音频/语音分析(属于单独的Surfnote功能)