What happened when the AI was asked
On September 6, 2026, at 7:43 in the evening, I told ChatGPT I needed my gutters cleaned this weekend and asked for a few options to get quotes from. It asked for a city or ZIP code. I gave it 97209, the Pearl District. It named three companies and told me to contact all three today because weekend slots fill fast.
NW Shine came first, with a street address in Northwest Portland, the phone number and email address from its site, the note that it advertises gutter cleaning alongside roof, moss, and window work, and a Chamber of Commerce listing showing strong review volume. USA Gutter, Window and Roof Cleaning came second: family-owned since 2009, bonded and insured, same-day phone estimates, photo proof, hand-cleaned gutters, downspout flushing, and the phone number. Moss Busters came third, with gutter cleaning starting at $225, free estimates, and thirteen years of experience, plus a warning that some listings show weekends closed, so ask about this weekend specifically.
Every source it linked was either the company's own website or one listing. The AI built the answer from what each company had published about itself.

All three have a current website
I opened the three sites after reading the answer. The pattern is clear. The AI's summary of each company is that company's home page, condensed.
USA Gutter's home page says, in its first paragraph, family-owned since 2009, hand-cleaned gutters, photo proof on every visit, and same-day estimates by phone. Below it, a bonded and insured line, the phone number, and a page for each of six services. The AI's description used those exact words. It had nothing to interpret, because the company had already written the sentence.
NW Shine's site carries the phone number and email in text on the contact page, a list of services with a page for each, and a service area that names every suburb and every Portland neighborhood it works in, including the Pearl District and Nob Hill. That neighborhood list is why the AI called it very close to 97209. It matched my ZIP code to a neighborhood the site had named.
Moss Busters publishes a starting price for gutter cleaning, offers free estimates on the page, and states thirteen years of experience. The AI quoted all three. It also found hours on a directory listing that said weekends closed, and it passed that on as a caution. The hours were read from a listing and repeated to a customer with money in hand for the weekend. Keeping the site and the listings in agreement is the GEO half of my SEO, GEO, and AEO services.
Google's results against the AI's
The comparison is the point of collecting both. Ahrefs' snapshot of Google's results for "gutter cleaning portland" on the same day shows a local pack of All Surface Cleaning, PDX Roof Cleaning, and PDX Clean King. Under the map, a Reddit thread ranks second, then PDX Clean King's site, Yelp, TaskRabbit, Peakwalker, Neighborhood Gutters, and Wilderland. Moss Busters is thirteenth. NW Shine and USA Gutter are absent from the top fifteen.
Set the two lists side by side. The AI named three companies. Zero of them are in Google's local pack. One of them ranks organically, at thirteen. The other two are missing from Google's first fifteen results and were still the AI's first two calls.
That gap is the evidence that the two engines weigh different things. Google's pack runs on the business profile: proximity, category, review count. Google's organic list is ranking directories and a Reddit thread above most of the companies themselves. The AI skipped all of that and went to the company websites, where it found a neighborhood list, a services list, a starting price, and a phone number in text. The companies that wrote those pages won the recommendation. The companies that won Google's map had the profile and the reviews, and the AI cited neither.
For a gutter cleaning company, that means two jobs with one foundation. The profile and the reviews put you on the map. The pages put you in the answer. All Surface Cleaning holds the map and sits fifteenth in the blue links. NW Shine holds the AI answer and is absent from both. The company that does both is the one that gets the call from every direction.
| Company | Google local pack | Google organic | Named by ChatGPT |
|---|---|---|---|
| All Surface Cleaning | Yes | 15 | No |
| PDX Roof Cleaning | Yes | Absent | No |
| PDX Clean King | Yes | 4 | No |
| NW Shine | No | Absent | Yes, first |
| USA Gutter | No | Absent | Yes, second |
| Moss Busters | No | 13 | Yes, third |
The website is the source
Generative engine optimization for a gutter cleaning company comes down to one mechanism. The engine repeats what it can read. When someone asks it for a recommendation, it opens websites and listings, pulls the facts it finds there, and hands them to the person asking. A company with a page that states the service, the price, the area, the hours, and the phone number gives the engine a complete answer. A company with a home page from 2012 and a contact form gives it nothing to say, and the engine moves on to the company that did.
The same thing happened with electricians. Asked for three more bids, the AI went to White Lightning Electric's site for the list of services and to West Side Electric's site for its history. In both follow-ups I have run, the question sent the engine to the company's own pages.
One detail from this answer shows the other half of the job. The AI gave NW Shine's address as 1455 NW Irving Street. The company's own contact page says 2175 NW Raleigh Street. A listing still carries the old address, and the engine repeated it. The customer would have gone to the wrong building. Every listing has to agree with the site, because the engine reads all of them and picks one.
What the searches are worth
The gutter cleaning searches are large, seasonal, and open. Gutter cleaning near me is 55,000 searches a month in the US at a difficulty of zero. Gutter cleaning cost is 4,600 a month, also at zero, and Google shows an AI Overview for it. In Portland, the click on gutter cleaning portland costs $12, and moss removal portland costs $16. A company with a page that states its starting price is answering the cost question for both Google's overview and ChatGPT at the same time.
| Search | Volume | Difficulty | CPC |
|---|---|---|---|
| gutter cleaning near me | 55,000 | 0 | $8 |
| gutter cleaning service near me | 10,000 | 26 | $7 |
| gutter cleaning cost | 4,600 | 0 | $4 |
| gutter cleaners near me | 2,100 | 43 | $5 |
| gutter cleaning portland | 600 | 36 | $12 |
| moss removal portland | 500 | 41 | $16 |
| roof cleaning portland | 400 | 50 | $13 |
The gutter-specific steps
The general checklist is in the post on getting ChatGPT to recommend your business. These are the parts the three answers above were built from, in the order I would do them for a gutter or exterior cleaning company. Holiday light installers, where the site is the whole record, follow the same order.
- A page for gutter cleaning on its own. Its own URL, its own title, and a plain description of what is included: hand cleaning, downspout flush, debris bagged, photo proof. The AI named USA Gutter for exactly that list, because the list was on the page.
- A starting price, in text. Moss Busters was named with a number attached, and the customer asking for weekend quotes read it before making a call. Gutter cleaning cost is 4,600 searches a month. Publishing the number answers the question in Google's overview and in the chat.
- Hours that say what you do on weekends. The AI warned that Moss Busters might be closed on the weekend the customer needed. If you work Saturdays, every listing and the site say so in the same words. If you stop on Friday, say that, and the engine will route weekend jobs elsewhere on purpose instead of by mistake.
- The service area by neighborhood. NW Shine matched a ZIP code because its site names the Pearl District. List the suburbs and the neighborhoods you work in as text on a page. The engine matches the customer's location to the words you wrote.
- Phone, email, and address in text on the contact page. All three answers carried a phone number pulled from the site. An address in an image or a map embed is invisible to the engine. Text on the page is what gets quoted.
- Every listing agreeing with the site. The wrong address for NW Shine came from a directory. Chamber of Commerce, BBB, Angi, Yelp, and Google all have to carry the same address, phone, and hours as the site, because the engine reads whichever one it reaches first.
- Reviews that name the service. NW Shine's home page cites more than 210 five-star Google reviews and 420 A ratings on Angi, and the AI called its review volume strong. Ask after every job, and ask for the specifics: gutters, the neighborhood, the season.
How to check it
Ask ChatGPT the question your customer asks, with a ZIP code. "I need my gutters cleaned this weekend, who should I get quotes from near 97209." Then ask for three more. Read what it cites for each company it names. If your company is named, open the sources and check that every fact it quoted is current. If your company is absent, the sources it did cite are the list of places you have to be, and your own site is the first one on it. The free consultation runs that prompt for your ZIP code and reads back what was quoted.
Frequently asked questions
- Are the companies at the top of Google the ones the AI recommends?
- For gutter cleaning in Portland, no. None of the three in Google's local pack were named by ChatGPT, and two of the three it named are absent from Google's first fifteen results. The map runs on the business profile and reviews. The AI runs on what the website says. A company needs both.
- What is GEO for gutter cleaners?
- Generative engine optimization is the work of being the gutter cleaning company an AI names when someone asks it for one. For this trade, the answer is built mostly from your own website: the service page, the price, the hours, the area, and the contact details, plus the listings that repeat them.
- Does ChatGPT read my website directly?
- Yes. In the answer above, every company's description was drawn from its own site, and the AI linked the site as its source. It also reads directories and review platforms, and it repeats whichever facts it finds first.
- Should I publish my prices?
- A starting price is enough. Moss Busters was named with its starting price attached, and gutter cleaning cost is 4,600 searches a month. A published number answers that question in Google's AI Overview and in ChatGPT at once.
- Why did the AI get an address wrong?
- A listing carried an old address, and the engine picked the listing's version. Every listing has to match the site, and the fix is a citation cleanup across the Chamber, BBB, Angi, Yelp, and Google.
- Does this apply to roof cleaning and moss removal too?
- Yes. All three companies named do roof cleaning and moss removal alongside gutters, and moss removal portland is a $16 click. Each service gets its own page, and each page gives the engine another specific reason to name you.
Find out who the AI names for gutter cleaning in your city.
The consultation runs the prompts for your trade in three engines and shows you who gets named, what was cited, and the order to fix it in. The consultation is free, and the pricing is published.