Stop manually researching clients. Build and deploy AI agents that handle lead qualification and outreach prep for your small agency. Here's the operator's playbook.
The Core Problem: Manual Work Doesn’t Scale Your Agency
If you run a small agency, you know the grind. A new lead comes in. You drop everything to open 15 tabs, searching their company name, finding their LinkedIn, looking for recent funding news, and trying to guess their biggest pain point. You spend 20 minutes compiling notes just to write a two-sentence personalized intro for an email. This manual work is the ceiling on your growth. It doesn’t scale past you, and it’s the first thing to break when you get busy.
This is the exact problem that properly designed, deployable AI agents for small agencies are built to solve. Forget the science fiction hype of autonomous robot CEOs. A useful AI agent is just a focused, repeatable automation that uses a Large Language Model (LLM) to perform a specific reasoning task you used to do yourself. It’s a workflow, not a personality. Its job is to take a piece of data, enrich it, and hand you back a finished product, saving you from the drudgery of reactive, manual research.
What Most Guides on AI Agents Get Wrong
Most of the content out there on building AI agents is, frankly, academic nonsense for a small operator. It points you toward complex developer tools like LangChain or CrewAI. These are powerful AI agent frameworks, but they’re total overkill for 95% of agency tasks. They introduce a dozen new points of failure and require you to write and maintain Python code. You don’t need a distributed multi-agent system to summarize a website.
π€
Recommended Reading
AI Side Hustles
12 Ways to Earn with AI
Practical setups for building real income streams with AI tools. No coding needed. 12 tested models with real numbers.
The other critical error is the focus on full autonomy. The dream of an agent that can ‘browse the web’ and ‘make decisions’ is still a dream in 2026. These systems are brittle, unpredictable, and expensive to run. What actually works is a linear, triggered workflow. It follows a recipe: when X happens, do step 1, then step 2, then send the result to step 3. The LLM is just one of those steps, a powerful one for parsing and summarizing, but still just a step. The real intelligence is in the workflow you design, not in some magical autonomous brain.
The Simple Stack: Building Your First Lead Qualification Agent
Let’s build something real. Our goal is an agent that activates when we add a new company domain to a spreadsheet or CRM. It will research the company and return a structured JSON object with a summary, recent news, and a potential pain point. This is an ai automation blueprint you can build in an afternoon.
Hereβs the stack I use for this kind of work:
- Orchestrator: the Make platform. It’s a visual no code ai builder that connects APIs. It’s more flexible than Zapier automations for multi-step logic. If you prefer to self-host, n8n is a great open-source alternative.
- Data Source/Search: Perplexity API. Instead of a messy Google Search API, Perplexity’s API is designed for answering questions with sources. It’s perfect for company research.
- LLM: Claude 3.5 Sonnet. For this kind of structured data extraction and summarization, it’s faster and cheaper than GPT-4o, and its JSON mode is extremely reliable.
The flow in Make.com is simple: a trigger watches for a new lead. The first module takes the company domain and sends it to the Perplexity API with a query like “What is [company domain]’s business and what have they been in the news for recently?”. The text response from Perplexity is then passed to the Claude 3.5 Sonnet module with a specific prompt (more on that below). The final step is to parse Claude’s JSON output and update your CRM or send a Slack notification.
My biggest gripe with Make.com is its error handling visualization. When a multi-step scenario fails, the tiny red error icon doesn’t give you enough context, and you have to click through multiple logs to find the actual API response that broke. But the power it gives you is worth the occasional headache.
Now for the cost. The Perplexity API’s pro plan at $20/month is a steal for this. You get 300+ daily API calls which is more than enough for a small agency’s lead flow. Don’t pay for enterprise search tools until you have to. Claude Sonnet is also incredibly cheap, costing fractions of a cent per lead researched. You could process a thousand leads for less than $10.
The best part of this setup is the output control. Using Claude 3.5 Sonnet’s JSON mode, I can force the agent to return a perfectly structured object with `company_summary`, `recent_news`, and `pain_point` keys. This data is instantly usable in a CRM or email tool. No more messy text parsing.
The Prompt is Your Agent’s Brain (And Most Prompts are Bad)
The magic isn’t in the model; it’s in the instructions. A lazy prompt gets you lazy results. For an agent to work reliably, its prompt needs to be a detailed standard operating procedure (SOP). It needs a role, context, clear instructions, and a strict output format.
Hereβs a prompt that actually works for our lead qualification agent:
You are an expert business development research assistant working for a B2B marketing agency. Your goal is to analyze the provided text about a company and extract key business intelligence.The text is from a web search summary. Your task is to synthesize this information into a structured JSON object.Instructions:1. Read the entire text to understand the company's core product or service.2. Identify the primary customer they sell to (e.g., enterprise, SMBs, consumers).3. Scan for any news mentioned, such as funding rounds, product launches, or executive hires from the last 6 months. If no news is present, state that.4. Based on their business model and industry, infer one specific and credible marketing-related challenge they likely face. Be specific. Instead of "needs more leads," write something like "likely struggles to differentiate in a crowded B2B SaaS market."5. Return ONLY a single, valid JSON object. Do not include any introductory text, markdown formatting, or explanations.The JSON object must have these exact keys:"company_summary": A 2-sentence description of what the company does."recent_news": A 1-sentence summary of the most important recent news, or "No significant news found.""inferred_pain_point": The specific marketing challenge you identified.
This level of detail is not optional. It’s the difference between an agent that works 99% of the time and one that works 60% of the time.
How Do You Handle Inconsistent Data Inputs?
Your agent will inevitably get bad data. A user will submit `gmial.com` instead of `gmail.com`. The search API will find nothing on a brand new startup. The website might be a parked domain. If you don’t plan for this, your automation will fail constantly.
The solution is to build in conditional logic. In Make.com, this is done with a module called a “Router.” After the Perplexity search step, you add a router with multiple paths based on the result. A filter on the first path checks if the text output from Perplexity has more than zero characters. If it does, the data proceeds to the Claude module as normal. This is your ‘happy path’.
A second, default path runs if the first filter fails (i.e., Perplexity returned nothing). This path doesn’t go to the LLM. Instead, it could update a status field in your CRM to “Needs Manual Review” and send you a Slack message. This way, a failure doesn’t stop the whole system; it just flags the problem for a human to look at.
It’s not about making the agent perfect.
It’s about creating a system that gracefully handles failure, which is a core tenet of a good operator playbook.
Debugging 101: When Your Agent Goes Rogue
Even with good error handling, things break. Your agent might start returning empty summaries or hallucinating pain points. Debugging is a methodical process of elimination.
First, check the logs in your orchestrator. Look at the full execution history for a failed run in Make.com. Examine the raw data that was passed into and out of every single module. Ninety percent of the time, the problem is right there: an API key expired, a field name changed, or a previous step returned a `null` value you weren’t expecting.
If the logs show that good data went into the LLM module but bad data came out, the problem is likely your prompt. Isolate it. Copy the exact text input that was sent to Claude and paste it into the Anthropic developer console or a playground. Run the prompt directly. Does it work there? If not, you need to refine your instructions. If it *does* work in the playground, the issue might be an API setting in your Make.com module, like the temperature or max tokens. You’ll quickly learn that LLMs are non-deterministic (meaning you can get slightly different answers from the same prompt), so you need to add instructions that constrain the output format as much as possible β which, yes, is a constant battle.
Building these systems isn’t a one-and-done setup. It requires testing, monitoring, and tweaking. But the payoff is a system that buys you back hours every single week, letting you focus on closing deals instead of doing manual research.
We cover this in more depth elsewhere β deeper coverage of AI agent platforms.
If you’d rather skip the build and deploy a working version in an afternoon, we’ve packaged this entire workflow as a blueprint in our AI Agent Builder Kit. You can find it at deepusecase.com/vault/ai-agent-builder-kit.