[JOURNEY] The Invisible Agency: $0 to $2,000/mo selling local leads [Progress: $0/$2,000]

Hey everyone, I’m starting a new journey today. My goal is to hit $2,000/month in recurring revenue by building an “Invisible Agency.”

The Angle: I’m targeting local niches (Plumbers, Roofers, Lawyers) in mid-sized cities. I’m looking for businesses that have a Google Maps listing but either have NO website, or a terrible one with bad SEO.
The Stack: RTILA X + ChatGPT (for cold email personalization) + Instantly.ai.

Day 1 Plan:
I’m using RTILA to scrape Google Maps. I need the Business Name, Phone Number, and Website URL. If the website is null, they go into Bucket A (Sell them a website). If it exists, I’ll scrape it later to check for broken links/bad SEO (Bucket B).

I asked the RTILA Assistant to build the script for https://www.google.com/maps/search/plumbers+in+chicago/. It generated a script using helpers.autoScroll() on the feed container.

Wish me luck! I’ll update this thread with my progress.

Day 2 Update: First Failure :sweat_smile:

Well, that didn’t go as planned. The script scrolled fine, but my selectors for the phone numbers broke after the 10th listing. Google Maps seems to obfuscate their classes heavily. I got a bunch of null values.

Any tips on getting stable selectors for Maps?

Hey @leadgenguru! Google Maps is notorious for changing classes dynamically.

Instead of using CSS classes, try using aria-label or data-item-id attributes. For example, phone numbers often have an aria-label that starts with “Phone:”.

You can ask the AI Assistant to rewrite your run_script and explicitly tell it: “Do not use CSS classes. Use aria-labels for the phone number and website.” It will update the extraction logic for you!

Day 4 Update: We have DATA! [Progress: $0/$2,000]

Thanks @RTILA_Support! Switching to aria-label worked perfectly. I just scraped 500 plumbers in the Chicago area.

Out of 500, about 85 had no website listed. I exported the CSV, ran it through ChatGPT to write a personalized cold email (“Hey [Name], noticed your Maps listing doesn’t have a site…”), and loaded them into Instantly.

Fingers crossed for some replies this week.

Day 14 Update: First Client! :rocket: [Progress: $500/$2,000]

We got one! A local plumbing company replied to the cold email. They’ve been meaning to get a site up for months but didn’t know who to trust. I sold them a basic template site for $500 + $100/mo hosting/maintenance.

The RTILA pipeline is officially validated. Now I just need to scale this to 10 more cities.