Case Study

How a Local Community Center Improved Its AI Visibility for Youth & Senior Public Programs

This is a composite, illustrative scenario built to demonstrate the GEO method — not a real client engagement. The figures and audit ratings below are hypothetical, chosen to show how the approach works.

Hypothetical scenario

Case profile

Industry

Community Organizations

Organization Size

Mid-sized regional nonprofit with three facilities

Team Size

1 solo communications manager

Difficulty

Moderate

Estimated Timeline

Variable

At-a-glance profile of this hypothetical engagement
The Situation

Why was a community center with active programs invisible to AI search?

The organization operated active neighborhood hubs offering public programming, child care, and senior wellness services, but noticed a steady decline in organic digital discovery.

While traditional search engine optimization (SEO) drove traffic to the homepage, conversational AI search engines completely missed or mischaracterized specific program details, schedules, and eligibility rules. The communications manager needed to pivot from keyword targeting to identity and entity clarity so AI engines could accurately recommend their local programs.

The challenge

Modern search behavior has evolved from fragmented keyword queries like "community center SF" to complex, natural-language prompts such as, "Where can I find an affordable morning watercolor class for a senior citizen that has wheelchair access and parking?" To answer this, AI engines rely on an AI Knowledge Graph—a digital map of interconnected concepts, entities, and data points.

If an AI engine cannot definitively verify that your organization is a "Community Center," offers "Watercolor Classes," specifies "Seniors" as the target audience, and explicitly lists "Wheelchair Accessible" as an amenity, it will exclude you from the answer. Traditional SEO focuses on keywords; GEO focuses on building these explicit semantic connections.

What target audience members are asking AI

  • "I need a safe, affordable after-school program for a 10-year-old that runs until 6 PM and offers homework help. What are my options nearby?"
  • "Are there any local community centers offering low-impact exercise or mobility classes for seniors on Tuesday or Thursday mornings?"
  • "Where can I volunteer locally on weekends to help with youth mentoring or food distribution programs?"

Why this matters: Traditional keyword optimization fails if the AI engine cannot map connections between disparate attributes. A page that simply says "We offer youth programs" doesn't provide the concrete parameters (ages, times, pricing) that an LLM needs to confidently answer a highly specific user prompt.

Baseline GEO audit

To evaluate how accurately leading conversational engines mapped the organization's footprint, a series of diagnostic discovery and brand-intent prompts were executed. Ratings are illustrative, not measured.

Audit category ChatGPT Gemini Claude Perplexity
AI Visibility Moderate Weak Missing Moderate
Entity Clarity Moderate Moderate Weak Strong
Program/Service Pages Weak Missing Missing Weak
FAQ Content Missing Weak Missing Moderate
Trust Signals Moderate Strong Moderate Strong
Expert Profiles Missing Missing Missing Weak
ChatGPT
AI Visibility
Moderate
Entity Clarity
Moderate
Program/Service Pages
Weak
FAQ Content
Missing
Trust Signals
Moderate
Expert Profiles
Missing
Gemini
AI Visibility
Weak
Entity Clarity
Moderate
Program/Service Pages
Missing
FAQ Content
Weak
Trust Signals
Strong
Expert Profiles
Missing
Claude
AI Visibility
Missing
Entity Clarity
Weak
Program/Service Pages
Missing
FAQ Content
Missing
Trust Signals
Moderate
Expert Profiles
Missing
Perplexity
AI Visibility
Moderate
Entity Clarity
Strong
Program/Service Pages
Weak
FAQ Content
Moderate
Trust Signals
Strong
Expert Profiles
Weak

The baseline audit revealed that while search engines with live web access (Perplexity and Gemini) could occasionally pull baseline brand data, they struggled to extract specific program details. Claude and ChatGPT frequently hallucinated older schedules or completely omitted the organization from categorical recommendations. The primary culprit was data fragmentation. Because the program data lacked clean structure, the LLMs could not verify real-time accuracy, causing them to favor larger municipal websites that structured their data more cleanly.

Key issues found

