CrawlForge
首页Playground应用场景集成价格文档博客
用 CrawlForge 构建 lead enrichment 引擎
Use Cases
返回博客
应用场景

用 CrawlForge 构建 lead enrichment 引擎

C
CrawlForge Team
工程团队
2026年4月14日
阅读时长 10 分钟

本页内容

你的销售团队每周会收到 200 条新线索。每条线索只有一个姓名、一个邮箱,或许还有一个公司名。在销售代表能进行有意义的触达之前,他们需要研究这家公司的规模、技术栈、近期新闻和潜在契合度。这项研究每条线索要花 10 到 15 分钟——每周超过 30 个小时耗在 Google 和 LinkedIn 上,而不是用来销售。

lead enrichment 让这项研究自动化。CrawlForge 从公司官网、社交资料和新闻来源抓取公开的商业数据,在几秒内构建出完整的线索画像。本指南将向你展示如何构建一个每小时处理 200 多条线索的 lead enrichment 引擎。

目录

  • 什么是 lead enrichment
  • 架构总览
  • 步骤 1:公司网站分析
  • 步骤 2:技术栈检测
  • 步骤 3:公司情报采集
  • 步骤 4:构建增强 pipeline
  • credits 成本分析
  • 结果与收益
  • 常见问题

什么是 lead enrichment

lead enrichment 是指在基础线索数据(姓名、邮箱、公司)之上补充额外信息的过程,帮助销售团队甄别并优先排序潜在客户。增强后的数据通常包括:

数据项来源销售价值
公司规模关于我们/团队页资格甄别
行业网站内容客户细分
技术栈页面源码分析产品契合度
近期新闻搜索结果开场话题
融资状态新闻稿预算信号
内容主题博客分析痛点映射

什么是 lead enrichment?它是把商业情报数据追加到原始线索记录上的自动化过程,把一个简单的邮箱地址转化为销售团队可以立即据以行动的完整潜客画像。

CrawlForge 最适合需要从公司官网获取实时数据的 lead enrichment 团队,因为不同于可能滞后数周的数据库提供商(ZoomInfo、Clearbit),CrawlForge 抓取实时页面以获取最新信息。

架构总览

该增强引擎使用五个 CrawlForge 工具:

组件工具Credits用途
网站内容extract_content2公司描述与定位
元数据extract_metadata1标题、描述、社交资料
页面源码fetch_url1从 HTML 检测技术
公司调研search_web5近期新闻、融资、社交
分析analyze_content3行业分类与主题

步骤 1:公司网站分析

先从公司官网提取核心公司信息。

Typescript
import { Client } from '@modelcontextprotocol/sdk/client/index.js';

const client = new Client({
  name: 'lead-enrichment',
  version: '1.0.0',
});

interface CompanyProfile {
  domain: string;
  name: string;
  description: string;
  industry: string;
  topics: string[];
  socialLinks: {
    twitter?: string;
    linkedin?: string;
    github?: string;
  };
  estimatedSize: string;
}

async function analyzeCompanyWebsite(
  domain: string
): Promise<CompanyProfile> {
  // Extract main page content
  const contentResult = await client.callTool({
    name: 'extract_content',
    arguments: { url: `https://${domain}` },
  });

  const content = JSON.parse(contentResult.content[0].text);

  // Get metadata including social links
  const metaResult = await client.callTool({
    name: 'extract_metadata',
    arguments: { url: `https://${domain}` },
  });

  const meta = JSON.parse(metaResult.content[0].text);

  // Analyze content for industry and topics
  const analysis = await client.callTool({
    name: 'analyze_content',
    arguments: { text: content.content },
  });

  const analyzed = JSON.parse(analysis.content[0].text);

  // Try to get team page for company size estimation
  let estimatedSize = 'Unknown';
  try {
    const teamPage = await client.callTool({
      name: 'extract_content',
      arguments: { url: `https://${domain}/about` },
    });
    const teamContent = JSON.parse(teamPage.content[0].text);
    // Simple heuristic: count mentions of team-related terms
    const teamMentions = (teamContent.content.match(/team|employee|people|staff/gi) || []).length;
    if (teamMentions > 20) estimatedSize = '100+';
    else if (teamMentions > 10) estimatedSize = '50-100';
    else if (teamMentions > 5) estimatedSize = '10-50';
    else estimatedSize = '1-10';
  } catch {
    // About page might not exist; that is fine
  }

  return {
    domain,
    name: meta.title?.split(/[|\-]/)[0]?.trim() || domain,
    description: meta.description || analyzed.summary || '',
    industry: analyzed.topics?.[0] || 'Unknown',
    topics: analyzed.topics || [],
    socialLinks: {
      twitter: meta.twitterHandle,
      linkedin: meta.linkedinUrl,
      github: meta.githubUrl,
    },
    estimatedSize,
  };
}

