Sales Agent: Case Study

We built our own lead gen agentbefore we sold it to anyone else.

Two-stage discovery, enrichment, CRM, 4-touch sequences, attribution tracking. Fully automated. It ran this morning at 6:30AM. Here is exactly how it works.

Note: The tools shown below are what we use for our own system, one example of how the architecture can be built. Your build uses whatever is already in your stack: your CRM, your email provider, your data sources. We are tool-agnostic by design.

The Architecture

Five stages. Fully autonomous.

Each stage runs in sequence, automatically, every weekday morning.

Stage 1
Discovery
Haiku + Brave
Stage 2
Enrichment
Apollo + Hunter
Stage 3
CRM
HubSpot
Stage 4
Sequences
Gmail SMTP
Stage 5
Attribution
attribution.js

No human intervention between stages 1 and 3. Outreach requires a one-tap Signal approval before any email sends.

The Numbers

What it actually costs and delivers.

6:30
Discovery runs at 6:30AM, synthesis at 7:00AM, done before you start work
~$0
Infrastructure cost per month, runs on existing servers, no new spend
125
Contactable leads per month on free API tiers (Apollo + Hunter)
4
Touches per prospect: day 0, day 4, day 9, day 16. Automated sequence engine.
How It Works

Stage by stage.

Stage 1

Discovery

Claude Haiku Brave Search API Staging JSON

Every weekday at 6:30AM, a lightweight Haiku agent runs 6 to 8 searches looking for buying signals. Not brand mentions. Signals. Things like a law firm posting a Head of AI job, a hospital announcing an AI transformation initiative, or a manufacturer quoted in trade press talking about operational bottlenecks.

Each result is scored against a litmus test before it moves forward: what does this company sell? If it is an AI company or a startup raising money to build AI, it gets rejected. The pipeline is only interested in businesses buying or adopting AI to improve an existing operation, not companies building AI as their product.

Results that pass are written to a staging JSON file. The Haiku agent does not touch HubSpot, email, or anything external at this stage. Discovery is read-only and fast by design, using a cheaper model to keep token costs low.

6:30 AM - Haiku
Discover

Runs web searches, scores signals, writes candidates to staging JSON. Fast, cheap, broad.

7:00 AM - Sonnet
Synthesize

Reads staging file, enriches each lead, writes outreach drafts, pushes to HubSpot. Slower, richer, deliberate.

Splitting discovery and synthesis across two models reduces cost without sacrificing output quality. Haiku handles the broad sweep; Sonnet handles judgment and language.

Stage 2

Enrichment

Apollo.io Hunter.io

At 7:00AM, the Sonnet synthesis agent reads the staging file and enriches each lead. High-priority signals, the ones with a named decision maker visible in the press, clear pain, and evidence of budget, go to Apollo first. The agent searches for the COO, VP of Operations, CTO, or Head of AI at that company and pulls back a verified email.

Medium signals go to Hunter for a domain search. This surfaces whoever is most contactable at that organization without burning Apollo credits on a weaker signal.

Hunter is capped at 15 lookups per day. If a lead cannot be enriched today, it waits. There is no point sending an email to a generic info@ address, and there is no point blowing daily quotas on leads that do not meet threshold.

Stage 3

CRM

HubSpot

Every verified contact gets pushed to HubSpot automatically. A contact record is created with the email, title, and company. A deal is opened in the pipeline at the first stage. A note is attached to the contact with the buying signal, the source URL, and the outreach angle.

The T1 outreach draft is also generated at this stage, based on the signal and the contact details. The agent writes a short, plain email that references something real about why this person was found. It does not go into the sequence engine until a human approves it in Signal.

Stage 4

Sequences

Gmail SMTP sequence.js Signal (approval) Cal.com

The T1 draft lands in a Signal message. One tap to send, one tap to skip. This is the only point in the pipeline that requires human input before a contact enters the sequence engine. The email does not go out until someone approves it.

When it sends, it goes through Gmail SMTP via nodemailer. Every send is logged with a unique message ID tied to the HubSpot contact record. The sender is a verified domain, not a free inbox.

Once approved, the contact enters a 4-touch sequence managed by sequence.js. The timing is fixed: T1 on day 0, T2 on day 4, T3 on day 9, T4 on day 16. The cron at 11:20AM weekdays checks which contacts are due for their next touch and signals them automatically.

T1
Day 0
Initial outreach. Signal-led. References the buying signal directly.
T2
Day 4
Brief follow-up. Adds a second angle or proof point.
T3
Day 9
Value-add. Relevant resource, case study, or insight.
T4
Day 16
Close or pause. Explicit yes/no ask. Sequence ends either way.

Tone is set by company size. Enterprise contacts (1,000+ employees) get signal-led copy with senior framing in 5 sentences. SMB contacts get owner-direct plain English in 3 to 4 sentences. The sequence engine reads the HubSpot company size field and applies the correct template at generation time.

Every email includes a booking link to cal.com/montebelle-llc-nm9nf5 so a prospect can schedule without a reply thread. If an email bounces or a complaint is received, the contact is flagged in HubSpot and removed from the active sequence immediately. The system does not retry bounced addresses.

Stage 5

Attribution

attribution.js HubSpot Notes Metrics Cron

Three cron jobs handle the tracking layer every weekday. The outreach metrics check at 11:00AM reads open and reply signals. The sequence check at 11:20AM is silent: it identifies which contacts are due for the next touch and queues them. The attribution report at 11:45AM runs attribution.js, writes a daily report, and logs which touchpoints led to replies, bookings, or deals.

The attribution pipeline tracks every touchpoint from the first T1 send through to a conversion event. When a prospect books via Cal.com or replies, the attribution report maps which touch in the sequence they responded to, and at what day in the cycle. This data feeds back into sequence timing decisions over time.

We are notified only on events that matter: a reply from a warm lead, a Cal.com booking, or a bounce that halts a sequence. The system stays silent otherwise. There is no daily dashboard to check. The signal reaches us when something worth acting on happens.

Dog-fooding

This ran this morning at 6:30AM.

Not a simulation. Not a demo environment. The same system, running against real data, delivering real leads to our pipeline every weekday before we start work.

When a prospect asks "does this actually work?" the answer is a link to this page. We use it ourselves. The system found the prospects who are reading this right now.

That is the only honest way to sell it.

Signal Alert: 7:02AM today

New lead enriched:

Signal: Regional hospital group quoted in Health Affairs: "AI for denial appeals reducing review time by 60%". CIO named.

Contact: John Bell, CIO

Angle: Proven AI ROI in appeals. Extension to other clinical workflows is the natural next step.

Tone: Enterprise (5-sentence, signal-led, senior framing)

Send (enters T1) Skip

One tap to approve. That is the entire human step. T2 through T4 run automatically on schedule.

The Point

We can build the same for your workflow.

Lead gen is one application. The same architecture applies to recruiting pipelines, partner sourcing, competitive monitoring, and procurement tracking. Any workflow where you currently spend hours on research and manual follow-up.

The components are the same. The data sources change. The integrations change. The outreach tone changes. The underlying agent, discover, enrich, decide, act, track, stays the same.

Recruiting

Monitor job boards for candidates matching your criteria. Enrich with contact details. Draft outreach. Track responses.

Partner Sourcing

Find adjacent businesses in your space. Qualify by audience and fit. Draft a partnership pitch. Log everything to CRM.

Competitive Intel

Track competitor announcements, pricing changes, and job postings. Deliver a daily briefing. Flag anything that needs a response.

Book a call to talk about your workflow

Fixed price. Two to four weeks. You own the code.