Last month I needed a steady flow of qualified leads for my consulting side‑hustle, but manual LinkedIn scraping and email writing ate up half my week.
By the end of this guide you’ll have a working Zencoder AI workflow that pulls leads, writes copy, and sends outreach — plus you’ll know where it tends to break and how to fix it.
Why I Chose Zencoder AI Over Other Tools
I looked at a few AI agent frameworks that promise to chain scrapers, LLMs, and email senders. Most felt either too heavyweight or required a PhD in YAML to get a simple loop running. Zencoder AI stood out because its UI lets you drag‑and‑drop HTTP calls, LLM prompts, and conditional branches without writing a single line of server code.
The free tier gives you 500 automation minutes per month, which is enough to test a small lead‑gen loop. I upgraded to the $49/mo plan after hitting that limit in three days.
Scenario: The LinkedIn Lead Gen Challenge
My goal was simple: pull 200 new LinkedIn profiles each week that match a job title, extract their name and company, then send a personalized cold email that references a recent post they made.
I broke the task into three stages: (1) scrape LinkedIn with Apify, (2) feed the raw data into Zencoder AI to generate email copy, (3) push the finished emails to Gmail via the Make platform.
At first I tried to do everything inside Zencoder AI using its built‑in web scraper, but the scraper kept getting blocked by LinkedIn’s anti‑bot measures. Switching to a dedicated Apify actor solved the blockage problem and gave me clean JSON output.
What Most Guides Get Wrong About AI Agent Frameworks
Many tutorials treat the LLM as a magic black box that can understand any prompt you throw at it. In reality, the model will hallucinate fields, ignore formatting instructions, and return plain text when you asked for JSON.
The guide that told me to “just ask the AI to output JSON” left me with a pile of malformed strings that broke my downstream parser. What works instead is to give the model a strict JSON schema and ask it to validate its own output before moving on.
Concrete Example: Prompt, Scraper, and Email Generator
Here’s the exact prompt I feed into Zencoder AI after receiving the Apify JSON:
{
"instruction": "You are a senior sales copywriter. Given the following LinkedIn profile data, write a short cold email (max 120 words) that:
1. Greets the person by first name.
2. References a specific recent post they made (include the post title).
3. Explains how our service helps similar companies reduce churn by 15%.
4. Ends with a low‑pressure call to action to book a 15‑minute chat.
5. Output ONLY a JSON object with keys: subject_line, email_body.
Profile data:
{{apify_output}}
"}
I store the Apify output in a variable called {{apify_output}} using Zencoder AI’s built‑in data mapping. The model returns a clean JSON blob that I then pass to Make.com’s Gmail module.
For the scraper side, I used an Apify actor called “LinkedIn Profile Scraper” (cost $15/mo for 10k rows). It returns fields like firstName, lastName, company, recentPostTitle, and recentPostUrl.