步骤 2:技术栈检测

通过分析公司网站的 HTML 源码和响应头来检测它所使用的技术。

Typescript
interface TechStack {
  frontend: string[];
  analytics: string[];
  marketing: string[];
  infrastructure: string[];
  cms: string[];
}

async function detectTechStack(domain: string): Promise<TechStack> {
  const result = await client.callTool({
    name: 'fetch_url',
    arguments: {
      url: `https://${domain}`,
      timeout: 10000,
    },
  });

  const page = JSON.parse(result.content[0].text);
  const html = page.body || '';
  const headers = page.headers || {};

  const stack: TechStack = {
    frontend: [],
    analytics: [],
    marketing: [],
    infrastructure: [],
    cms: [],
  };

  // Frontend framework detection
  if (html.includes('__next') || html.includes('_next/static')) {
    stack.frontend.push('Next.js');
  }
  if (html.includes('__nuxt')) stack.frontend.push('Nuxt.js');
  if (html.includes('react')) stack.frontend.push('React');
  if (html.includes('vue')) stack.frontend.push('Vue.js');
  if (html.includes('tailwindcss') || html.includes('tailwind')) {
    stack.frontend.push('Tailwind CSS');
  }

  // Analytics detection
  if (html.includes('gtag') || html.includes('google-analytics')) {
    stack.analytics.push('Google Analytics');
  }
  if (html.includes('segment.com') || html.includes('analytics.js')) {
    stack.analytics.push('Segment');
  }
  if (html.includes('mixpanel')) stack.analytics.push('Mixpanel');
  if (html.includes('hotjar')) stack.analytics.push('Hotjar');

  // Marketing tools
  if (html.includes('hubspot')) stack.marketing.push('HubSpot');
  if (html.includes('intercom')) stack.marketing.push('Intercom');
  if (html.includes('drift')) stack.marketing.push('Drift');
  if (html.includes('mailchimp')) stack.marketing.push('Mailchimp');

  // Infrastructure
  const server = headers['server'] || headers['x-powered-by'] || '';
  if (server.includes('Vercel') || html.includes('vercel')) {
    stack.infrastructure.push('Vercel');
  }
  if (server.includes('cloudflare') || headers['cf-ray']) {
    stack.infrastructure.push('Cloudflare');
  }
  if (html.includes('amazonaws')) stack.infrastructure.push('AWS');

  // CMS
  if (html.includes('wp-content')) stack.cms.push('WordPress');
  if (html.includes('shopify')) stack.cms.push('Shopify');
  if (html.includes('webflow')) stack.cms.push('Webflow');

  return stack;
}

这项检测只需一次 fetch_url 调用(1 credit)——使其在批量 lead enrichment 中极具成本效益。

步骤 3:公司情报采集

使用 search_web 查找近期新闻、融资公告和市场背景。

Typescript
interface CompanyIntel {
  recentNews: Array<{ title: string; url: string; snippet: string }>;
  fundingInfo: string;
  competitorMentions: string[];
}

