企业税务服务营销资料包
用途
把"给我一批企业,我要去谈业务"做成标准化流水线:调研涉税信息 → 分层判断商机 → 出可外发的报告与清单 → 配话术 → 汇总成可跟进的表。
产出不是一堆散文件,而是一套按用途分层的物料体系:内部作战底稿、可外发正式文件、敲门用工具、跟进用台账,各归其位,避免"把内部判断当成对外材料"这一最常见错误。
第一条:先判路径
这一步决定后面全部动作,不能跳过。
| 判断依据 | listed(上市公司) | nonlisted(非上市) |
|---|---|---|
| 名单里有证券代码(.SH/.SZ/.BJ) | ✓ | |
| 名单里有统一社会信用代码、注册地 | ✓ | |
| 有公告、年报、问询函可查 | ✓ | |
| 只有工商信息、行业、规模 | ✓ | |
| 混合名单 | 拆成两批,各自跑各自路径 |
两条路径共用:报告骨架、中性化规则、话术结构、台账结构、自评清单库、服务简介、日期口径、全部脚本。
分叉只有三处:信息源、报告定位、分层维度。
| 分叉点 | listed | nonlisted |
|---|---|---|
| 信息源 | 公告、年报、问询函、监管函件 | 欠税公告、处罚公示、裁判文书、信用公示、资质名单(见 references/nonlisted-sources.md) |
| 报告定位 | 税务合规观察报告(对具体公司作观察) | 行业涉税事项对照与自查(讲口径,不臆测对方问题) |
| 分层维度 | 痛点强度 A/B/C | 付费场景 × 可触达性 A/B/C/D |
| 报告编号前缀 | HSTR-<年>-TA- |
HSTR-<年>-NL- |
| 识别码字段 | 证券代码 | 统一社会信用代码 |
为什么非上市不能照搬:公开信息稀薄,硬写"你的风险"就是臆测,法律风险比上市公司版更高。非上市报告只写"这个行业在这些环节要自查",确有其事时才引用公示原文。
何时使用
用户提到以下任何一类情形时触发:
- 给出企业名单/代码/统一社会信用代码(哪怕只是甩一个表格),并提到税务风险、报告、客户、开发、推广
- "帮我分析这几家公司的税务风险"、"出一份风险提示报告"
- "这些企业我该怎么联系"、"写个邮件/话术"
- 需要行业自评清单、服务简介、客户开发台账
- 园区、商会、协会给的一批企业名单,要批量触达
不适用:单一企业的临时税务咨询、税务筹划方案的实体内容撰写、代理记账等日常业务执行。
开工前必须确认的四件事
若用户未说明,按下表取默认值,并在开始前用一句话说明(不要因为缺信息反复追问):
| 项目 | 默认 | 说明 |
|---|---|---|
| 客户类型 | 按名单自动判断 | 判不出就直接问一句,别猜 |
| 风险所属期起点 | 2023-01-01 | 用户指定其他年份则从之 |
| 数据截止日 | 上月最后一日 | 财务税务人员口径。用脚本算,不要手写"今天" |
| 报告日期 | 当天 | 与数据截止日分开写,两者不必相同 |
| 输出位置 | 桌面新建 <省市/园区>企业资料 类文件夹 |
用户指定则以用户为准 |
| 事务所信息 | 读 references/firm-profile.md |
换所时只改这一份文件 |
日期铁律:所属期/信息基础写"截至上月最后一日",报告日期写"当天",全文只出现这两种日期。绝不把当天日期写进所属期。
标准流程
八步,前两步可并行,其余顺序执行。细则见 references/workflow.md(listed)与 references/nonlisted-sources.md(nonlisted)。
- 拆清单:解析名称与识别码,补齐行业、省市、联系人字段(用户给的表格优先,缺的留空不臆造)。非上市必须先拿到统一社会信用代码或注册地区,否则重名会导致调研张冠李戴。
- 并行调研:每批 4 家,子代理并发检索。listed 查公告/问询;nonlisted 查欠税公示/处罚/裁判文书/资质。只写有来源的事实,查不到就写"未检索到公开记录"。
- 分层:listed 见
references/tiering-and-pitch.md第一节,nonlisted 见第二节。分层决定后续所有物料的力度。 - 写内部底稿:每家一份 Markdown,结构见
references/report-templates.md。文件名<序号>_<简称><识别码后6位>.md。 - 派生对外版:跑
scripts/build_publish.py --mode <listed|nonlisted>,自动完成换抬头、加报告编号、等级改"关注程度"、敏感表述中性化、替换 AI 声明为执业声明。中性化必须逐份人工复核。 - 转 Word:跑
scripts/md2docx.sh批量转,内部版与对外版分别落到两个子文件夹。 - 做表格与话术:准备
companies.json(结构见references/xlsx-schema.md),跑scripts/make_xlsx.py --mode <...>。 - 配套物料:按行业匹配自评清单(
references/checklist-index.md),缺的按模板新写;跑scripts/make_profile.py出一页 A4 简介;对全部产出跑scripts/aigc_label_all.sh写合规标识。
交付结构
listed
<交付根目录>/
├── 01 内部底稿(不外发)/ # 含 AI 声明,作战用
├── 02 对外版-税务合规观察报告/ # 可外发,有报告编号与执业署名
├── 配套自评清单/ # 敲门用工具,只讲行业不提对方
├── <事务所>-服务简介.docx # 一页 A4
└── <省市>上市公司信息表.xlsx # 主表 + 每公司 sheet + 话术 + 映射 + 资质
nonlisted
<交付根目录>/
├── 01 内部底稿(不外发)/ # 含公开信息线索与证据强度标注
├── 02 对外版-行业涉税事项对照/ # 可外发,讲口径不讲对方问题
├── 配套自评清单/ # 主力物料,按行业匹配
├── <事务所>-服务简介.docx
└── <园区/区域>企业开发台账.xlsx
命名规范:listed 为 <简称>(<代码>)税务风险提示报告.docx / ...税务合规观察报告.docx;nonlisted 为 <企业简称>-<行业>涉税事项对照与自查.docx。Windows 文件名不得含 *,*ST 一律写作 ST,但报告标题内保留 *ST。
四条不可越过的线
- 对外材料不做负面定性。"造假""虚开""偷税""合规环境薄弱""存在实质问题"不得出现在对外版中。改法:陈述客观事实+文号,判断留给读者;用"收入计量不实""开票真实性核查"替代定性表述。整条删除比改词更安全(如未结刑事案件)。
- 报告不首邮。第一次接触只发行业自评清单或服务简介,不带对方公司的分析结论。给了结论,对方就不需要你了——这也是法律风险最低的做法。
- 非上市必须核重名。同名企业极多,调研前先确认统一社会信用代码或注册地区。把别家的欠税记录写进报告,是最容易出事的一步。核不实的,宁可只写行业分析。
- 资质表述按最新状态。5A 等级、A 类信用等级均为动态评价,对外材料须写"以最新年检/复评为准",投标前另行核实。成立时间有两个口径(沿革 vs 营业执照),投标文件按执照填。
非上市的三条附加约束
- 不承诺"少交/不交"。非上市客户最常问"能不能不交税"。话术里只能给"合法适用优惠、规范处理口径",任何暗示规避的表达都不写、不说。
- 个人信息合规。listed 的董秘电话是法定披露;nonlisted 的财务负责人手机多来自商业数据库。首次触达走企业公开电话、园区渠道、邮箱,不在首条消息直呼个人。
- 证据强度标注。内部底稿每条信息标
【已公示】(有文号可引)/【可核实】(需客户确认)/【行业口径】(无指向性)。对外版只保留前两类,第三类只作行业背景。
脚本
| 脚本 | 用途 | 典型用法 |
|---|---|---|
scripts/build_publish.py |
内部 md → 对外版 md | python3 build_publish.py --src <md目录> --dst <publish目录> --config companies.json --mode nonlisted |
scripts/md2docx.sh |
批量 md → docx | bash md2docx.sh <md目录> <输出目录> <后缀名> |
scripts/make_xlsx.py |
生成客户开发台账 | python3 make_xlsx.py --config companies.json --out 表.xlsx --mode nonlisted |
scripts/make_profile.py |
一页 A4 服务简介 | python3 make_profile.py --config firm.json --out 简介.docx |
scripts/check_pages.py |
估算 A4 排版占页(无 Office 环境时用) | python3 check_pages.py 简介.docx |
scripts/aigc_label_all.sh |
批量写 AIGC 合规标识 | bash aigc_label_all.sh <目录> |
配置样例:assets/companies.example.json(listed)、assets/companies.nonlisted.example.json(nonlisted)、assets/firm.example.json(事务所)。
团队共享
技能是纯文件包,不含可执行依赖,复制即可用:
- 个人使用:放到
~/.workbuddy/skills/(本机所有项目可用) - 团队共享:把整个
tax-client-kit/目录打包发给同事,对方解压到自己的~/.workbuddy/skills/下即可;随工作区共享时放.workbuddy/skills/ - 换事务所:只需改
references/firm-profile.md与assets/firm.example.json中的名称、资质、地址、电话,其余脚本与模板不必动 - 同事首次使用时,让其直接说"给这几家企业做税务资料包",即会命中本技能
- 旧版本
listed-co-tax-client-kit已被本技能取代,装了新版就把旧的删掉,避免两条 description 互相抢占
已知坑(照着避)
- 重生成 docx 会清掉 AIGC 标识,转完必须重打。
- 被预览打开的文件会锁盘,写标识或覆盖时报
WinError 5;先用edsdk.py call close_file file_id=<id>释放。 - 表格子代理改的是编辑器内存,不落盘。xlsx 落盘由主代理用 openpyxl 直接写磁盘并 load 校验。
doc_insert_markdown生成的 docx 没有页面设置,无法保证一页 A4;要精确版式必须手写 OOXML(make_profile.py即如此)。- **md 里不能有代码块(
``)**,否则doc_insert_markdown报HTML segment insertion failed整份失败。要"模板框"效果改用引用块(每行前加> `)。 - Git Bash 的
/c/...路径文档编辑器不认,md2docx.sh内部已转换成C:/...。 - 非上市企业名带括号、行业后缀("上海XX科技(集团)有限公司"),解析文件名时先剥后缀再匹配,否则报告编号会串。
- 环境常见缺 python-docx、pip 不通、COM 被安全策略禁用、无 LibreOffice。脚本一律不依赖这些。
```