The Scenario
A market research firm is three days from delivering a local competitor benchmarking report to a retail client. The analyst has an Excel workbook with 80 city-plus-category pairs — "plumbers in Denver," "HVAC contractors in Phoenix," and so on — and needs the top 5 local business results for each one, including ratings and phone numbers. The deadline is real. The data is not yet in the workbook.
The bad version:
- Search "plumbers in Denver" on Google, open the Maps panel, read out the first 5 business names and ratings, type them into 10 columns across row 2
- Do the same for row 3, then row 4, then notice around row 15 that some queries show sponsored local ads at the top, contaminating the organic ranking data
- Spend an additional two hours at the end trying to figure out which entries are ads and which are genuine top results
The report is supposed to benchmark organic local visibility. Starting with contaminated data means the entire analysis is suspect before anyone reads it.
The Easy Way: One Prompt in SheetXAI
SheetXAI is an AI agent that lives inside your Excel workbook. It reads the query list in column A, calls SerpApi's Google Maps endpoint for each one, filters to organic local results, and writes the business data back — all 80 rows. One prompt.
For each query in column A, search Google Maps via SerpApi and list the top 5 business names, ratings, and phone numbers in the next 15 columns
What You Get
- Columns B, E, H, K, N receive business names for local positions 1 through 5
- Columns C, F, I, L, O receive the corresponding star ratings
- Columns D, G, J, M, P receive the phone numbers where listed
- Queries with fewer than 5 organic local results leave the later column groups blank
What If the Data Is Not Quite Ready
Queries in column A are inconsistently formatted
Normalize each query in column A to the format "category in city" (fixing capitalization and extra spaces), then search Google Maps via SerpApi and write the top 5 business names and ratings into columns B through K
You also need the address for each business
For each query in column A, search Google Maps via SerpApi and write the top 3 business names, street addresses, ratings, and review counts into columns B through M
You want only businesses with at least 4 stars
Search Google Maps via SerpApi for each query in column A, filter results to businesses with a rating of 4.0 or higher, and write up to 5 matching business names and ratings into columns B through K; if fewer than 5 meet the threshold, leave the remaining columns blank
Full data pull with outlier flagging in one prompt
Search Google Maps via SerpApi for each query in column A, write the top 5 business names, ratings, and review counts into columns B through P, calculate the average rating for each row in column Q, and flag in column R any query where the top-rated business has fewer than 10 reviews
The rating flag and the pull happen together — no second pass needed.
Try It
Get the 7-day free trial of SheetXAI and open your location query workbook, then ask SheetXAI to pull Google Maps results for every row. Also see the spoke on pulling DuckDuckGo and Bing Maps data as an alternative source, or the hub overview of all SerpApi workflows.
