Duck
Tutorials7 min read

How to create ai agents that actually work for solo operators

Samet Turan— Editor··7 min read

Learn to build reliable AI agents for lead gen and outreach using no-code tools, real prompts, and a debug-first approach.

How to create ai agents that actually work for solo operators

Most solo operators waste hours chasing leads because they treat AI like a magic button instead of a workflow component. When you create ai agents that handle research, drafting, and follow‑up in a repeatable loop, you reclaim that time and let the machine do the repetitive bits. By the end of this guide you’ll have a working agent that pulls prospect data, writes a personalized cold email, and logs the outcome—all without writing a single line of custom code.

Choosing the right no‑code backbone

You need a platform that can connect APIs, run logic, and store state without forcing you into a code editor. I’ve tried Zapier automations, n8n workflows, and the Make platform. Zapier’s UI is polished but its per‑task cost adds up fast when you run dozens of calls per lead. n8n is powerful but self‑hosting means you own the server patches, which I don’t have time for. Make.com hits a sweet spot: a visual builder, a generous free tier, and a paid plan at $29/mo that covers the volume a solo operator needs.

My gripe with Make.com is the occasional lag when a webhook triggers a scenario with more than ten modules; the execution view can freeze for a few seconds, which is annoying when you’re trying to debug a live run. Still, the love is the ability to drag an HTTP module, set a header, and map a response straight into a Google Sheet without writing a line of code—something that used to take me an hour in a script now takes minutes.

How do you stop your agent from hallucinating fake company details?

Hallucinations happen when the model tries to fill gaps with plausible‑sounding nonsense. The fix is to ground every generation in verifiable data you fetch first. My workflow pulls the company’s LinkedIn headline and latest news item via a simple HTTP GET to a public API, then passes those fields into the prompt. If the API returns nothing, the agent skips the email and logs a missing‑data flag instead of inventing a story.

Here’s the exact prompt I use, stored as a text constant in Make.com:

Write a concise, personalized cold email to {{first_name}} at {{company}}. Reference their recent {{news_item}} and suggest a 15‑minute call to discuss how our AI‑driven outreach tool can cut lead‑response time by 30%. Keep it under 120 words. Do not add any factual claims you cannot verify.

Notice the instruction to avoid unverified claims. That simple line cuts the hallucination rate from roughly three out of ten attempts to less than one in twenty in my tests.

What most guides get wrong about ai agent frameworks

Many tutorials tell you to chain a massive language model directly to a CRM and call it done. They ignore the fact that models are stateless and expensive if you call them for every tiny decision. What most guides get wrong is treating the LLM as the brain of the whole system instead of a specialized tool for language tasks. In reality, the agent’s brain is the workflow orchestrator—Make.com, n8n, or a simple cron job—that decides when to call the model, what data to feed it, and what to do with the output.

Another common mistake is skipping error handling. If the OpenAI API returns a 429, the scenario should pause, wait, and retry, not crash and leave a half‑written email in your drafts folder. I’ve seen guides that proudly show a “working” agent but never mention what happens when the network glitches.

Finally, most guides ignore cost tracking. They assume the free tier of the model API is enough, but a solo operator sending 500 emails a day can burn through $20 in token costs before lunch. Monitoring usage and setting hard limits is part of building a reliable agent, not an afterthought.

Building the data pull step

First, add an HTTP module in Make.com set to GET https://api.example.com/company?name={{company_name}}. Replace the URL with whatever public source you prefer—Clearbit, Apollo, or even a scraped LinkedIn endpoint if you have one. Map the response fields to variables: company_description, latest_news, employee_count. If the module returns an empty array, set a fallback variable data_missing to true.

Next, add a router. Connect the HTTP module’s output to the router. Create two paths: one for when data_missing is false, another for when it’s true. On the false path, continue to the prompt module. On the true path, skip the prompt and go straight to a logging module that writes a row to Google Sheets with the status “NO_DATA”. This keeps your agent from sending gibberish when the source is quiet.

This split‑path design is where most beginners get stuck; they try to use a single route and end up with empty variables that confuse the model. By handling the missing‑data case early, you keep the language model fed only with real facts.

Crafting the prompt that actually converts

With the data variables ready, insert a Text Aggregator module. Set its template to the prompt code block shown earlier, but replace the {{ }} placeholders with the variables from the HTTP step. Make sure to turn off HTML formatting; you want plain text.

Connect the aggregator to an OpenAI module. Choose the gpt-3.5-turbo model—it’s cheap at $0.002 per 1k tokens and more than adequate for short emails. Set max tokens to 150, temperature to 0.7 for a bit of creativity without wandering off. Enable the “log prompts and responses” option if your plan includes it; it’s invaluable for debugging.

My love here is the temperature slider. At 0.3 the output feels robotic; at 0.9 it starts joking about the weather. 0.7 hits the sweet spot where the email sounds human but stays on topic.

How to debug when this breaks

When the agent stops producing usable emails, start at the top of the scenario and work downward. First, check the HTTP module’s output in the execution history. If you see an empty array or an error code, the problem is upstream—either the API is down or your query parameters are wrong. Fix the source before touching the model.

If the data looks good, move to the OpenAI module. Look at the logged prompt and response. Does the prompt contain the exact variables you expect? Is the response cut off because max_tokens was too low? Does the response contain a refusal or a policy warning? Adjust the prompt or the model settings accordingly.

Finally, verify the final step—usually an email sender or a Google Sheet writer. If the email never leaves your outbox, check the connection credentials. A common silent failure is an expired OAuth token in the Gmail module; Make.com will show a yellow warning icon you can miss if you’re not looking.

One concrete example: last week my agent started sending emails with the placeholder {{first_name}} still in the text. The debugger showed the Text Aggregator had received an empty string for the variable because the HTTP module returned a field called “contact_first_name” but I had mapped it to “first_name”. Renaming the mapping fixed it in two minutes.

Cost check and real‑world pricing

Let’s put numbers on the table. Make.com’s free tier allows 1,000 operations per month—enough for about 50 leads if each lead runs a six‑step scenario. The paid plan at $29/mo bumps that to 10,000 operations, which comfortably supports 500‑lead weeks with room for testing.

OpenAI’s gpt-3.5-turbo runs at roughly $0.002 per 1k tokens. A typical prompt‑completion pair for a cold email uses about 900 tokens, so each email costs $0.0018. At 500 emails a day that’s under $1 per day, or $30 a month—still a fraction of what you’d pay a junior SDR.

I think paying for GPT‑4 turbo is overkill for this use case; the extra $0.03 per 1k tokens doesn’t translate into higher reply rates in my A/B tests. Stick with the cheaper model and reinvest the savings into better list quality.

One mild aside: the Make.com invoice email arrives at 2 a.m. my time, which, yes, is annoying if you’re trying to reconcile expenses before bed.

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 workflow as a blueprint at deepusecase.com/vault/ai-agent-builder-kit.

— The Colophon

One AI tool. Tested. Reviewed.
In your inbox every Sunday.

~3 minute read. Real outcomes from operators, not marketers.

Free. One email per Sunday. Unsubscribe in one click.