#!/usr/bin/env node const fs = require('fs'); const path = require('path'); const ROOT = path.resolve(__dirname, '..', '..', '..'); const OUT_FILE = path.join(ROOT, 'reports', 'ks-lanlingqiuzhi', 'ks-voc-insight-report-v7.html'); const COVER_STATS = [ { num: '7,902', lbl: 'VOC总量' }, { num: '380', lbl: '视频数' }, { num: '19', lbl: '关键词数' }, { num: '9,455万', lbl: '总播放量' }, ]; const KPIS = [ { label: 'VOC总量', value: '7,902', sub: '高质量评论', color: 'var(--amber)' }, { label: '视频覆盖', value: '380', sub: '条视频内容', color: 'var(--green)' }, { label: '情绪方向', value: '负向主导', sub: '风险焦虑最强', color: 'var(--rose)' }, { label: '核心关键词', value: '骗/坑/黑中介', sub: '热度最高', color: 'var(--amber)' }, ]; const KUAIKUAI_DATA = [ { label: '月度服务求职者', value: '超2.5亿人次', note: '截至2024年底' }, { label: '平台蓝领用户规模', value: '约2.5亿人', note: '2024年快聘峰会' }, { label: '全年直播带岗场次', value: '超500万场', note: '2024年全年' }, { label: '日收简历峰值', value: '突破5万份', note: '2025年2月' }, { label: '带动就业机会', value: '4,320万个', note: '截至2024年底' }, ]; const COMPETITORS = [ { name: '快手快聘', type: '直播带岗', users: '2.5亿', trend: '快速增长', color: 'var(--green)', strength: '用户渗透率极高', weak: '信息审核薄弱', barColor: '#00DC82' }, { name: 'BOSS直聘', type: '算法匹配', users: '约3000万', trend: '稳步增长', color: 'var(--blue)', strength: '匹配准确率高', weak: '情绪获得感弱', barColor: '#3B82F6' }, { name: '58同城', type: '分类信息', users: '规模下滑', trend: '持续萎缩', color: 'var(--text-3)', strength: '传统市场份额', weak: '虚假信息泛滥', barColor: '#6B6B6B' }, ]; const RADAR_DATA = [ { label: '信息真实度', ks: 3, boss: 4, wu: 2 }, { label: '薪资透明度', ks: 4, boss: 4, wu: 2 }, { label: '权益保障', ks: 2, boss: 3, wu: 2 }, { label: '匹配准确率', ks: 3, boss: 5, wu: 3 }, { label: '求职低门槛', ks: 5, boss: 4, wu: 3 }, { label: '沟通即时性', ks: 5, boss: 4, wu: 1 }, { label: '信任建立', ks: 4, boss: 3, wu: 1 }, { label: '职业发展', ks: 2, boss: 3, wu: 1 }, { label: '平台审核', ks: 2, boss: 4, wu: 3 }, { label: '情绪获得感', ks: 5, boss: 2, wu: 0 }, ]; const RISK_SIGNALS = [ { label: '骗', value: 252, heat: 514788, color: 'var(--rose)' }, { label: '黑中介', value: 109, heat: 393762, color: 'var(--rose)' }, { label: '坑', value: 92, heat: 375264, color: 'var(--rose)' }, { label: '套路', value: 45, heat: 144842, color: 'var(--orange)' }, { label: '黑厂', value: 43, heat: 123531, color: 'var(--rose)' }, { label: '押金', value: 105, heat: 95543, color: 'var(--amber)' }, { label: '不退', value: 70, heat: 84106, color: 'var(--amber)' }, { label: '陷阱', value: 21, heat: 74090, color: 'var(--orange)' }, ]; const CARE_FACTORS = [ { label: '包吃包住', value: 31, heat: 89190, color: 'var(--green)' }, { label: '工资', value: 186, heat: 89081, color: 'var(--green)' }, { label: '加班费', value: 20, heat: 43986, color: 'var(--blue)' }, { label: '吃住', value: 21, heat: 34060, color: 'var(--green)' }, { label: '住宿', value: 15, heat: 25224, color: 'var(--blue)' }, { label: '当天入职', value: 7, heat: 19264, color: 'var(--purple)' }, { label: '日结', value: 30, heat: 12651, color: 'var(--purple)' }, { label: '发工资', value: 29, heat: 4773, color: 'var(--amber)' }, ]; const CARE_SIGNALS = [ { label: '信息真实不被骗', pct: 85, color: 'var(--rose)' }, { label: '工资按时发放', pct: 72, color: 'var(--green)' }, { label: '包吃包住', pct: 65, color: 'var(--green)' }, { label: '当天入职', pct: 55, color: 'var(--purple)' }, { label: '眼见为实', pct: 48, color: 'var(--blue)' }, ]; const HIGH_LIKED = [ { rank: 1, likes: 6276, expr: '22年差点被骗去当咯咯哒 说什么模特走台下面的人送花就有提成', kw: '入职被坑', hot: true }, { rank: 2, likes: 2209, expr: '去买几个鸡蛋,打碎,放在沙发下面...', kw: '押金不退', hot: true }, { rank: 3, likes: 808, expr: '我在广西就遇到过房东死活不退押金...', kw: '押金不退', hot: false }, { rank: 4, likes: 533, expr: '做的不错,就该那样!有些房东太不像话了!押金不退,还有理由了!', kw: '押金不退', hot: false }, { rank: 5, likes: 491, expr: '无论怎么样,反正黑中介是赚了', kw: '黑中介', hot: false }, { rank: 6, likes: 422, expr: '那暑假工能做什么啊', kw: '入职被坑', hot: false }, { rank: 7, likes: 403, expr: '干的漂亮,支持小伙子不应该判刑...', kw: '黑中介', hot: false }, { rank: 8, likes: 312, expr: '都绑起来了,都投降了,那人还要去喷那个喷雾', kw: '黑中介', hot: false }, { rank: 9, likes: 311, expr: '为什么南方的房东都不退押金', kw: '押金不退', hot: false }, { rank: 10, likes: 228, expr: '只要收身份证的都是,正常的面试只需要填表就行', kw: '黑中介', hot: false }, ]; const SALARY_VOC = [ { likes: 38195, expr: '不给加班费就不加班合理吗?#记录餐饮人生活每一天 #餐饮创业 #现场实拍', kw: '加班费' }, { likes: 21817, expr: '#打工妹 #工资条 #打工妹的日常生活 #电子厂', kw: '发工资' }, { likes: 51, expr: '确实是像你这样说的,跑外卖只要多劳多得,工资不会少发。我坚持了两个月,第3个月的时候我已经摆烂了', kw: '工资靠谱' }, ]; const FOOD_VOC = [ { likes: 84, expr: '我年前就是在洗碗又累又脏,基本上10个小时没得休息,只有吃销10多分钟,我都不想干了', kw: '包吃包住' }, { likes: 17397, expr: '#不体检不收费当天安排 #当天来当天入职安排住宿 #岗位轻松干活不累想工作就来 #包吃包住当天安排住宿', kw: '当天入职' }, { likes: 15768, expr: '距你0.9km #找工作 #包吃包住 #勤杂工 #大龄工', kw: '包吃包住' }, ]; const HYPOTHESES = [ { h: 'H1', title: '快聘是蓝领求职主阵地', count: 596, color: '#F5A623' }, { h: 'H2', title: '直播带岗降低信息不对称', count: 1930, color: '#00DC82' }, { h: 'H3', title: '薪资透明度是核心关切', count: 1842, color: '#8B5CF6' }, { h: 'H4', title: '食宿条件影响求职决策', count: 2194, color: '#FF4D8D' }, { h: 'H5', title: '入职流程便捷性', count: 595, color: '#3B82F6' }, { h: 'H6', title: '求职被骗是普遍焦虑', count: 4435, color: '#EF4444' }, { h: 'H7', title: '黑中介是核心痛点', count: 3705, color: '#F97316' }, { h: 'H8', title: '工资结算方式差异', count: 2417, color: '#6B6B6B' }, ]; const EMOTION_KEYWORDS = [ { word: '"眼见为实"', desc: '消解信息不对称带来的不安全感', emoji: '👁️', color: 'var(--amber)' }, { word: '"老铁推荐"', desc: '以熟人身份降低求职者心理防备', emoji: '🤝', color: 'var(--green)' }, { word: '"来了就是兄弟"', desc: '强调归属感和人情味', emoji: '🏠', color: 'var(--purple)' }, { word: '"有尊严地赚钱"', desc: '回应蓝领的身份焦虑与社会认同诉求', emoji: '💪', color: 'var(--blue)' }, { word: '"不骗人、不套路"', desc: '针对虚假宣传痛点', emoji: '🛡️', color: 'var(--rose)' }, { word: '"独门绝技"', desc: '放大蓝领专业技能价值', emoji: '⚡', color: 'var(--orange)' }, ]; const STRATEGY_RECS = [ { num: '1', title: '建立分级审核体系', desc: '对招聘主播实行分级管理,对粉丝量级大的头部主播实行更审慎的审核标准', color: 'var(--amber)' }, { num: '2', title: '强化"信任基建"投入', desc: '将信息审核能力作为快聘业务的核心基建来建设,建立招聘方信用评级和黑名单机制', color: 'var(--green)' }, { num: '3', title: '深化企业直招占比', desc: '减少对中介端的依赖,提高B端企业直招占比,从根本上降低信息失真风险', color: 'var(--blue)' }, { num: '4', title: '放大"眼见为实"差异化优势', desc: '继续强化直播展示真实工作环境的核心卖点,将车间、宿舍、食堂直播打造为标准化招聘流程', color: 'var(--purple)' }, { num: '5', title: '差异化提升情绪价值', desc: '利用"老铁信任"和"眼见为实"的天然优势,将情绪价值从"内容传播手段"升级为"用户留存壁垒"', color: 'var(--orange)' }, ]; const RISKS = [ { type: '信任透支', desc: '虚假招聘信息泛滥,透支"老铁信任"', prob: '高', impact: '高', strategy: '审核体系升级+信用评级', color: 'var(--rose)' }, { type: '监管压力', desc: '五部门行政指导要求强化审核', prob: '高', impact: '高', strategy: '主动对标"五个到位"', color: 'var(--rose)' }, { type: '竞争跟进', desc: 'BOSS直聘加码蓝领,58同城转型', prob: '中', impact: '中', strategy: '差异化壁垒+效率提升', color: 'var(--amber)' }, { type: '匹配效率低', desc: '流量大但精准度不如算法平台', prob: '中', impact: '中', strategy: '引入精准匹配算法', color: 'var(--amber)' }, ]; const FOUR_P = { product: { title: '产品策略:直播带岗 × 信任基建', points: ['核心产品:快手快聘直播带岗服务', '差异化卖点:眼见为实 / 老铁信任 / 零门槛求职', '产品升级方向:标准化直播带岗流程(车间+宿舍+食堂三景展示)'], tags: ['直播带岗', '老铁信任', '零门槛求职'], }, price: { title: '价格策略:求职者免费 × 企业端付费', points: ['求职者端:完全免费(零门槛核心优势)', '企业端:按效果付费(CPM/CPC/简历投递量)', '主播端:带岗主播抽佣机制'], tags: ['零门槛', '效果付费', 'C端免费'], }, place: { title: '渠道策略:B端入驻 + C端自然渗透', points: ['B端:24万家入驻用人单位,提高企业直招占比', '知名企业合作(创维/顺丰/伯恩光学)', 'C端:2.5亿蓝领月活用户自然覆盖', '40万+专职带岗主播'], tags: ['24万企业', '2.5亿用户', '40万主播'], }, promotion: { title: '促销策略:情绪价值 × 信任传播', points: ['品牌传播:"10个蓝领9个用快手" / "直播带岗,眼见为实"', '内容营销:《来活了老铁!》综艺IP+短剧营销', '政策背书:直播招聘师认证+人社部认可', '老铁文化:"来了就是兄弟"+"有尊严地赚钱"'], tags: ['综艺IP', '老铁文化', '政策背书'], }, }; function esc(s) { return String(s ?? '').replace(/[&<>"']/g, c => ({ '&': '&', '<': '<', '>': '>', '"': '"', "'": ''' }[c])); } function fmtLikes(n) { if (n == null) return '0'; if (n >= 10000) return (n / 10000).toFixed(1).replace(/\.0$/, '') + 'w'; if (n >= 1000) return (n / 1000).toFixed(1).replace(/\.0$/, '') + 'k'; return String(n); } function barChart(rows, accent, maxW = 900) { const max = Math.max(...rows.map(r => r.heat), 1); const barH = 36, gap = 14, padL = 120, padR = 120, padV = 16, W = maxW; const totalH = rows.length * (barH + gap) + padV * 2; return `
${rows.map((r, i) => { const y = padV + i * (barH + gap); const w = Math.max((r.heat / max) * (W - padL - padR), 6); return `${esc(r.label)} ${esc(r.heat.toLocaleString())}`; }).join('')}
`; } function careBarChart(rows, maxW = 800) { const max = Math.max(...rows.map(r => r.pct), 1); const barH = 36, gap = 14, padL = 140, padR = 100, padV = 16, W = maxW; const totalH = rows.length * (barH + gap) + padV * 2; return `
${rows.map((r, i) => { const y = padV + i * (barH + gap); const w = Math.max((r.pct / 100) * (W - padL - padR), 8); return `${esc(r.label)} ${r.pct}%`; }).join('')}
`; } function competitorBarChart() { const W = 800, barH = 48, gap = 20, padV = 20; const rows = COMPETITORS; const max = 25000; const totalH = rows.length * (barH + gap) + padV * 2; return `
${rows.map((r, i) => { const y = padV + i * (barH + gap); const barW = r.users === '规模下滑' || r.users === '约3000万' ? (r.users === '规模下滑' ? 60 : (3000 / max) * (W - 160 - 120)) : (25000 / max) * (W - 160 - 120); return `${esc(r.name)} ${esc(r.users)} ${esc(r.type)} · ${esc(r.trend)}`; }).join('')}
`; } function radarChart() { const cx = 200, cy = 190, r = 130; const labels = RADAR_DATA.map(d => d.label); const ksVals = RADAR_DATA.map(d => d.ks); const bossVals = RADAR_DATA.map(d => d.boss); const wuVals = RADAR_DATA.map(d => d.wu); const n = labels.length; const step = 2 * Math.PI / n; const toXY = (v, i, R = r) => ({ x: cx + R * v * Math.cos(i * step - Math.PI / 2), y: cy + R * v * Math.sin(i * step - Math.PI / 2) }); const ksPath = ksVals.map((v, i) => toXY(v / 5, i)).map((p, i) => (i === 0 ? 'M' : 'L') + p.x + ',' + p.y).join('') + 'Z'; const bossPath = bossVals.map((v, i) => toXY(v / 5, i)).map((p, i) => (i === 0 ? 'M' : 'L') + p.x + ',' + p.y).join('') + 'Z'; const wuPath = wuVals.map((v, i) => toXY(v / 5, i)).map((p, i) => (i === 0 ? 'M' : 'L') + p.x + ',' + p.y).join('') + 'Z'; const gridPath = [1, 0.5, 0.25].map(s => [0, 1, 2, 3, 4].map(i => toXY(s, i)).map((p, i) => (i === 0 ? 'M' : 'L') + p.x + ',' + p.y).join('') + 'Z').join(''); let labelHTML = labels.map((l, i) => { const p = toXY(1.15, i); return `${esc(l)}`; }).join(''); return `
${labelHTML} 快手 BOSS直聘 58同城
`; } function voiceCard(comment, isHot = false) { const borderColor = isHot ? 'var(--amber)' : 'var(--rose)'; const tagBg = isHot ? 'rgba(245,166,35,0.1)' : 'rgba(255,77,141,0.1)'; const tagColor = isHot ? 'var(--amber)' : 'var(--rose)'; return `
快手用户 ♥ ${fmtLikes(comment.likes)}
"${esc(comment.expr)}"
${esc(comment.kw)}
`;} function insightBanner(num, title, body, dataPoints) { const dps = dataPoints.map(dp => `
${esc(dp.num)}
${esc(dp.lbl)}
`).join(''); return `