async function gatherIntelligence(
  companyName: string,
  domain: string
): Promise<CompanyIntel> {
  // Search for recent company news
  const newsResult = await client.callTool({
    name: 'search_web',
    arguments: {
      query: `"${companyName}" OR "${domain}" news funding`,
      limit: 10,
      time_range: 'month',
    },
  });

  const news = JSON.parse(newsResult.content[0].text);

  return {
    recentNews: (news.results || []).slice(0, 5).map(
      (r: { title: string; url: string; snippet: string }) => ({
        title: r.title,
        url: r.url,
        snippet: r.snippet,
      })
    ),
    fundingInfo: news.results?.find(
      (r: { title: string }) =>
        r.title.toLowerCase().includes('funding') ||
        r.title.toLowerCase().includes('raises') ||
        r.title.toLowerCase().includes('series')
    )?.snippet || 'No recent funding news found',
    competitorMentions: news.results
      ?.filter((r: { title: string }) =>
        r.title.toLowerCase().includes('vs') ||
        r.title.toLowerCase().includes('alternative')
      )
      .map((r: { title: string }) => r.title) || [],
  };
}

步骤 4:构建增强 pipeline

把所有增强步骤组合进一个能批量处理线索的 pipeline。

Typescript
interface Lead {
  email: string;
  name: string;
  company?: string;
}

interface EnrichedLead extends Lead {
  companyProfile: CompanyProfile;
  techStack: TechStack;
  intelligence: CompanyIntel;
  enrichedAt: string;
  qualityScore: number;
}

function extractDomain(email: string): string {
  return email.split('@')[1];
}

function calculateLeadScore(enriched: Omit<EnrichedLead, 'qualityScore'>): number {
  let score = 0;

  // Company has a real website with content
  if (enriched.companyProfile.description.length > 50) score += 20;

  // Company uses modern tech stack (potential product fit)
  if (enriched.techStack.frontend.length > 0) score += 15;

  // Company uses analytics/marketing tools (signals budget)
  if (enriched.techStack.analytics.length > 0) score += 10;
  if (enriched.techStack.marketing.length > 0) score += 15;

  // Recent news/activity
  if (enriched.intelligence.recentNews.length > 0) score += 10;

  // Funding signals
  if (!enriched.intelligence.fundingInfo.includes('No recent')) score += 20;

  // Company size signals
  const size = enriched.companyProfile.estimatedSize;
  if (size === '50-100' || size === '100+') score += 10;

  return Math.min(score, 100);
}

async function enrichLeads(leads: Lead[]): Promise<EnrichedLead[]> {
  const enriched: EnrichedLead[] = [];

  for (const lead of leads) {
    const domain = lead.company
      ? lead.company.toLowerCase().replace(/\s+/g, '') + '.com'
      : extractDomain(lead.email);

    // Skip free email providers
    if (['gmail.com', 'yahoo.com', 'hotmail.com', 'outlook.com'].includes(domain)) {
      continue;
    }

    try {
      console.log(`Enriching ${lead.email} (${domain})...`);

      const companyProfile = await analyzeCompanyWebsite(domain);
      const techStack = await detectTechStack(domain);
      const intelligence = await gatherIntelligence(
        companyProfile.name,
        domain
      );

      const partial = {
        ...lead,
        companyProfile,
        techStack,
        intelligence,
        enrichedAt: new Date().toISOString(),
      };

      enriched.push({
        ...partial,
        qualityScore: calculateLeadScore(partial),
      });
    } catch (error) {
      console.error(`Failed to enrich ${lead.email}:`, error);
    }
  }

  // Sort by quality score (highest first)
  return enriched.sort((a, b) => b.qualityScore - a.qualityScore);
}

credits 成本分析

每条线索的增强成本:

操作工具Credits
网站内容extract_content2
关于我们页extract_content2
元数据extract_metadata1
技术检测fetch_url1
内容分析analyze_content3
新闻搜索search_web5
每条线索14 credits

规模化下的月度成本:

数量Credits/月推荐方案
50 条线索/月700Free 套餐(1,000 credits)
200 条线索/月2,800Hobby($19/mo,5,000 credits)
1,000 条线索/月14,000Professional($99/mo,50,000 credits)
5,000+ 条线索/月70,000Business($399/mo,定制 credits)

结果与收益

用 CrawlForge 构建的 lead enrichment 引擎能带来:

  • 速度:15-30 秒增强一条线索,而非 10-15 分钟
  • 一致性:每条线索都获得同等深度的研究
  • 优先排序:质量评分让销售代表先聚焦价值最高的线索
  • 成本效益:每条线索 $0.07-0.13,而数据库提供商为 $0.50-2.00

