Appearance
geofenced-personas
FreshSource: BIBLE.md (Phase 12 Phase 4, geofenced-personas 6 routes), ROADMAP.md (Phase 4.5)
If an account is "based in Dallas," everything matches: Dallas hours, Dallas IP range, Dallas-appropriate content references, Dallas weather-relevant activity patterns. Coherent geo-identity per persona across all sessions and platforms.
10 built-in city profiles
| City | Timezone | IP range | Active hours (local) |
|---|---|---|---|
| Dallas, TX | America/Chicago | married IP in DFW | 8am-11pm |
| Miami, FL | America/New_York | married IP in MIA | 8am-12am |
| Orlando, FL | America/New_York | married IP in ORL | 9am-11pm |
| Tampa, FL | America/New_York | married IP in TPA | 8am-10pm |
| Austin, TX | America/Chicago | married IP in AUS | 9am-12am |
| Houston, TX | America/Chicago | married IP in HOU | 8am-11pm |
| Phoenix, AZ | America/Phoenix | married IP in PHX | 7am-10pm |
| Denver, CO | America/Denver | married IP in DEN | 8am-11pm |
| Atlanta, GA | America/New_York | married IP in ATL | 8am-11pm |
| Chicago, IL | America/Chicago | married IP in ORD | 8am-11pm |
Routes (6)
| Method | Route | What |
|---|---|---|
| GET | /geo-personas/profiles | List built-in profiles |
| GET | /geo-personas/:accountId | Get persona for an account |
| POST | /geo-personas/assign | Assign a city to an account |
| POST | /geo-personas/check-coherence | Check if an action matches the persona's geo |
| POST | /geo-personas/simulate-drive | Generate a drive simulation for cross-city |
| GET | /geo-personas/active-now | Which accounts are within their active hours right now |
Coherence check example
Before an action:
bash
curl -X POST http://localhost:4700/geo-personas/check-coherence \
-H "Content-Type: application/json" \
-d '{
"accountId": "abc123",
"actionLocation": "Houston, TX",
"actionTime": "2026-05-20T14:32:00-05:00"
}'If the account is "Dallas" and the action is "Houston" at the same minute, the check fails (unless a drive simulation justifies it).
How it combines
flowchart TD P[Persona profile: Dallas, TX] --> PM[Proxy marriage: 1.2.3.4 DFW] P --> TZ[Timezone: America/Chicago] P --> H[Active hours: 8am-11pm CT] P --> CR[Content refs: Dallas, Cowboys, Mavs] P --> AC[Activity: Dallas weather, traffic, events] PM --> S[Session launch] TZ --> S H --> SC[Scheduler: only fire 8am-11pm CT] CR --> CG[content-gen prompts mention Dallas] AC --> WA[Warmup queries mention Dallas]