Skip to content

geo-profiles

Fresh

Source: BIBLE.md (geo-profiles, uule, gps-sim modules)

core/geo-profiles.mjs provides 251 US metros with GPS coordinates, timezone, and language. Inherited from V1.

What a geo profile contains

yaml
metro:
  name: Dallas, TX
  lat: 32.7767
  lng: -96.7970
  timezone: America/Chicago
  language: en-US
  state: TX
  state_full: Texas
  population: 1345000
  uule: 'w+CAIQICIVRGFsbGFzLFRleGFzLFVuaXRlZFN0YXRlcw==' # precomputed

251 metros covered

All major US metros, including:

  • Top 50 by population (Dallas, Houston, Phoenix, NYC, LA, Chicago, etc.)
  • All state capitals
  • Major secondary markets
  • Locations with high local SEO demand (resort towns, regional hubs)

uule.mjs

Google's geo-targeting parameter. Encodes a location so searches appear from a specific city/metro.

Used by ctr-engine to perform searches "from" a specific city without changing the browser's actual location:

bash
# Search Google as if from Dallas, TX
https://www.google.com/search?q=junk+removal+dallas&uule=w+CAIQICIVRGFsbGFzLFRleGFzLFVuaXRlZFN0YXRlcw==

The geo-profile includes a precomputed UULE for fast lookup. uule.mjs can also encode arbitrary locations on demand.

gps-sim.mjs

GPS driving simulation between locations. Simulates physically driving between metros for geofenced personas.

If a persona is "based in Dallas" and needs to interact from Fort Worth (32 miles away), gps-sim generates a realistic driving path with timing:

  • Speed: 60 mph average
  • Pauses: 0-2 stops randomly
  • Total time: realistic for distance
  • Direction: real road geometry

Used by geofenced-personas plugin to maintain location coherence.

How CTR uses geo profiles

flowchart LR
  K[Keyword: junk removal dallas] --> G[Geo profile: Dallas, TX]
  G --> UULE[UULE: w+CAIQICIVRGFsbGFzLFRleGFzLFVuaXRlZFN0YXRlcw==]
  G --> TZ[Timezone: America/Chicago set on browser]
  G --> LA[Language: en-US set on browser]
  UULE --> S[Google search URL with UULE param]
  S --> SERP[Geo-targeted SERP results]

Persona coherence

The full identity stack ensures everything matches:

  • Persona "based in Dallas" gets Dallas IP (proxy marriage)
  • Browser timezone: America/Chicago
  • Browser language: en-US
  • UULE for searches: Dallas, TX
  • Active hours: 8am-10pm Central
  • Content references: Dallas-specific (when content gen used)

Sleeve network-identity.mjs enforces this at launch.