与 Clearbit($99/mo 提供 1,000 次查询)或 ZoomInfo($15,000+/年)等增强数据库提供商相比,CrawlForge 以极低的成本提供最新数据。代价是 CrawlForge 抓取实时数据(始终最新),而数据库提供预结构化字段(所需处理更少)。

常见问题

从 HTML 检测技术栈的准确度如何?

基于 HTML 的检测对客户端技术能以高准确度(90%+)捕获最常见的工具。服务端技术更难检测。要做全面检测,可将 CrawlForge 与 BuiltWith 或 Wappalyzer 的数据结合使用。

我能增强来自个人邮箱域名的线索吗?

来自 gmail.com 或 outlook.com 的线索没有可供分析的公司域名。对于这些线索,可使用 search_web 按姓名查找他们的职业资料。这种方式每次查询花费 5 credits,而非完整的 14-credit pipeline。

批量增强时我该如何处理速率限制?

CrawlForge 的 batch_scrape 工具会自动处理速率限制。对于单次调用,可在对同一域名的请求之间加入 500ms 延迟。并行处理不同域名以获得最大吞吐量。


免费增强你的前 50 条线索。 从 1,000 credits 开始——足以完整增强 70 多条线索,无需信用卡。

相关资源:

  • CrawlForge 文档
  • 用 AI agent 做竞争情报
  • 电商数据提取
  • 定价方案

亲自试一试——无需注册

在 Playground 中运行 CrawlForge 的 27 个抓取与提取工具中的任意一个,然后免费开始,获取 1,000 credits。

1,000 免费 credits • 每月补充 • 无需信用卡

标签

lead-enrichmentsalesweb-scrapingautomationcrmb2bmcp

关于作者

C

CrawlForge Team

工程团队

我们正在打造功能最全面的 Web 抓取 MCP server。我们开发的工具帮助开发者为 AI 应用提取、分析和转换 Web 数据。

及时获取最新洞察

将教程、产品更新与 Web 抓取技巧直接发送到你的收件箱。

拒绝垃圾邮件,随时可取消订阅。

付诸实践

在任意 URL 上测试 CrawlForge 的工具——免费,无需注册。

本页内容

相关文章

用 CrawlForge Deep Research 构建调研智能体
Use Cases

用 CrawlForge Deep Research 构建调研智能体

使用 CrawlForge deep_research 构建一个 AI 调研智能体,在几分钟内从数十个来源收集、验证并综合信息。

C
CrawlForge Team
|
4月16日
|
10 分钟
用 CrawlForge 实现内容迁移自动化
Use Cases

用 CrawlForge 实现内容迁移自动化

在 CMS 平台之间自动迁移网站内容。提取页面、保留结构,并在你的新系统中重建内容,无需重写。

C
CrawlForge Team
|
4月12日
|
9 分钟
用 AI agent 实现实时竞争情报
Use Cases

用 AI agent 实现实时竞争情报

用 CrawlForge 和 Claude 构建一个 AI 驱动的竞争情报系统。每周监控竞争对手、追踪变化并生成战略洞察。

C
CrawlForge Team
|
4月8日
|
9 分钟

页脚

CrawlForge

面向 AI Agent 的企业级网页抓取。27 个专业 MCP 工具,专为构建智能系统的现代开发者而设计。

产品

  • 功能
  • Playground
  • 价格
  • 应用场景
  • 集成
  • 替代方案
  • 更新日志

资源

  • 快速上手
  • API 参考
  • 模板
  • 指南
  • 博客
  • 术语表
  • 常见问题
  • 网站地图

开发者

  • MCP 协议
  • Claude Desktop
  • Cursor IDE
  • LangChain
  • LlamaIndex

公司

  • 关于我们
  • 联系我们
  • 隐私政策
  • 服务条款
  • 可接受使用政策
  • Cookie

保持更新

获取新工具和新功能的最新动态。

基于 Next.js 和 MCP 协议构建

© 2025-2026 CrawlForge。保留所有权利。