Case study · 90-day engagement

From 14 GBP calls/mo to 78 in 13 weeks.

A Houston concrete contractor with 18 years of experience pouring driveways, foundations, and patios was watching his Google Maps ranking slide every quarter. He had 12 reviews. His main competitor had 280. He thought he needed to "buy reviews" or "rebuild the website." Neither was the answer. The fix was a stack of photos he already had on his phone.

The challenge

"My competitor has 280 reviews. I have been here longer than him."

The contractor came in through a Houston builder's referral. The bot scored his website at 60 — fine, not a website problem. The GBP score was 38. That is where the leak was.

We pulled his GBP data. The damage:

  • Only 4 photos on the GBP listing for an 18-year-old contractor. Top competitor had 412.
  • 12 reviews lifetime, last review 8 months old. A "dying business" signal in Google's ranking model.
  • Hours field said "Mon-Fri 8-5" but he worked Saturdays and answered emergencies on Sundays. Those hours blocked him from "open now" filters.
  • Categories were set to just "Concrete contractor." He could have been listed under 6 secondary categories he was eligible for: foundation, driveway, patio, retaining wall, sidewalk, slab repair.
  • No LSA badge. He was eligible. He had never applied.

The contractor was an excellent operator with no marketing presence. The fix was to make the GBP match the actual quality of his business.

The plan

Four priorities for a GBP rescue.

Priority 1: 180-photo upload over 90 days (week 1-13)

Scheduled 2 photos a day for 90 days, every day. Pulled from his existing job photos (he had 6,000+) plus new ones from active jobs. Each photo got a caption with the job type, square footage, and Houston neighborhood. Mix of progress shots, finished work, before-and-after, and team-on-site. By week 13 the GBP had gone from 4 photos to 180.

Priority 2: Square-invoice review workflow (week 2)

Tied a Podium SMS request to his Square invoicing system. Every customer got a review request 4 hours after their final invoice was sent. We helped him write a 90-second post-job video to send with the request — owner-on-camera, thanking them for the job, asking for feedback. Review velocity went from 1.5/mo to 12/mo by week 8.

Priority 3: GBP cleanup + secondary categories (week 1)

Updated hours to actual hours (Mon-Sat 7-6, Sun emergency). Added secondary categories: foundation contractor, driveway contractor, patio contractor, retaining wall contractor, sidewalk contractor, slab repair. Added the Q&A section with 8 of the questions he gets asked weekly, answered. Added attributes: free estimates, 24-hr emergency, BBB accredited.

Priority 4: LSA application (week 3-8)

License + insurance were already in place. Background check cleared in week 5. LSA badge live by week 8. From week 8 onward, "Google Screened" appeared on every relevant Houston concrete search. His GBP listing started showing up in the LSA 3-pack 60% of the time within 4 weeks of badge approval.

AI tools we used

The internal stack that did the heavy lifting.

We do not pretend the work happens by hand. Three of our internal tools are the reason this engagement moved as fast as it did. Each of them replaces what used to be days of human time.

Tool 01Internal search-term scoring

Custom AI we built that grades every search term on commercial intent, urgency, and local match in under a second. Replaces a half-day human audit.

Tool 02Negative keyword expander

Takes one bad search term and proposes the related variants we should also negate before they show up. Found 87 negatives nobody had thought of.

Tool 03Conversion tracking validator

Crawls the site and fires every conversion event in a sandbox so you can see what is actually being recorded vs what should be. Caught the duplicate form fire in 4 minutes.

The execution

Week-by-week timeline.

WeekWhat we shippedWhat moved
Week 1GBP cleanup: hours, categories, attributes, Q&A. Photo schedule shipped to contractor"Open now" filter visibility 4× same week
Week 2Podium-Square review workflow connectedFirst 8 new reviews in 7 days
Week 430 photos uploaded, GBP impressions up 180%First 3 inbound calls from GBP search
Week 5LSA application submitted, all docs gatheredBackground check kicked off
Week 8LSA badge live, 60 photos uploaded, 38 new reviewsFirst LSA call within 6 hours
Week 11120 photos, 78 reviews, ranked top-3 on Houston Maps for 5 keywordsGBP calls hit 62/mo
Week 13Final reviewRun rate stable at 78 GBP calls/mo

The numbers

What changed in the data.

5.6×
GBP calls per month
+750%
Lifetime reviews
+820%
GBP photo count

The mix that produced the new run rate:

Average concrete job ticket in Houston runs $4,200-$8,500. The +64 monthly GBP calls at his typical 35% close rate represents roughly 22 new jobs/mo at an average $5,800 ticket = $128k/mo in new gross revenue. The 90-day engagement cost $2,397.

I had been pouring concrete in Houston for 18 years and had less to show for it on Google than a guy who started in 2022. Mark made me realize the algorithm does not care about how long you have been in business. It cares whether you have shown up on Google Maps. After 90 days I had shown up.

Concrete contractor·Houston, TX · 18 years in business, 6 trucks

Keep reading

Three more turnarounds you might find useful.

Want a story like this with your numbers on it?

Thirty minutes. We pull up your account on screen. We tell you what we would do, what we would not do, and whether we are the right fit for your business.

Book my 30 min call Run my free audit