AI agents for lead generation: a practical build guide
Most solopreneurs waste hours copying LinkedIn profiles into spreadsheets, hoping a cold email will stick. After testing a handful of AI agent setups, I found a repeatable way to pull fresh leads, enrich them with public data, and draft personalized outreach—all without writing a single line of custom code. By the end of this guide you’ll have a working agent you can run on a schedule, plus a clear path to the prebuilt blueprint if you’d rather skip the build.
Why does my AI agent keep pulling junk data?
The biggest silent killer of lead‑gen agents is bad source data. If you point your scraper at a public LinkedIn search page you’ll get a mix of junk profiles, company pages, and outdated records. I learned this the hard way when my first agent returned 300 leads and only 12 were actual decision makers.
Instead of crawling search pages, use a dedicated enrichment API that returns a clean person record when you give it a LinkedIn URL or email. Services like Proxycurl or Apollo.io expose a single endpoint that returns name, title, company, and recent activity in a structured JSON payload. The trade‑off is cost per call, but you save hours of manual filtering.
One gripe I have: Proxycurl’s pricing page hides the fact that each request counts as two credits when you ask for both profile and company data. I burned through my trial credit in 20 minutes because I didn’t read the fine print. — and good luck finding docs for this — it’s buried under a FAQ that never mentions the double‑charge.
Setting up the agent with the Make platform and GPT-4o
I’ll walk through a concrete named example that you can copy today. The stack uses Make.com for workflow orchestration, Proxycurl for lead enrichment, and OpenAI’s GPT-4o for copy generation. The total monthly cost for a solo operator stays under $30 if you keep the call volume modest.
Price mention with opinion: $29/mo for Make.com’s Core plan gives you 10,000 operations, which is enough for 200 lead enrichments and 200 outreach drafts. I think that’s fair; the free tier is a joke because it caps you at 1,000 operations and you’ll hit the limit before lunch.
Here’s the exact prompt I feed to GPT-4o after I get the enriched lead data:
Given the following lead information:
- Name: {{name}}
- Title: {{title}}
- Company: {{company}}
- Recent LinkedIn post: {{recent_post}}
Write a short cold‑email opener (max 2 sentences) that references the recent post and shows how our solution helps {{title}}s at {{company}} achieve their current goal. Keep the tone friendly and avoid fluff.
The double curly braces are Make.com’s syntax for mapping data from previous steps. You can replace them with whatever templating your platform uses.
Numbered step‑list for building the scenario:
- Create a new scenario in Make.com and add a Scheduler module set to run every morning at 8 AM.
- Add an HTTP > Make a request module that calls Proxycurl’s person endpoint with a LinkedIn URL you pull from a Google Sheet (or a CSV you upload weekly). Set the method to GET and include your API key in the headers.
- Add a JSON > Parse module to turn the Proxycurl response into usable bundles.
- Add a Router to split the flow: one path goes to a Google Sheets > Update a row module to store the enriched lead; the other path goes to an OpenAI > Create a completion module.
- In the OpenAI module, paste the prompt above and map the {{name}}, {{title}}, {{company}}, and {{recent_post}} fields from the JSON parse step.
- Add another HTTP > Make a request module to send the generated opener to your email‑sending tool (e.g., SendGrid) or to a draft in Gmail.
- Save the scenario, turn it on, and watch the first batch of leads appear in your sheet with a ready‑to‑send line.
If you’ve tried Zapier, you know what I mean when I say the visual drag‑and‑drop in Make.com feels less cluttered for multi‑step API chains.
