Source Research Playbook / 来源补强手册
这个项目优先补“可复核来源”,而不是为了数量扩表。data/source-leads.csv 是来源种子池:它记录每个方向至少 5 个公开入口,帮助维护者继续发现公司、招聘主页、活动和项目线索。
当前来源补强状态
data/source-leads.csv已覆盖 9 个方向。- 每个方向至少 5 条公开招聘平台关键词入口。
- 这些入口只用于发现候选,不直接证明某家公司正在招聘。
- 当前缺口:45 条来源种子仍以招聘平台入口为主。下一步不要继续堆搜索页,而要为每个方向补至少 1 条非招聘来源入口,例如高校、园区、公共资源、政府、行业机构、活动平台或开源/技术社区入口。
- 发现具体公司后,仍需补到
data/companies.json,并保留公司官网、官方页、招聘主页或政府公告等 item-level 来源。
9 个方向
- 软件开发 / 外包
- 系统集成 / 政企信息化
- AI / 大数据
- 农业数字化
- 医疗信息化
- 文旅科技
- 金融科技
- 网络安全
- 通信 / ICT
如何使用 data/source-leads.csv
- 打开某个方向下的公开入口。
- 只记录能打开的公司主页、官方招聘主页、官网、政府公告或活动详情页。
- 不要把平台搜索结果直接当作公司已核验信息。
- 不要把“看到招聘平台页面”直接写成
internship或hiring。 - 如果只有招聘平台公司主页,保守写:
source_type: recruiting_platform
verification_status: community_pending
opportunities: ["unknown"]
confidence_score: 3
- 如果进一步找到官网或官方页,再升级为:
source_type: official_site / official_profile
verification_status: verified / official_page
confidence_score: 4-5
招聘来源边界
可以收录:
- 公司在招聘平台上的公开公司主页。
- 平台搜索入口,作为来源种子。
- 公司官网上的“加入我们 / 招贤纳士 / 社会招聘 / 校园招聘”页面。
不要收录:
- 截图里的岗位。
- 无法公开打开的岗位链接。
- 私人内推二维码、私人微信、私人手机号。
- 无法确认发布时间的“正在招聘”判断。
社群和活动来源边界
data/communities.csv 与 data/events.csv 目前收录的是公开入口和搜索入口,不代表已经确认某个社群长期活跃,也不代表当前有具体活动。
后续把具体活动入库时,至少需要:
- 活动名称
- 主办方
- 活动城市或线上/线下说明
- 活动详情页
- 发布日期或活动日期
status标记为upcoming/past/source_search_page
7 天补来源优先级
Day 1:先补官网
从 COMPANIES.md 的优先核验清单开始,把 community_pending 记录逐条查官网或官方主页。
Day 2:补公开招聘主页
使用 data/source-leads.csv,只补公司主页或招聘主页,不补岗位承诺。
Day 3:补高校和学生入口
从高校学院、就业网、创新创业学院、实验室、学生技术社团公开页开始。
Day 4:补活动入口
从活动行、百格活动、科技厅通知、园区活动页里找技术、AI、数据、创业活动。
Day 5:补政府项目来源
从公共资源交易、政府采购、科技项目通知中找信息化、软件、数据平台、智慧城市项目。
Day 6:补行业缺口
优先补农业数字化、医疗信息化、文旅科技、网络安全这些信息更分散的方向。
Day 7:清理和生成
运行:
npm run generate:companies
npm run export:csv
npm run validate
然后把新增来源和仍待复核项写进 Issue 或更新日志。
不要为了看起来完整而牺牲可信度
这个项目的价值不是“公司越多越好”,而是让每条线索都能回到公开来源。不能确认就标 community_pending;来源弱就写 confidence_score: 2-3;没有招聘证据就保留 opportunities: ["unknown"]。
报道与公司库之间的核验队列
data/radar-review.json 记录已有公开 RSS 快照中的报道及核验状态。它不是公司表:标题提及不证明主体全称、当地业务、正在招聘或合作意向,名称匹配也不会自动收录。公司搜索无结果时,可以转到首页的“报道核验进度”。
本地导入入口是 npm run radar:review -- --snapshot "$HOME/xin system/data/kunming-it-radar/latest.json"。这是本机已有快照的导入,不联网、不抓详情、不重新运行新闻采集;只接受约定的公开快照路径。随后运行 npm run generate:site-data、npm run validate 和 npm run build:site,将核验进度编入静态页面。
needs_review:等待识别主体、核对官网等来源。自动匹配仅提供提示。linked:核对公开来源后,人工关联到公司库中的现有 ID。no_company_in_title:本次逐条阅读标题未见明确公司名,不代表正文没有公司。reviewed_not_added:已完成本条来源分流,暂未纳入公司主库。必须保留原因和公开证据;outside_scope为本条不提供本地技术公司收录依据,company_candidate为候选主体仍待正式建档,evidence_insufficient为现有证据不足。此状态不是公司核验通过,也不等于报道虚假。
复核决定保存于 data/radar-review-decisions.json,以公开 RSS URL 的稳定 ID 为键。每条决定绑定完整 title、sourceUrl,记录 decision、companyIds、reviewedAt、reason 和 evidenceUrls;候选另记 candidateNames,不会自动创建公司。不要写私下认识的关系、联系方式或未核实判断。确认新公司后先更新主数据并完成生成、校验,再写关联决定、重新导入队列;简称写入公司的公开 aliases,用于检索与名称匹配。
重复导入相同输入不会写文件。未处理的旧报道会保留;最多保存 36 条,满额时导入失败并保留旧队列,等待人工处理后再接收新快照。快照回退、样本数据、危险链接、敏感文本和无效关联均会阻止导入。新闻抓取失败时不导入、不重试。队列的快照日期不等于报道日期,关联到公司也不代表报道内容已获全面验证。
复核留痕与自动刷新
决定台账长期保留已处理报道的标题、原始入口、结论和依据,不随周快照轮转截断。只有与来源和已复核标题精确匹配的决定才会释放旧队列位置;同一 URL 的未知新标题会重新进入待复核。已逐个读过的完整标题变体可显式列入 reviewedTitles,不自动删除媒体尾缀或模糊套用结论。
npm run validate 会只读检查队列计数、决定、来源绑定和展示理由是否一致。导入相同快照应不写文件。新的未处理报道仍须保留,36 条容量保护与抓取失败保护继续生效;不会以自动批准公司、清空旧项或提高上限保持页面更新。处理候选时应补充主体、地区和技术业务来源,再按公司主库规则正式建档。
2026-11-01 复核了原队列 35 条待办(28 条标题未见公司、7 条已复核暂不收录),并补审 10 月 26 日既有快照中新增的 33 条。当前快照为 36 条,其中 29 条标题未见公司、7 条已复核暂不收录、0 条待复核。公司主库保持 75 条;这些计数是该次来源复核快照,不代表后续每周无需复核。逐条依据见决定台账。