agent-image-lead-qualification-assistant
Personalized Email Outreach with LinkedIn & Crunchbase Data and Gemini AI Review AI-Enriched Cold Outreach: Research → Draft → QA → Write-back
AI-Enriched Cold Outreach: Research → Draft → QA → Write-back What this template doesAutomates cold email drafting from a lead list by:Enriching each lead...
screenshot-daily-task-reminder-bot
Created by:
Johnny Rafael
Last Updated:

June 15th 2025

Agent Details:
n8n
OpenAI
general
HTTP Request
If
Edit Fields (Set)
Description
AI-Enriched Cold Outreach: Research → Draft → QA → Write-back What this template does Automates cold email drafting from a lead list by: Enriching each lead with LinkedIn profile, LinkedIn company, and Crunchbase data Generating a personalized subject + body with Gemini Auto-reviewing with a Judge agent and writing back only APPROVED drafts to your Data Table Highlights Hands-off enrichment via RapidAPI; raw JSON stored back on each row Two-agent pattern: Creative Outreach Agent (draft) + Outreach Email Judge (QA) Structured outputs guaranteed by LangChain Structured Output Parsers Data Table–native: reads “unprocessed” rows, writes results to the same row Async polling with Wait nodes for scraper task results How it works (flow) Trigger: Manual (replace with Cron if needed) Fetch leads: Data Table “Get row(s)” filters rows where email_subject is empty (pending) Loop: Split in Batches iterates rows Enrichment (runs in parallel): LinkedIn profile: HTTP ( company_url ) → Wait → Results → Data Table update → linkedin_profile_scrape LinkedIn company: HTTP ( company_url ) → Wait → Results → Data Table update → linkedin_company_scrape Crunchbase company: HTTP ( url_search ) → Wait → Results → Data Table update → crunchbase_company_scrape (All calls use host cold-outreach-enrichment-scraper with a RapidAPI key.) Draft (Gemini): “Agent One” composes a concise, personalized email using row fields + enrichment + ABOUT ME block. Structured Output Parser enforces: { "email_subject": "text", "email_content": "text" } Prep for QA: “Email Context” maps email_subject , email_content , and email for the judge. QA (Judge): “Judge Agent” returns APPROVED or REVISE (brief feedback allowed). Route: If APPROVED → Data Table “Update row(s)” writes email_subject + email_body (a.k.a. email_content ) back to the row. If REVISE → Skipped; loop continues. Required setup Data Table: “email_linkedin_list” (or your own) with at least: email , First_name , Last_name , Title , Location , Company_Name , Company_site , Linkedin_URL , company_linkedin (if used), Crunchbase_URL , email_subject , email_body , linkedin_profile_scrape , linkedin_company_scrape , crunchbase_company_scrape (string fields for JSON). Credentials: RapidAPI key for cold-outreach-enrichment-scraper (store securely as credential, not hardcoded) Google Gemini (PaLM) API configured in the Google Gemini Chat Model node ABOUT ME block: Replace the sample persona (James / CEO / Company Sample / AI Automations) with your own. Nodes used Data Table HTTP Request: AI Agent: Google Gemini Chat Model Split in Batches: Main Loop Set: RapidAPI-Key Customization ideas Process flags: Add email_generated_at or processed boolean to prevent reprocessing. Human-in-the-loop: Send drafts to Slack/Email for spot check before write-back. Delivery: After approval, optionally email the draft to the sender for review. Quotas & costs RapidAPI: Multiple calls per row (three tasks + result polls). Gemini: Token usage for generator + judge per row. Tune batch size and schedule accordingly. Privacy & compliance You are scraping and storing person/company data. Ensure lawful basis, respect ToS, and minimize stored data.

Build Dynamic AI Agents

Join a community of growing Agentic AI Developers.