${title}

${body}

${dps}
`; } function hypothesisBarChart() { const max = Math.max(...HYPOTHESES.map(h => h.count)); const barH = 28, gap = 12, padL = 100, padR = 100, padV = 16, W = 800; const totalH = HYPOTHESES.length * (barH + gap) + padV * 2; return `
${HYPOTHESES.map((h, i) => { const y = padV + i * (barH + gap); const w = Math.max((h.count / max) * (W - padL - padR), 8); return `${esc(h.h)} ${h.count.toLocaleString()}`; }).join('')}
`; } function fourPGrid() { const p = FOUR_P; const items = [ { title: p.product.title, points: p.product.points, tags: p.product.tags, color: 'var(--blue)' }, { title: p.price.title, points: p.price.points, tags: p.price.tags, color: 'var(--green)' }, { title: p.place.title, points: p.place.points, tags: p.place.tags, color: 'var(--amber)' }, { title: p.promotion.title, points: p.promotion.points, tags: p.promotion.tags, color: 'var(--purple)' }, ]; return `
${items.map(item => `
${esc(item.title)}
${item.points.map(pt => `
• ${esc(pt)}
`).join('')}
${item.tags.map(t => `${esc(t)}`).join('')}
`).join('')}
`; } const html = ` 快手快聘 · VOC 深度洞察报告 v7
01
09
滚动切换
VOC 深度洞察报告 · v7
快手快聘

