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 
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!
[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.