Project
B2B Decision Scoring Engine
Founder / Head of Growth & Ops, Dansu
I built a partner discovery and scoring engine that turned messy web and social data into a ranked, outreach-ready pipeline — prioritised by opportunity size, fit, and complexity.
- I designed a three-part scoring model (opportunity size, fit, complexity) that tiered targets into A/B/C bands, validated by tracking downstream reply and meeting rates by tier.
- Reduced time-to-viable-target from hours of manual research to an automated, repeatable feed — with A-tier targets consistently outperforming on reply and meeting rate.
Overview
Partnerships were a high-leverage channel, but the top of funnel was broken. Finding the right targets took hours, enrichment was inconsistent, and there was no repeatable way to prioritise who to pursue. I treated it as a product problem: the job was to reliably decide who we should be targeting this week and why.
The problem
The bottleneck wasn't writing outreach — it was qualifying targets quickly with consistent criteria. Before building anything, I ran "manual version 0": took a small batch of targets, collected signals manually, ranked them using a simple rubric, and used it to drive outreach. I tracked outcomes by tier. When the ranking correlated with replies and meetings, I knew the model was worth automating.
What I built
I designed the engine as a four-step pipeline with clean interfaces between each stage.
Discovery. Seed lists of known festivals, venues, retailers, and promoters, then expanded via search patterns and similar-org logic. Sources included org websites, Instagram profiles, event directories, and Google queries. Estimated 150–400 orgs discovered per week depending on seed breadth.
Enrichment. For each org I collected: type and region, size proxies (follower count, event frequency, geographic footprint), contact routes (email, form, partner page, IG), and commercial cues (merch store, sponsor history, partnerships page, brand activations). Target: 60–80% of orgs enriched to usable quality.
Scoring. Three-part model:
- Opportunity size (0–5): reach proxies and event frequency
- Fit (0–5): use-case match and audience overlap
- Complexity (0–5): decision friction and fulfilment complexity
Output: A/B/C tiers. Roughly 10–20% A-tier, 30–40% B-tier, 40–60% C-tier.
Output and handoff. A ranked lead queue with tier, score, "why this scored high," and enrichment fields for personalisation. This fed directly into the CRM workflow layer.
How I validated it
I tracked conversion by score band — A-tier targets should outperform B and C on reply rate and meeting rate. When they didn't, I updated the scoring weights. I iterated on signal weights (sponsor history mattered more than raw follower count), exclusion rules (filtering orgs with no contactable route), and tier thresholds (tightening A-tier to protect time).
Systems I built
- n8n pipeline for discovery, enrichment, and scoring automation
- RocketAPI and web scraping for Instagram and org-level signals
- Supabase for deduplicated lead storage and score syncing
- Deduplication logic by domain, org name, and IG handle
- Minimum data quality thresholds before any lead could enter the outreach queue
Impact
- Time-to-ranked-target list dropped from hours of manual research to a repeatable automated feed
- Target selection became consistent and explainable — every A-tier lead had a documented reason
- Higher quality conversations downstream because outreach focused on the right orgs
- Produced the foundation that fed the full CRM and outreach workflow layer