ARTENIS ALIJA
SaaS / B2B SalesPythonLLMn8nLead GenerationCRM

Automating B2B Lead Generation for a SaaS Sales Team

Client: B2B SaaS Company (confidential)

70%reduction in manual research time
more leads processed per day
8.5/10avg GPT scoring accuracy (SDR-validated)
2 hrsSDR time redirected to selling daily

The Challenge

The sales team of 4 SDRs was spending 3 hours per day manually researching companies, finding contact emails, and scoring leads before they could send a single outreach message. The pipeline was thin because capacity was eaten by research, not selling.

What I Built

  • 01

    Built a Python scraper that takes a target ICP (Ideal Customer Profile) definition as input and pulls companies matching the criteria from LinkedIn Sales Navigator and Apollo.io exports.

  • 02

    Each company record passes through an enrichment pipeline: pulls funding status from Crunchbase, employee count from LinkedIn, tech stack from BuiltWith, and recent news mentions from a Google News scraper.

  • 03

    A GPT-4o scoring layer evaluates each enriched lead against the ICP definition (industry fit, company size, tech signals, growth indicators) and returns a score 1–10 with a one-line qualification rationale.

  • 04

    Leads scoring 7+ are automatically pushed to HubSpot CRM with full context attached, and a Slack alert fires to the assigned SDR with the key qualifying signals highlighted.

In Practice

The SDR team's core complaint was that by the time they finished researching a lead, their energy for personalized outreach was gone. They were spending 60% of their day on work that added no direct pipeline value — and it showed in their close rates.

The architecture has three stages: acquisition (scraping company lists to spec), enrichment (pulling signal data from multiple sources per company), and qualification (LLM scoring against the ICP). Each stage feeds the next, and the final output looks like a pre-briefed dossier, not a raw contact list.

The GPT scoring layer was the part I spent the most time calibrating. The initial prompt was too generous — everything scored above 6. After three rounds of testing with the sales team's own lead judgements as ground truth, we landed on a prompt that the team said 'thought like a good SDR.' The rationale field turned out to be more useful than the score — SDRs used it to write their opening lines.

The Slack alert design was intentional: it doesn't just say 'new lead.' It surfaces the top two qualifying signals — 'raised Series B in Feb, tech stack includes Salesforce, fits ICP for mid-market CRM migration' — so the SDR can open HubSpot already knowing what to say. Three months post-launch, the team closed their fastest deal from a pipeline lead that came through the system.

Stack Used

PythonGPT-4on8nHubSpot APIPlaywrightSlack APIPostgreSQL

Have a similar problem?

Let's talk about automating it.

Get in touch