Building AI Agents for Smart Prospecting
Designing an autonomous prospecting agent with real-time signal detection built in.
- Role
- Sole Product Designer
- Team
- CTO, 2 engineers (incl. 1 data engineer)
- Timeline
- ~4-6 months, research to pilot
- Platform
- Web app (Goava Discover)
~7×
Lift in contacts exported to CRM in the first week
90%
Of CRM-exported contacts sourced by the agent
47
New deals, with the agent at the center of the sales pitch
Context & Background
Goava Discover is a B2B sales intelligence platform that helps Nordic companies identify and prioritise high-fit accounts. Sales development reps (SDRs) use it to find, score, and route prospects into their CRM.
Then competitors started shipping AI automation. Goava had to either move the platform toward AI-native workflows or watch customers evaluate tools that already had.
The answer was a new layer on top of Discover: the Prospecting Agent, an agent that automates account discovery, with a signal-based trigger mode that surfaces real-time buying signals inside the same system.
The Problem
- Manual prospecting: Good prospecting meant an SDR researching a company's employee count, funding stage, tech stack and industry by hand to judge fit. That process was slow (hours per week, per rep), inconsistent (different reps applied different judgment), and leaky: a real signal, like a leadership change, could go unnoticed and let a warm lead go cold.
- Missed signals: Even accounts already in the pipeline went stale. A company hiring aggressively, or replacing its CEO, is a strong buying signal, but nothing in the platform was watching for it in real time.
- Business risk: As AI-native tools entered the market, customers who couldn't justify the manual effort had an easy alternative. Discover needed to earn back the time it was costing.
The hardest part wasn't finding companies — it was manually applying filters and wading through an overwhelming amount of news just to find the signals that actually mattered.
My Role
End-to-end product design
Prospecting Agent (schedule-based and signal-based triggers), from research through launch
UX research
Interviewed SDRs and sales ops, reviewed existing usage data
Design system
Built on the existing design system and added components and patterns for the agent
Systems design
AI credits system, two-way locking mechanism, sensible defaults
Cross-functional collaboration
Worked with engineering, sales, and data teams
Constraints
- Every run costs money: Each agent run spends AI credits, so the design had to prevent runaway or duplicate runs. That's where the credit system and two-way locking came from.
- LLMs aren't fully deterministic: Scoring had to stay consistent between runs, and the interface had to show when the agent was confident versus just plausible.
- Two different engines: Schedule-based and signal-based triggers run on different mechanics under the hood, which shaped how far they could be unified.
- Small team, tight deadline: Built during headcount cuts, with a CTO and two engineers, under pressure to ship before customers moved to AI-native competitors.
Discovery and Research
The reality of sales signals
I looked at three things going in: where users were already spending time (and dropping off) in prospecting flows, how SDRs actually decided whether an account was worth pursuing, and what AI-native competitors were offering that Goava's customers were comparing against.
- Research time went to dead ends: SDRs spent a large share of their time on research that didn't lead to qualified leads. Automating it would help retention and help SDRs find the right accounts at the right moment.
- ICP isn't fixed: Companies didn't have one ideal customer profile. Different products, territories, and campaigns needed different targeting logic, so agents had to support multiple concurrent ICPs.
- Signals were missed: The data for buying signals already existed inside the platform, but nothing surfaced it at the right moment.
- Usage data revealed sensible defaults: Research showed that configuring an agent meant setting too many parameters. Analyzing how often users already prospected let us pre-fill agent settings with realistic defaults, which cut setup effort and cognitive load.
The Solution
Prospecting Agent
- Users set up an agent from Discover's agent settings, choosing an existing ICP profile to score against. AI generates a few of these during onboarding, so most users start from one instead of building their own.
- They select a segment, the pool of companies the agent evaluates. Onboarding creates an auto-segment, and tighter, more relevant segments produce better results.
- The agent evaluates every company in that segment against the chosen ICP and sorts them by Goava Score.
- Qualifying companies land on a positive outcome list (auto-exported to the CRM if one's connected); rejected companies go to a negative outcome list, keeping the positive list clean.
- Users set an AI credit budget (a cap per prospect or per day/week/month), and the agent pauses automatically once it's spent.
- Multiple agents can run in parallel, each pointed at a different segment or ICP.
- If the user has opted in, a daily email digest summarizes the agent's qualified leads.
Two ways to trigger a run:
- Signal-based: Instead of a schedule, the agent continuously monitors news and hiring activity in the segment and evaluates companies the moment a relevant signal appears (a funding round, a leadership change, a hiring surge), using a default signal profile or one the user configures.
- Schedule-based: The agent runs every night against the segment, qualifying a set number of prospects per day or week.
Under the hood: The agent evaluates each company by combining state-of-the-art LLMs with Goava's own data sources, including real-time news and event feeds, so it isn't limited to static firmographic fields. That lets it reason about context, like a recent leadership change, instead of only matching fields against a profile.
Getting the results: Qualified prospects show up in the configured Discover list and CRM. Paired with Research Agent Automations, prospects arrive with contacts and a research note already attached, so an SDR gets more than a company name and can act on it right away.
Design decisions:
- ICP selection from existing profiles (AI-generated or user-described) instead of inferring the ICP from the website alone. Website inference looked more impressive, but it was less accurate.
- Segment as its own dial, so agents can be scoped tightly instead of scanning everything.
- Positive and negative outcome lists, which keep export quality high over time.
- Simpler agent settings: each agent uses one trigger type, schedule or signal.
The Design Challenge
Keeping AI spend in check
AI agents use a lot of resources, and a single misconfigured agent could burn through a customer's entire AI credit allocation. That means surprise charges and lost trust. The job was to give users control without burying them in configuration.
The solution: two-way locking, using AI credits as the shared currency.
Lock 1: Prospects per day or week. Under a schedule-based trigger, this sets how many companies the agent qualifies in each run, a throughput cap. It doesn't apply in signal-based mode, since the agent runs continuously and a fixed quota would defeat the purpose of a real-time trigger.
Lock 2: AI credit budget. A spend cap set per prospect or per day/week/month; the agent pauses automatically once the budget is spent, so runaway spend isn't possible even at high volume.
Defaults from real usage. Making users configure everything from zero adds a lot of friction, so we analyzed past usage in Discover to set grounded defaults. Users can adjust them later, but they start from a realistic baseline.
One switch to start. Because both locks have a sensible default, most users never touch the configuration. Turning an agent on is a switch inside the dashboard, with no setup form.
Why it mattered: users stopped worrying about open-ended AI costs, and Goava got fewer support requests about billing surprises. On the design side, it meant teaching a new mental model: AI credits as a resource you spend, which users had never had to think about before.
Outcomes & Impact
7× · 90% · 47 deals
The Prospecting Agent launched as a limited pilot. Within the first 7 days, the agent accounted for 90% of all contacts exported to the CRM, and lifted total export volume by almost 7× without any additional SDR effort. More exported contacts means more pipeline, and the team got it without adding headcount.
On company qualification, the agent now drives 18% of all companies qualified in Discover, up from a fraction of that before launch. In the CEO's post-launch analysis, agent-sourced qualification went from a sliver of the total to nearly a fifth in a single week.
Before a broader rollout was announced, 12 companies had reached out on their own asking for access. Among pilot customers, Goava saw a 27% upsell rate, and the sales team made the agent central to their pitch, which helped bring in 47 new deals.
Qualitative wins:
- The credit and locking system gave customers confidence that AI spend would never spiral, which mattered in enterprise procurement conversations.
- Signal alerts gave SDRs a concrete reason to reach out to an account.
- Multiple-ICP support closed a long-standing gap for customers with several product lines or territories.
These numbers cover the first 7 days of a limited pilot. Longer-term retention effects will become clearer as the rollout expands over the next two quarters.
Reflection
What went well: Basing defaults on real usage data was one of the best calls in the project. It cut setup time and configuration errors, and it pushed us into an early, useful conversation with the data team.
What I'd do differently: The schedule-based vs. signal-based trigger split still asks users to learn two different mental models for the same agent. I explored unifying them into a single trigger model, but the two run on different mechanics under the hood, one on a timer and one on continuous monitoring. Collapsing them would have meant rebuilding both, and the UX gain didn't justify the cost. I kept the split on purpose, as the right tradeoff for now.
What I learned: Designing for AI systems means designing for failure states and cost far more than traditional product work does. Treating AI credits as a design constraint, the way you'd treat screen real estate, was new to me, and I'm glad I learned it. I also had to design for where AI is today. State-of-the-art LLMs are powerful but not fully deterministic, so reliability was a design problem as much as an engineering one. That meant consistent scoring, guarding against false or overconfident signals, and showing the user when the agent was confident versus just plausible. This shaped as much of the interface as the workflow did.
What's next: The next step is coordination between agents: multiple Prospecting Agents, each scoped to a different ICP or segment, informing each other's behavior in real time. Tighter integration with Research Agent Automations would let qualification and enrichment happen in one step.
How this was built
I designed straight into code. Goava's Figma design system feeds Claude Code through the Figma MCP, and a plugin I built gives the whole team the same components across the webapp, mobile app and emails. I review every change before it ships.
See it in Action
Read the support article for step-by-step setup, or open the Arcade walkthrough to see how to configure a prospecting agent.