摘要:B2B销售团队在客户开发中常面临数据源分散、意向判断主观、竞品动态难追踪等问题。本文介绍一种基于工商公开数据、招投标信息及招聘动态的客源筛选与意向评分系统,阐述其数据采集、特征工程、评分模型及竞品监测模块的设计思路,并给出核心代码示例,为开发者构建类似工具提供参考。
1. 业务背景与问题分析
在B2B销售场景中,销售人员平均每天花费数小时在不同平台手动筛选企业信息、查找联系方式。这一过程存在三个典型效率瓶颈:
-
数据源碎片化:企业工商信息、招投标公告、招聘动态分散于多个公开平台,手动汇聚耗时费力。
-
意向判断模糊:获取企业名单后,缺乏量化指标判断采购紧迫性,导致跟进优先级混乱。
-
竞品动态盲区:无法及时获知竞争对手的客户流失或负面口碑,错失切入时机。
为解决上述问题,本文设计了一套基于公开数据的客源筛选与意向评分系统,将分散的公开信息结构化,并通过模型输出可量化的采购意向分,辅助销售团队提升工作效率。
2. 系统总体架构
系统采用微服务架构,核心模块如下:
-
数据采集层:对接国家企业信用信息公示系统、招标采购公告平台、主流招聘网站等公开数据源的合规API(非爬虫模式)。
-
特征工程层:对企业工商信息、动态信号(如招聘、招标、融资、经营范围变更)进行清洗、标准化与结构化存储。
-
筛选引擎:支持多维度条件组合查询,使用Elasticsearch实现毫秒级检索。
-
评分模型:基于规则与轻量级机器学习(XGBoost)计算采购意向分。
-
竞品分析模块:通过公开的中标公告、客户案例、用户评论识别竞品客户流向。
数据流简图如下:
text
[公开数据源] → [数据清洗/标准化] → [企业画像库(ES)] → [筛选API] → [评分服务] → [结果输出]
↘ [竞品信号监测] → [事件生成]
3. 核心模块实现
3.1 客源筛选引擎
系统支持以JSON格式提交筛选条件,示例如下:
json
{
"region": "深圳",
"industry": ["电子元器件制造业", "智能消费设备制造"],
"min_capital": 500,
"dynamic_signals": {
"has_recruitment": true,
"has_bidding": true,
"has_funding": false
},
"page": 1,
"page_size": 100
}
后端使用Elasticsearch构建多字段索引,关键代码片段:
python
from elasticsearch import Elasticsearch
es = Elasticsearch(["http://localhost:9200"])
def search_companies(filters):
must_conditions = [
{"term": {"region": filters["region"]}},
{"terms": {"industry": filters["industry"]}},
{"range": {"reg_capital": {"gte": filters["min_capital"]}}}
]
if filters["dynamic_signals"].get("has_recruitment"):
must_conditions.append({"exists": {"field": "recruitment_3months"}})
if filters["dynamic_signals"].get("has_bidding"):
must_conditions.append({"exists": {"field": "bidding_6months"}})
query = {"bool": {"must": must_conditions}}
resp = es.search(index="company_profile", body={"query": query, "size": filters["page_size"]})
return [hit["_source"] for hit in resp["hits"]["hits"]]
查询响应时间控制在200ms以内,筛选结果包含企业名称、法定代表人、注册地址、公开联系方式及最新动态标签。
3.2 采购意向评分模型
为辅助判断跟进优先级,系统对每家企业计算采购意向分(0-100)。特征选取如下:
| 特征类型 | 分值 | 说明 |
|---|---|---|
| 近6个月融资事件 | +25 | 公开融资记录 |
| 近30天发布招标 | +20 | 招标公告 |
| 近90天招聘采购/技术岗 | +15 | 招聘动态 |
| 近180天经营范围变更匹配 | +10 | 变更后包含目标产品关键词 |
| 竞品负面舆情 | +15 | 公开平台出现竞品不良评价 |
模型采用XGBoost二分类(以历史成交客户为正样本),输出概率后线性映射至0-100分。训练数据可使用企业内部脱敏成交记录。代码示例:
python
import xgboost as xgb
# 假设 X_train, y_train 已准备
model = xgb.XGBClassifier()
model.fit(X_train, y_train)
def predict_intent(features):
prob = model.predict_proba([features])[0][1]
return int(prob * 100)
评分结果附加至企业画像,销售团队可按分数降序制定跟进计划。
3.3 竞品客户流向监测
竞品分析模块通过公开渠道(行业媒体、招标中标公告、企业新闻)识别竞品的客户获取或流失信号。具体逻辑:
-
中标公告监测:若竞品中标某企业项目,标记该企业为"竞品已签约客户"。
-
用户抱怨抓取:从公开技术社区、问答平台提取提及竞品负面评价的帖子,识别出相关企业,生成"潜在替代机会"。
-
岗位招聘线索:竞品客户开始招聘"系统替换""替代方案"相关岗位时,可能预示供应商更换。
以上信号通过消息队列推送到终端,并附带建议的沟通切入点。
4. 性能与合规设计
-
性能目标:单节点支持每秒处理500条筛选请求,XGBoost推理耗时<30ms/企业。
-
数据合规:所有数据来自企业自主公示或政府公开平台,不采用爬虫、破解等非法手段;不采集个人手机号等隐私字段。
-
安全措施:API采用JWT认证 + HTTPS传输,客户数据每日备份。
5. 总结
本文介绍了一种基于公开工商数据、招投标及招聘信息的B2B客源筛选与意向评分系统,给出了数据采集架构、Elasticsearch查询实现、XGBoost评分模型及竞品监测逻辑。该系统可辅助销售团队降低手动筛选耗时,提升意向判断的客观性。开发者可根据自身业务场景调整特征权重与模型参数,也可在此基础上扩展更多公开数据源。对于希望快速构建类似工具的技术团队,本文提供的架构和代码片段可作参考起点。