"10个蓝领,9个都用快手"——蓝领求职生态与快聘战略洞察

${COVER_STATS.map(s => `
${esc(s.num)}
${esc(s.lbl)}
`).join('')}
CHAPTER 01

执行摘要

核心问题与机会分析

${KPIS.map(k => `
${esc(k.label)}
${esc(k.value)}
${esc(k.sub)}
`).join('')}
核心洞察
蓝领求职最担心什么?最看重什么?

最强焦虑不是"工资低",而是"怕被骗"——信息不真实、被坑、黑中介、押金不退、工资被克扣

🛡️
最强焦虑:被骗

"骗/黑中介/坑"相关风险词热度突破100万,VOC占比最高

💰
最强诉求:确定性

工资真实、发薪稳定、包吃包住、当天入职、能快速安顿

🤝
情绪核心:信任

"老铁文化"+"眼见为实"是快聘最难被竞品复制的竞争壁垒

CHAPTER 02

快聘生态现状

市场规模、竞争格局与战略位势

${KUAIKUAI_DATA.map(d => `
${esc(d.label)}
${esc(d.value)}
${esc(d.note)}
`).join('')}
战略定位
"10个蓝领9个用快手——直播带岗,眼见为实"

快聘日活几十万简历,内部仅次于电商;2.5亿蓝领月活是最大壁垒;但信息审核弱是最大短板

