3 hours a day on LinkedIn. Under 2% reply rates. No way to know which companies were in a buying window. We built a signal engine that monitors funding rounds, hiring spikes, product launches, and outsourcing intent across 12+ data sources — then fires AI-personalised outreach the moment a company shows intent. The qualified pipeline tripled in 90 days.
A B2B services company knew exactly who their ideal customers were. They had a well-defined ICP, strong case studies, and a capable sales team. The problem: they had no systematic way to find those companies at the moment they actually needed help. Sales reps spent hours daily on manual prospecting with no timing signal. Outreach was generic. Reply rates were under 2%. They were reaching prospects either too early or after they'd already chosen a vendor. The core failure was simple: no way to know WHEN a company needed them.
Outbound went from a manual, timing-blind process to a real-time, intent-driven machine.
The platform's core is a real-time monitoring engine that classifies company events into typed buying signals with confidence scores.
Review how the pipeline queries, scrapes, enriches, and scores prospects automatically:
"A business development representative (BDR) needs to identify startups that are actively seeking angel/seed investment, raising venture capital, or scaling their engineering teams."
Traditional database providers offer outdated records and lack real-time intent triggers. Manual searching across news sites, forums, and company blogs is slow and fails to capture subtle phrasing indicating immediate buying intent.
The platform implements the BusinessIntent engine (intent_search.py), which maps critical business milestones (INVESTMENT, FUNDING, WORK_OPPORTUNITY) to target queries. The search coordinator calls the Exa AI API to perform neural queries, filtering by start_published_date and domains, while seen_urls deduplicates leads.
"A sales ops engineer needs to pull and inspect the actual page content of 100 raw lead URLs discovered during intent searches."
Scraping pages one-by-one results in high network latency. Standard web scrapers also pull headers, footers, cookie banners, and sidebar links, wasting downstream LLM tokens on irrelevant noise.
The enrichment layer (lead_enricher.py) implements fetch_contents to execute a single batch-retrieval call to Exa (exa.get_contents) for all discovered lead URLs in parallel, limiting body text collection to 1,500 characters to conserve downstream LLM tokens.
"An account executive needs to extract specific company data (e.g., funding amount, industry, location, target contact hints) from unstructured news articles and homepages."
Web content formats vary wildly. Building regex patterns or custom parsers for each news site is brittle and impossible to maintain.
The scoring engine (lead_scorer.py) defines a strict Pydantic model LeadExtraction. It passes the 1,500 character web text to Anthropic Claude (claude-opus-4-8) via structural output parsing, returning parsed metrics (funding stage, company name, industry, exact intent phrases).
"A team wants to prioritize lead outreach, making sure they only follow up with highly qualified targets that have accessible contact info and a strong intent signal."
AI systems can produce false positives. Without a clear quality score and human-readable reasoning, sales reps lose trust in automated pipelines and spend hours auditing results manually.
Enforces a quality score (0 to 10) in the Pydantic schema with an explanatory score_reasoning string saved to the ScoredLead database record. The batch scorer rejects pages shorter than 100 characters, automatically sorting leads in descending order.
"An organization wants to run a single daily job that monitors the web, extracts leads, parses their details, scores quality, and feeds the CRM automatically."
Stitching together search APIs, scraping microservices, structured LLM parsers, and custom sorting scripts creates a fragile architecture that is difficult to monitor and maintain.
The pipeline orchestrator (pipeline.py) exposes run_pipeline, wrapping the end-to-end workflow: Exa search queries, parallel content fetching, Pydantic/Claude structured scoring, low-score threshold filtering, and intent-grouped sorting ready for CRM integration.
End-to-end outputs from a single, scoped engagement.
Buying signals are real-world events that indicate a company is likely entering a purchase decision. Key signals include: funding rounds (the company now has budget), rapid hiring (they're scaling and may need partners), product launches (they need go-to-market support), and outsourcing intent signals like posts on forums or job boards looking for vendors. AI lead intelligence platforms monitor these signals continuously across multiple data sources.
AI email personalisation uses the lead's buying signal as context — for example, if a company just raised a Series B, the AI generates an email referencing their growth stage and how your service addresses the scaling challenges that typically follow a funding round. It combines signal-based context with the lead's industry, role, and company profile to write first-line hooks and subject lines that are specific rather than generic.
A comprehensive lead intelligence platform monitors: Crunchbase and Tracxn for funding data, ProductHunt for launch signals, LinkedIn and Remotive for hiring patterns, Reddit and Indie Hackers for outsourcing intent, Google Alerts for press mentions, and Exa.ai for real-time web signals. Multi-source coverage ensures no buying moment is missed.
We'll map your ideal customer profile to the right signal sources and build a monitoring engine that surfaces warm prospects the moment they enter a buying window. Let's design your signal stack.
Book a Free Consultation