← 返回
数据分析 中文

Lead Scorer

Score leads 0-100 by analyzing a domain's website, DNS, sitemap, and social presence. Uses customizable JSON scoring profiles so users can define what signal...
通过分析域名网站、DNS、站点地图和社交信息,对潜在客户进行0-100评分。使用可定制的JSON评分配置,让用户自行定义评分信号...
psyduckler
数据分析 clawhub v1.0.0 1 版本 100000 Key: 无需
★ 0
Stars
📥 1,154
下载
💾 12
安装
1
版本
#latest

概述

Lead Scorer

Analyze a domain and return a 0-100 lead score with detailed breakdown. The key feature is customizable scoring profiles — JSON configs that define which signals matter and their weights.

How It Works

  1. DNS Analysis — MX records (Google Workspace/M365 = real business), SPF/DMARC
  2. Sitemap Parsing — URL count, last modified dates, content volume
  3. Website Scraping — Blog detection, tech stack, meta tags, social links, contact info
  4. Signal Scoring — Each signal scored against the profile weights
  5. Grade Assignment — A (80-100), B (60-79), C (40-59), D (20-39), F (0-19)

Dependencies

pip3 install dnspython

Usage

Single domain (default profile)

python3 scripts/score_lead.py example.com

With custom profile

python3 scripts/score_lead.py example.com --profile clearscope.json

Multiple domains

python3 scripts/score_lead.py domain1.com domain2.com domain3.com

Batch from CSV

python3 scripts/score_lead.py --csv leads.csv --domain-column "Website"

Options

  • --profile FILE — Scoring profile JSON (default: default.json, resolved from scripts/profiles/)
  • --csv FILE — CSV file with domains
  • --domain-column NAME — Column name for domains in CSV (default: domain)
  • --scrape-delay SECONDS — Delay between HTTP requests (default: 0.5)
  • --output FILE — Write results to file instead of stdout

Output

JSON to stdout with overall score, per-signal breakdown, raw data, and summary:

{
  "domain": "example.com",
  "score": 72,
  "grade": "B",
  "profile": "default",
  "signals": {
    "has_blog": {"score": 20, "max": 20, "evidence": "Blog found at /blog; 234 URLs in sitemap"},
    "business_legitimacy": {"score": 15, "max": 20, "evidence": "MX: Google Workspace; SPF configured"}
  },
  "raw_data": {
    "sitemap_urls": 234,
    "mx_provider": "Google Workspace",
    "tech_stack": ["WordPress", "Cloudflare"]
  },
  "summary": "Strong in: has blog, business legitimacy. Good lead, worth pursuing."
}

Scoring Profiles

Profiles are the key differentiator. They let you define what matters for YOUR use case.

Profile format

{
  "name": "my-profile",
  "description": "What this profile scores for",
  "signals": {
    "signal_name": {
      "weight": 25,
      "description": "What this signal measures",
      "keywords": ["optional", "keyword", "list"]
    }
  }
}

Built-in signals

SignalWhat it checks
-----------------------
has_blogBlog/content section existence + sitemap volume
business_legitimacyMX provider, SPF/DMARC, about page, meta tags
content_velocitySitemap dates — recency and frequency of updates
tech_stackCMS, analytics, chat tools detected in page source
audience_sizeSocial media links (Twitter, LinkedIn, YouTube, Facebook)
contact_findabilityContact page, emails on site, LinkedIn link
seo_toolsKeyword matching in homepage text (requires keywords array)

Custom keyword signals

Any signal with a keywords array will match those terms against the homepage text. This is how you detect competitors, tools, or industry terms:

{
  "name": "crm-seller",
  "signals": {
    "uses_crm": {
      "weight": 30,
      "description": "Already uses a CRM",
      "keywords": ["salesforce", "hubspot", "pipedrive", "zoho crm", "close.io"]
    },
    "has_sales_team": {
      "weight": 25,
      "description": "Mentions sales roles or team",
      "keywords": ["sales team", "account executive", "sdr", "business development"]
    }
  }
}

Shipped profiles

  • default.json — Generic scoring for any SaaS/content company
  • clearscope.json — Example profile for SEO tool partnership leads

Create your own in scripts/profiles/ or pass any path with --profile.

Rate Limiting

The script is polite by default:

  • --scrape-delay 0.5 — 500ms between HTTP requests (default)
  • Each domain makes ~5-8 requests (homepage, blog, about, contact, sitemap, DNS)
  • For batch mode, there's an additional delay between domains
  • Increase delay for large batches: --scrape-delay 2
  • All requests use a generic User-Agent string

Recommended delays

Batch sizeDelayEst. time
-----------------------------
1-100.5s (default)~30s-2min
10-501.0s~5-15min
50+2.0s~30min+

Error Handling

If a signal can't be gathered (site down, DNS timeout, etc.), it scores 0 with an explanation in the evidence field. The script never crashes on a single domain failure — it logs the issue to stderr and continues.

Tips

  • Start with default profile, review results, then customize
  • Weights should sum to 100 for intuitive scoring (not required — auto-normalizes)
  • Keywords are powerful — add competitor names, industry terms, technology mentions
  • Pipe to jq for quick filtering: python3 scripts/score_lead.py domain.com | jq '.score'
  • Batch + sort: Score a CSV, then sort by score to prioritize outreach

版本历史

共 1 个版本

  • v1.0.0 当前
    2026-03-29 07:20 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

data-analysis

A股量化 AkShare

mbpz
A股量化数据分析工具,基于AkShare库获取A股行情、财务数据、板块信息等。用于回答关于A股股票查询、行情数据、财务分析、选股等问题。
★ 162 📥 59,673
data-analysis

Excel / XLSX

ivangdavila
创建、检查和编辑 Microsoft Excel 工作簿及 XLSX 文件,支持可靠的公式、日期、类型、格式、重算及模板保留功能。
★ 366 📥 139,960
data-analysis

Data Analysis

ivangdavila
{"answer":"数据分析与可视化。查询数据库、生成报告、自动化电子表格,将原始数据转化为清晰可行的见解。适用于:(1) 您……"}
★ 198 📥 64,857