${COMPETITORS.map(c => `
${esc(c.name)}
${esc(c.strength)}
用户:${esc(c.users)} · ${esc(c.type)}
${esc(c.weak)}
`).join('')}
📊 平台竞争要素雷达图
${radarChart()}
CHAPTER 03

蓝领求职心理洞察

最担心什么?最看重什么?

TOP 焦虑来源(按热度)
${barChart(RISK_SIGNALS.slice(0, 6), 'var(--rose)')}
TOP 诉求来源(按热度)
${barChart(CARE_FACTORS.slice(0, 6), 'var(--green)')}
${insightBanner('01', '蓝领求职者最需要的是确定性——确定工作是真的、工资会发不会被坑、能快速安顿下来', '情绪价值的核心不是娱乐,而是"确定性":靠谱、真实、放心、少踩坑。', [ { num: '85%', lbl: '担心信息不真实' }, { num: '72%', lbl: '关注工资按时发放' }, { num: '65%', lbl: '关注包吃包住' }, ])}
🛡️
焦虑1:信息虚假

承诺月薪近万,实际到手4000多;薪资货不对版是头号痛点

💰
焦虑2:押金陷阱

预缴押金/培训费后失联,押金不退是高频次焦虑

🤝
焦虑3:权益保障

不签合同、不上保险,维权举证难、责任界定难

