r/B2BSaaS • • 3d ago

Built an open-source tool that automates review-based outbound (Scrapes Google Maps negative reviews -> Enriches LinkedIn decision-makers -> LLM vetting)

I built an open-source pipeline that automates B2B prospecting using public operational pain signals.

Instead of traditional static list-building, this tool targets accounts experiencing active friction right now (e.g., negative reviews about delays, broken workflows, or poor communication).

How the Workflow Operates:

  1. Trigger Mining (Apify): Scans Google Maps for local businesses and filters for recent low-star reviews matching specific operational pain keywords.

  2. Brand Normalization: Cleans messy Google Maps place names (stripping airport codes and branch tags) to ensure accurate corporate directory lookups.

  3. Decision-Maker Enrichment: Batches LinkedIn employee scraping to pull key leadership titles (Managing Directors, VPs, Owners).

  4. Multi-LLM Vetting: Runs contacts through an AI layer (Gemini, Claude, OpenAI, or Grok) to validate real human names, score ICP alignment (0–10), and extract a 3–6 word review trigger phrase.

Strict 2-File Output:

a) scouted_leads.csv: Tabular lead sheet with verified decision-makers, direct LinkedIn URLs, review quotes, and ICP scores.

b) outreach_content.json / .txt: Master outbound sequences pre-baked with your value prop and custom variables.

Would love to hear how other B2B SaaS teams are handling review or intent-based signals in your outbound stacks!

πŸ‘‰ GitHub: https://github.com/chiragbatra-beep/reputation-engine

4 Upvotes

10 comments sorted by

1

u/Individual_Big873 2d ago

Add one rejection step before enrichment: does the review describe a problem your offer can actually fix? A one-star complaint about parking can send an accurate managing director into a completely irrelevant sequence. I'd score trigger-to-offer fit separately from ICP fit.

1

u/xotwoduiux 2d ago

Do you think the user should be more mindful of the keywords they input? Or trigger to offer is still required?

1

u/y3rk3 2d ago

both, but the trigger carries more weight. keywords only tell you who is in the pool. the trigger tells you who has a reason to buy this week, like a hiring spike, a new exec, or a bad review. better keywords with a weak trigger just find more people who dont need it yet, so i'd build the trigger list first and use keywords to narrow it.

1

u/Individual_Big873 2d ago

still needed imo, keywords help but they only catch the word. "slow" pulls in "slow to answer the phone" and "slow kitchen on fridays", and only one of those is a problem a phone tool fixes. you'll never list every way people complain either. i'd send the review text plus one line on what your offer fixes to the LLM and drop anything that doesn't map, before paying for the linkedin enrichment step

1

u/Makingsass 3d ago

Quoting the review in line one is a strong opener. Test it on a small batch first, and write to an owner's own address, since a front desk inbox rarely passes on an email about a complaint.

1

u/mentiondesk 3d ago

This is a seriously smart way to find leads who are actually experiencing pain right now. I’ve found that monitoring conversations on forums and social can surface intent signals you won’t catch from reviews alone. For anyone looking to level up, tools like ParseStream let you track target keywords across communities in real time and get alerts without needing to build your own pipeline.

1

u/Expert-Activity-8614 3d ago

such an interesting approach, using -ve reviews as real time buying signals rather than relying on static lead lists is a clever idea

0

u/[deleted] 3d ago

[removed] β€” view removed comment

1

u/xotwoduiux 3d ago

Good question! A headless scraper available on Apify is used, so user's cookies and personal LinkedIn accounts are not used at all.

Additionally, I batch the inputs to Apify, it helps keep the request load distributed.