Built an AI agent that scrapes negative competitor reviews, finds the reviewer's contact info, and sends a personalized email sequence. Fully automated
The idea started simple: what if instead of cold outreach, we reached out to people who were already frustrated with a competitor? People who had just gone out of their way to leave a 1 or 2-star review are basically raising their hand saying they're unhappy. That felt like the right moment to show up with a better option.
So we built an agent that does this every night without anyone touching it.
Phase 1: Scraping and enrichment
At midnight, Firecrawl scrapes Trustpilot and G2 across 6 competitors (12 URLs total), and pulls every new negative review. OpenAI reads each reviewer's display name and tries to extract a company name. If it finds one, Firecrawl searches for their domain and Clay takes it from there to find a verified work email and LinkedIn profile. Anything without a company name, domain, or email gets filtered out and logged. Out of roughly 80-100 reviews scraped each night, 3-8 make it through with a real contact.
Phase 2: Email generation
Claude reads the full review and writes a 3-email sequence built around what that specific person complained about. It also classifies the pain point and scores the lead. If someone mentions HubSpot or left a 1-star review, the SDR team gets a Slack alert.
Phase 3: Outreach
Everything lands in Lemlist automatically. Email 1 goes out the same day, Email 2 on Day 4, Email 3 on Day 8. All personalized, zero manual work.
Full stack: N8N · Firecrawl · OpenAI · Clay · Claude API · Lemlist · Google Sheets
If anyone's curious about the filtering logic or how we prompted Claude, happy to share more in the comments.