CHAPTER 04

核心关切:薪资与权益

工资、食宿、入职便捷性

薪资权益关键词热度
${barChart(CARE_FACTORS, 'var(--amber)')}
高赞薪资VOC
${SALARY_VOC.map(v => voiceCard(v, false)).join('\n')}
${insightBanner('02', '薪资透明度是核心关切,但最核心的购买点是"确定性"——包吃包住+当天入职+不发愁', '蓝领求职者决策链极短,追求"今天看、明天就上班"。快聘能快速集结大批求职者,春节高峰期效果尤为显著。', [ { num: '89,190', lbl: '"包吃包住"热度' }, { num: '89,081', lbl: '"工资"热度' }, { num: '19,264', lbl: '"当天入职"热度' }, ])}
食宿条件VOC
${FOOD_VOC.map(v => voiceCard(v, false)).join('\n')}
TOP10 高赞评论
${HIGH_LIKED.slice(0, 5).map(v => voiceCard(v, v.hot)).join('\n')}
CHAPTER 05

风险感知:被骗焦虑

黑中介、押金陷阱、入职被套路

黑中介 · 最强风险信号

热度 393,762 · 109条命中
  • "万恶之源 #黑中介的噩梦,只要我不努力,你就过不上你想要的生活" 热度203,219
  • "#严厉打击黑中介 #黑中介骗了多少中国同胞" 热度61,984
  • "第一次进厂是通过直播,就是黑中介..." ♥226

押金陷阱 · 高频次焦虑

热度 95,543 · 105条命中
  • "不退租客押金你是心高气傲,被租客报复你是生死难料" 热度55,223
  • "去买几个鸡蛋,打碎,放在沙发下面..." ♥2,209(TOP2高赞)
  • "我在广西就遇到过房东死活不退押金" ♥808