Three structural gaps explained why the organization's programs went unmapped.

  1. 1

    PDF-gated program data

    The Issue: The complete schedule, age restrictions, and pricing models for all youth and senior programs were published exclusively inside a downloaded monthly 8-page PDF newsletter.

    Why It Matters: While AI crawlers can read PDFs, they frequently struggle to accurately map tabular schedules and contextual footnotes buried in layout-heavy documents. Gating core data in PDFs prevents LLMs from quickly extracting quick facts to serve as direct answers.

  2. 2

    Ambiguous entity information

    The Issue: The website text used overly creative, narrative copy (e.g., "A vibrant space where generations meet and thrive") rather than clear, explicit entity declarations.

    Why It Matters: LLMs look for definitive categorizations to build their knowledge graphs. If your site doesn't clearly state "We are a non-profit community center offering public programs at three locations," the model may struggle to accurately categorize your business type.

  3. 3

    Lack of structured schema markup

    The Issue: The underlying HTML code of the website contained no schema markup to clarify physical addresses, parent-child facility relationships, or event details.

    Why It Matters: Without Schema.org structured data, AI engines have to guess which phone number, address, and schedule block belong to which branch location, increasing the risk of misinformation or total exclusion from local search results.

Recommended GEO improvements

Three changes, each with the before/after and the reasoning behind it.

Transforming text for direct answers

Before — Traditional marketing copy

Our doors are open to everyone looking to spark their creativity! We host an incredible array of arts and crafts gatherings throughout the week in our beautiful studio space. Whether you're young or young at heart, come discover the joy of painting with us. Reach out to our front desk to find out when we are meeting this month!

After — GEO-optimized copy

We offer affordable public art programs for all ages at our Main Street facility. Program: Senior Watercolor Painting (Ages 65+). Schedule: Every Tuesday and Thursday from 9:30 AM to 11:30 AM. Cost: $5 per class (material fees included; sliding-scale financial aid available). Accessibility: Our studio classroom is fully wheelchair accessible and located on the ground floor.

Why we chose it: Large Language Models prioritize text that mimics the exact structure of an ideal direct answer. Replace vague marketing taglines with high-density, easily scannable prose that clearly lists program constraints, locations, and pricing — giving the model explicit data points it can summarize instantly.

Implementing LocalBusiness and Event schema

Before

The website's underlying HTML carried no machine-readable structure — physical addresses, facility relationships, and event details were left for the engine to infer from prose.

After

Embed custom JSON-LD schema into the global header, explicitly defining the organization as a GovernmentBenefitsService or CommunityCenter with nested CivicStructure and Event attributes. (Full markup below.)

Why we chose it: Backend data mapping provides an unambiguous blueprint for AI crawlers. It completely bypasses the linguistic guesswork of an LLM by feeding raw machine-readable facts straight into the AI's database.

Creating a semantic FAQ directory

Before

No dedicated FAQ structure existed for the conversational, full-sentence questions users actually ask about registration, qualifications, and program access.

After

Build a centralized, text-based FAQ directory structured around high-intent conversational user prompts regarding registration, qualifications, policies, and program access.

Why we chose it: Users rarely query AI engines using single words; they ask full questions. Creating pages that mirror the exact linguistic structure of those conversational prompts makes it incredibly easy for an AI search engine to copy, paste, and credit your site as the definitive source.

Schema markup before & after

The footer location block, before and after adding structured data.

Before — standard HTML

HTML
<div class="footer-info">
  <h3>Main Street Center</h3>
  <p>Find us at 456 Main St. Open weekdays 8am to 6pm.</p>
</div>

After — with schema markup

JSON
{
  "@context": "https://schema.org",
  "@type": "CommunityCenter",
  "name": "Main Street Community Center",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "456 Main St",
    "addressLocality": "San Francisco",
    "addressRegion": "CA",
    "postalCode": "94105",
    "addressCountry": "US"
  },
  "openingHoursSpecification": {
    "@type": "OpeningHoursSpecification",
    "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
    "opens": "08:00",
    "closes": "18:00"
  },
  "amenityFeature": {
    "@type": "LocationFeatureSpecification",
    "name": "Wheelchair Accessible",
    "value": "true"
  }
}

A common mistake

Many small teams create an FAQ section but write answers that say "See our brochure for details." If the answer isn't entirely self-contained on the webpage, the AI engine cannot use it to fulfill a user's conversational search request. Keep your answers complete, direct, and factual.

Continue learning

Related guides that go deeper on the fixes above.