How to Build a Lead Enrichment Pipeline with Tech Detection
Your CRM has thousands of leads. Names, emails, company URLs. But without knowing what technologies those companies use, your sales team is shooting in the dark.
Tech stack data transforms cold outreach into relevant conversations. If you're selling a Shopify app, you only want leads running Shopify. If you offer WordPress security, you need WordPress sites. If you're competing with a specific analytics tool, you need to know who's using it.
In this guide, we'll build a lead enrichment pipeline that takes a list of company domains and enriches each one with technology data using the DetectZeStack API.
The Pipeline
Export leads from your CRM
Pull company domains from HubSpot, Salesforce, or a CSV. You just need the domain — no full URL required.
Batch analyze with DetectZeStack
Send up to 10 domains per request to the batch endpoint. Concurrent processing keeps it fast.
Filter and score leads
Tag leads by technology match. Prioritize prospects using your target tech stack.
Push enriched data back to CRM
Update contact records with technology tags for segmentation and personalized outreach.
Step 1: Prepare Your Domain List
Export your leads as a CSV or pull them from your CRM's API. The only required field is the company's domain:
domains.csv:
company,domain
Acme Corp,acmecorp.com
Globex Inc,globex.io
Initech,initech.com
Umbrella Corp,umbrella.co
Step 2: Batch Analyze
The /analyze/batch endpoint processes up to 10 URLs concurrently in a single request. Here's a Python script that reads your CSV and enriches each domain:
import csv
import json
import requests
import time
API_URL = "https://detectzestack.p.rapidapi.com/analyze/batch"
API_KEY = "your-rapidapi-key"
BATCH_SIZE = 10
def enrich_domains(csv_path):
with open(csv_path) as f:
rows = list(csv.DictReader(f))
enriched = []
# Process in batches of 10
for i in range(0, len(rows), BATCH_SIZE):
batch = rows[i:i + BATCH_SIZE]
urls = [row["domain"] for row in batch]
resp = requests.post(API_URL, json={"urls": urls}, headers={
"X-RapidAPI-Key": API_KEY,
"X-RapidAPI-Host": "detectzestack.p.rapidapi.com",
"Content-Type": "application/json"
})
results = resp.json().get("results", [])
for row, result in zip(batch, results):
techs = [t["name"] for t in result.get("technologies", [])]
categories = set()
for t in result.get("technologies", []):
categories.update(t.get("categories", []))
row["technologies"] = ", ".join(techs)
row["categories"] = ", ".join(categories)
row["tech_count"] = len(techs)
enriched.append(row)
# Respect rate limits
time.sleep(1)
return enriched
results = enrich_domains("domains.csv")
# Write enriched CSV
with open("enriched_leads.csv", "w", newline="") as f:
writer = csv.DictWriter(f, fieldnames=results[0].keys())
writer.writeheader()
writer.writerows(results)
This script processes 10 domains per API call. For 1,000 leads, that's 100 API calls — well within the Ultra plan's 10,000 monthly limit, with room to re-enrich as stacks change.
Skip the CSV code: The API has native CSV export built in. Add ?format=csv to any /analyze request and you get spreadsheet-ready output directly—no Python post-processing needed:
curl "https://detectzestack.p.rapidapi.com/analyze?url=stripe.com&format=csv" \
-H "X-RapidAPI-Key: YOUR_KEY" \
-H "X-RapidAPI-Host: detectzestack.p.rapidapi.com"
Step 3: Filter and Score
Now that you have technology data, filter leads by relevance. Here's how to find leads using specific technologies:
# Find all Shopify stores
shopify_leads = [r for r in results if "Shopify" in r["technologies"]]
# Find WordPress sites without a CDN
wp_no_cdn = [
r for r in results
if "WordPress" in r["technologies"]
and not any(cdn in r["technologies"]
for cdn in ["Cloudflare", "Fastly", "CloudFront"])
]
# Score leads by tech stack overlap with your ideal customer
TARGET_TECHS = {"React", "Next.js", "Vercel", "Stripe"}
for lead in results:
lead_techs = set(lead["technologies"].split(", "))
lead["score"] = len(lead_techs & TARGET_TECHS)
# Sort by score descending
results.sort(key=lambda r: r["score"], reverse=True)
Pro tip: Use the /compare endpoint to compare a prospect's stack against your best customer's stack. High overlap = high-probability close.
Step 4: Push to Your CRM
Most CRMs support custom fields. Here's an example pushing enriched data to HubSpot:
import hubspot
client = hubspot.Client.create(access_token="your-hubspot-token")
for lead in results:
client.crm.contacts.basic_api.update(
contact_id=lead["hubspot_id"],
simple_public_object_input={
"properties": {
"tech_stack": lead["technologies"],
"tech_categories": lead["categories"],
"tech_score": str(lead["score"])
}
}
)
Once technology data is in your CRM, you can:
- Create smart lists filtered by technology (e.g., "All Shopify + Klaviyo leads")
- Trigger automated sequences based on tech stack match
- Personalize email templates with technology references
- Route leads to the right sales rep based on their tech expertise
Real-World Use Cases
SaaS Sales
Find companies using a competitor's product. "I noticed you're using [Competitor] — here's how we compare."
Agency Prospecting
Find sites on outdated tech. "Your site runs jQuery 1.x — we can modernize it to React for better performance."
Platform Partnerships
Find companies already in your ecosystem. "You're on Vercel + Next.js — our integration is built for your stack."
Security Services
Identify sites with known vulnerable technologies using CPE data. Offer remediation services.
Keeping Data Fresh
Tech stacks change. A company might migrate from WordPress to Next.js, switch CDNs, or adopt new analytics. Set up a recurring enrichment job:
# Run weekly via cron
# 0 9 * * 1 python enrich_pipeline.py
# Or use webhooks for real-time monitoring
curl -X POST "https://detectzestack.p.rapidapi.com/webhooks" \
-H "X-RapidAPI-Key: YOUR_KEY" \
-H "X-RapidAPI-Host: detectzestack.p.rapidapi.com" \
-H "Content-Type: application/json" \
-d '{
"domain": "important-prospect.com",
"webhook_url": "https://your-app.com/webhook",
"secret": "your-hmac-secret"
}'
Webhook alerts notify you each time a monitored domain is analyzed — perfect for tracking key accounts and keeping enrichment data fresh.
Cost Comparison
Enriching 1,000 leads monthly with technology data:
- BuiltWith: $995/month (Pro plan required for API)
- Wappalyzer: $450/month (Business plan)
- DetectZeStack: $29/month (Ultra plan, 10,000 requests)
At DetectZeStack's pricing, enriching 10,000 leads per month costs $29 on the Ultra plan. That's a fraction of the cheapest alternative. See our full comparison for details.
Start Enriching Your Leads
100 requests/month free — enough to test with your real data. No credit card required.
Get Your API KeyTry It Yourself: Free Demo
You do not need an API key to see what DetectZeStack detects. Try the free demo scanner on any domain — no signup required:
Scan stripe.com (free, no signup)
The demo endpoint returns the same technology detection data as the authenticated API — technologies, categories, and confidence scores. Use it to verify the data quality before committing to a plan.
Pricing: How DetectZeStack Compares
Tech stack enrichment pricing varies dramatically. Here is what it costs to enrich leads with technology data, compared side by side:
| Provider | Plan Required | Price |
|---|---|---|
| BuiltWith | Pro (API access) | starting at $295/mo |
| Wappalyzer | Business | starting at $250/mo |
| HG Insights | Enterprise | starting at $24,000/yr |
| DetectZeStack (Free) | Basic | $0/mo (100 req) |
| DetectZeStack (Pro) | Pro | $9/mo (1,000 req) |
| DetectZeStack (Ultra) | Ultra | $29/mo (10,000 req) |
| DetectZeStack (Mega) | Mega | $79/mo (50,000 req) |
At $29/month on the Ultra plan, you can enrich 10,000 leads — enough to re-enrich your entire pipeline every month as tech stacks change. The free tier (100 req/mo) lets you test with real data before spending anything.
Ready to Build Your Pipeline?
Get started in under 5 minutes. Free tier includes 100 requests — no credit card, no sales call, no trial expiration.
Sign Up Free on RapidAPIRelated Reading
- Tech Stack Enrichment for Sales Teams — Why technographic data matters more than firmographics for prospect qualification
- How Sales Teams Use Tech Stack Data for Competitive Intelligence — Real-world example with 960 API calls in one month
- BuiltWith vs Wappalyzer vs DetectZeStack — Full feature and pricing comparison
- Detect Any Website's Tech Stack With a Single API Call — Getting started guide with code examples
- Detect Any Website's Tech Stack with Python — Python tutorial with batch scanning and error handling
- Find Companies Using Stripe — Technographic prospecting to find Stripe-powered businesses
- How to Batch Scan 1,000 Websites for Tech Stack Data at Scale — Scan thousands of domains with the batch endpoint and a simple Python script