Skip to content
All case studies
Lifecycle ManagementAI and Process InnovationDemand Generation

Rebuilding the intake layer so the funnel filtered instead of flooded

Contact-sales forms were admitting spam, students, and fake job titles as MQLs. Built four layers that now gate qualification: standardized job data, lead-to-account matching before CRM ingestion, automated quality controls at intake, and an AI validation layer for the ambiguous cases rules couldn't classify.

Environment
High-growth B2B SaaS (multi-product portfolio)
My role

Led the design and build of the qualification infrastructure end to end — job-role data model, lead-to-account matching workflows, automated rejection logic across forms and email validation, and the AI validation layer.

-30%
junk MQLs reaching sales
+20%
increase in SQLs
MQL-to-SQL conversion rate

The problem

The funnel was optimized for volume, not quality. Students, competitors, spam, and invalid records qualified as MQLs, flooding sales with noise and making true funnel performance impossible to read. Cleanup happened downstream, after the damage to trust was already done.

Context

Leads entered the funnel from contact-sales forms with inconsistent job data, unverified contact information, and no quality enforcement at intake. Every submission became a potential MQL regardless of role validity, account fit, or whether the person was real.

Constraints and complexity

Quality controls had to run at intake without adding friction for legitimate buyers, and had to hold across multiple product lines with different ICPs and buying motions.

Illustrative diagram

Representative — proprietary details omitted
Form submission
Role standardization
Lead-to-account match
Rules-based rejection
AI validation
MQL

Quality enforced at intake rather than cleaned up downstream.

What I did

How I approached it

  • 01Traced junk MQLs to their originRather than tuning the scoring model downstream, where the damage was already done.
  • 02Separated the failure modesBad job data, missing account context, invalid contact details, and genuinely ambiguous records are four different problems.
  • 03Moved quality control upstreamFrom post-submission cleanup to intake-level enforcement.
  • 04Reserved AI for the residualOnly the cases rules provably could not classify.

What I built

Job role standardization
Mapped thousands of inconsistent job titles to governed role categories, replacing legacy free-text collection. Role became a scoreable attribute, which stabilized persona targeting and made scoring, lifecycle, and segmentation consistent across portfolios.
Lead-to-account matching
A HubSpot-based L2A workflow resolving firmographic attributes before records entered Salesforce, so qualification and routing were anchored in account context — automatically, on every record, not as periodic cleanup. It cut both ways: no-fit records stopped reaching MQL, and good-fit people who had been missing account context started qualifying.
Multi-layered quality automation
Dynamic form scripts blocking junk patterns at the point of entry — students, non-business domains, throwaway addresses — plus ESP feedback loops quarantining invalid emails, and automated rejection logic catching what got through before it could reach MQL status.
AI-assisted junk detection
A Zapier-based validation layer with structured prompts evaluating ambiguous submissions for fake names, student records, and fraudulent entries — the patterns rules provably could not classify, and which until then needed a person to eyeball.

Supporting materials

Validation logic

Supporting detail
Prompt instructions defining the junk-submission evaluation categories
The prompt enforces one evaluation framework — gibberish, placeholder, profanity, spam — so judgements stay consistent.
HubSpot workflow splitting form submissions into junk and review paths after an AI evaluation step
Submissions pass through an AI evaluation step, then split into separate junk and review paths.

Diagrams and figures are representative. Proprietary architecture, internal system names, and confidential customer details are omitted or generalized.