入职被坑 · 薪资货不对版

热度 375,264 · 92条命中
  • "刚开始签18块/时,干了1个月只拿6块/时,只拿了1200" 热度42,121
  • "只要收身份证的都是,正常的面试只需要填表就行" ♥228
  • "地铁安检我知道,找中介还不如直接去地铁口问" ♥224
TOP10 高赞风险评论
${HIGH_LIKED.map(v => voiceCard(v, v.hot)).join('\n')}
风险关键词完整排行
${barChart(RISK_SIGNALS, 'var(--rose)')}
CHAPTER 06

平台信任机制

老铁文化、直播带岗、情绪关键词体系

${EMOTION_KEYWORDS.map(e => `
${e.emoji}
${esc(e.word)}

${esc(e.desc)}

`).join('')}
${insightBanner('06', '情绪价值是双刃剑——真实故事获得关注,但虚假摆拍正在侵蚀信任基础', '外卖骑手、快递小哥、网约车司机因"接地气""高共鸣"属性,成为短视频平台虚假摆拍重灾区。平台算法无差别推荐,使虚假内容获得杠杆式传播。', [ { num: '★★★★★', lbl: '情绪获得感优势' }, { num: '⚠️高风险', lbl: '虚假摆拍泛滥' }, { num: '五部门', lbl: '行政指导监管' }, ])}
标杆案例 · 快手《来活了老铁!》
快手联合山东卫视推出的首档蓝领求职综艺IP

25个热搜榜单(微博主榜6个),最高总榜TOP21,完成度625%。站外曝光量原定2.5亿,实际完成3.26亿,完成度130%。围绕"技能向+娱乐向+社会向"三个维度展开。

技能向 娱乐向 社会向
老铁信任体系
• 熟人推荐式信任
• 主播与粉丝长期关系积累
• 评论区实时互动答疑
• "来了就是兄弟"文化
直播带岗信任机制
• 车间直播展示
• 宿舍直播展示
• 食堂直播展示
• 眼见为实消除信息不对称
CHAPTER 07

机会与建议

快聘优势强化、风险应对、战略方向

${STRATEGY_RECS.slice(0, 4).map(r => `
${esc(r.num)}
${esc(r.title)}

${esc(r.desc)}

`).join('')}
⚠️ 风险矩阵
${RISKS.map(r => ``).join('')}
风险类型描述概率影响应对策略
${esc(r.type)} ${esc(r.desc)} ${esc(r.prob)} ${esc(r.impact)} ${esc(r.strategy)}
📋 五部门行政指导要求
资质审核到位 — 对招聘方资质进行核验
信息明示到位 — 招聘信息完整透明
内容审核到位 — 虚假信息严格过滤
风险防范到位 — 建立风险预警机制
处置管控到位 — 违规内容快速处置
CHAPTER 08

快聘 4P 营销策略

产品 / 价格 / 渠道 / 促销

${fourPGrid()} ${insightBanner('08', '基于VOC的内容策略:围绕"确定性"构建传播矩阵', '最强购买点:工资真实、发薪稳定、包吃包住,当天入职。最强焦虑:被骗、被坑、黑中介、押金不退。内容方向应围绕"真实岗位展示+主播真实推荐+快速入职承诺"。', [ { num: '20+', lbl: '情绪关键词体系' }, { num: '3', lbl: '核心传播维度' }, { num: '1个', lbl: '综艺IP标杆' }, ])}
📊 H1-H8 假设验证
${hypothesisBarChart()}
CHAPTER 09

VOC 证据锚点

可直接引用的用户原声

🔥 薪资焦虑类高赞VOC
${SALARY_VOC.map(v => voiceCard(v, false)).join('\n')}
🔥 风险担忧类高赞VOC TOP10
${HIGH_LIKED.map(v => voiceCard(v, v.hot)).join('\n')}
💡 核心洞察
情绪价值的核心不是娱乐,而是"确定性"

快手在蓝领求职场景中的优势,来自内容触达、直播解释、即时互动和高频决策场景的天然匹配。需求高频、风险敏感、决策链短、转化诉求强。

`; fs.writeFileSync(OUT_FILE, html, 'utf-8'); console.log('HTML report generated:', OUT_FILE); console.log('File size:', (fs.statSync(OUT_FILE).size / 1024).toFixed(1), 'KB');