Skip to content

vnmoorthy/relocate-ai

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

25 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Relocate

Move in one call.

Dial a single number. A real-time swarm of 17 AI agents handles your relocation β€” utility shutoffs, mover bids, USPS forwarding, USCIS AR-11, DMV change of address β€” and delivers verifiable artifacts to your inbox before you hang up.


πŸ“ž Call now: +1 (618) 414-9537 Β Β·Β  🌐 Live site Β Β·Β  πŸ“„ PAVO paper (TMLR 2026)


License: MIT Live demo PAVO @ TMLR 2026 Local on M3 Air Built with Next.js Built with FastAPI GitHub stars


Moving is the #1 most stressful event in America β€” 45% rank it above divorce. 25.87 million Americans relocate every year. Each move = 15+ coordinated tasks: utility shutoffs, USPS forwarding, DMV updates, insurance, banks, school enrollment, medical records, vet records, mover quotes, prescription transfers, flight bookings, USCIS AR-11.

Existing tools cover slices. Relocate runs the whole fleet in parallel for you.


Relocate swarm dashboard β€” 17 agents (1 concierge + 16 specialists) firing in parallel from the PAVO singularity

The swarm-from-singularity dashboard β€” all 17 agents (1 concierge + 16 specialists) burst out from a glowing PAVO core, each runs a real task, every routing decision dispatches a tier-colored particle outward. Open the live site β†’


✨ See it work

Open β†’ vnmoorthy.github.io/relocate-ai

The site runs a demo-replay client-side, so you'll see 17 cells (the concierge + 16 specialists) burst out from a glowing PAVO singularity, each one streaming a real conversation, with tier-colored particles dispatched from the core to every agent on every routing decision. Built on the PAVO router (TMLR 2026).

Dial β†’ +1 (618) 414-9537

The concierge (ElevenLabs "Cleo") picks up in under a second:

"Relocate here β€” where are you headed?"

Tell her where you're moving. In two-to-three turns she captures origin, destination, date, household size, pets, kids, car, and visa status β€” and dispatches a swarm of 16 specialist agents that fan out to do the work. Real artifacts (real emails, real form submissions, real certified mail) land in your inbox while you're still on the call.


🌟 What makes this different

πŸͺ One call, 17 agents The concierge extracts the spec, 16 specialists fan out in parallel. No sequential phone tag.
🧠 PAVO routes every turn Peer-reviewed at TMLR 2026. 25% cheaper Β· 34% lower median latency Β· 71% less energy Β· 7.9Γ— fewer coherence failures on a 50,000-turn benchmark.
🍏 Local LLM on Apple Silicon Cheap turns run on gemma2:2b via Ollama on the author's M3 Air. Cloud only for the hard turns.
πŸ“¨ Verifiable real artifacts Per-agent AgentMail emails, Lob certified mail, Browser Use form submissions, Supermemory persistence β€” every agent emits a real ID you can verify.
πŸ›‘οΈ Honest about the cap 3 of the 16 specialists (USCIS AR-11, DMV ID, bank notify) hand off the final click to the customer β€” federal law requires the alien / DL holder / account holder to sign. We do 100% of the prep, you do the 30-second click.
🌌 Swarm-from-singularity dashboard Cinematic Linear/Framer aesthetic. Cells burst from the core, particles dispatched outward per routing decision. Watch live.

πŸ“ž The 90-second flow

1. You call +1 (618) 414-9537
   β–Ό
2. Cleo answers, extracts: origin, destination, move date,
   household, pets, kids, car, visa (3 turns max)
   β–Ό
3. The swarm dispatches β€” 16 specialists in parallel, conditional on your spec:
      Browser Use ──► pge_shutoff Β· geico_address Β· usps_coa
                      spectrum_austin Β· pharmacy Β· flight_book
                      water_board Β· uscis_ar11
      AgentMail ───► mover_quote Β· school_district Β· pcp_transfer
                      vet_transfer Β· gym_cancel Β· bank_notify
      Lob mail ────► comcast_cancel Β· id_card_update
   β–Ό
4. Real artifacts land in your inbox before you hang up.

Every LLM turn β€” buyer + every specialist β€” is routed by PAVO between gemma2:2b on your Mac (cheap, ~$0.0001/turn), Gemini Flash 2.5 (mid, ~$0.0023), or Claude Opus 4.7 (hard, ~$0.042). The routing decision is a real-time inference; the dashboard shows every one.


πŸ€– The 17 agents

The fleet: 1 inbound concierge (buyer) + 16 outbound specialists.

Agent Mode What it does Conditional
concierge (buyer) voice Inbound call Β· Cleo voice Β· spec extraction Β· Supermemory recall always
pge_shutoff browser Stop service at pge.com/movingcenter always
comcast_cancel mail Lob certified letter to Comcast Customer Care always
geico_address browser Update auto policy garage/mailing address has_car
spectrum_austin browser New internet install at destination always
usps_coa browser Change of Address at moversguide.usps.com always
mover_quote email Outreach to Atlas / Bay Area / Mayflower always
flight_book browser Google Flights top-3 picks with deeplinks always
water_board browser SFPUC stop service portal always
school_district email AISD transfer office has_children
pcp_transfer email One Medical records release always
vet_transfer email Pet records β†’ destination vet has_pets
gym_cancel email Equinox membership cancellation always
pharmacy browser CVS prescription transfer always
uscis_ar11 browser Pre-fills uscis.gov/ar-11 to signature step has_visa
id_card_update mail Lob certified mail of DL-13A to CA DMV has_car
bank_notify email 90-second phone script with exact wording always

The dispatcher honors conditional rules (has_pets, has_children, has_car, has_visa) so you only get the agents that apply to your move.


πŸ›‘οΈ What's actually real

We don't fake it. Each integration is labeled on the dashboard with REAL / PLAYBOOK FALLBACK / ERR so you know exactly what's happening:

Integration Status today Why
AgentPhone telephony REAL Inbound + (future) outbound calls verified via /calls API
PAVO routing layer REAL TMLR 2026, 50K-turn benchmark, dataset open-source
gemma2:2b local REAL Runs on M3 Air via Ollama, ~300-500ms warm
Gemini Flash 2.5 REAL Google API on PAVO escalation
AgentMail REAL Real email with PDF attachment lands in inbox
Supermemory REAL Real document writes; prior moves recalled by phone number
Browser Use playbook fallback If BROWSER_USE_API_KEY is missing, the agent sends an AgentMail playbook email with the exact 30-second click-to-finish steps
Lob certified mail playbook fallback If LOB_API_KEY is missing, AgentMail playbook fallback fires instead
Claude Opus 4.7 optional Anthropic key not required (Gemini handles the hard tier today)

Every agent produces a real verifiable artifact today. With Browser Use + Lob keys wired, the 9 fallback agents upgrade automatically to fully autonomous form submission / certified mail dispatch.

Why we don't auto-sign federal forms: USCIS AR-11 requires the alien (not an agent) to sign under penalty of perjury β€” 8 USC Β§1305. Bank address changes need the account holder's SSN + 2FA. DMV ID updates need a photo + signature. We drive each to the final-click step and hand off β€” that's the legal cap on automation.


πŸš€ Quick start

# 1. Clone
git clone https://github.com/vnmoorthy/relocate-ai.git
cd relocate-ai

# 2. Local LLM (Apple Silicon)
brew install ollama
ollama pull gemma2:2b
ollama serve &

# 3. PAVO router (local FastAPI)
cd pavo_server
VLLM_URL=http://localhost:11434/v1/chat/completions \
VLLM_MODEL=gemma2:2b \
GEMINI_API_KEY=$YOUR_KEY \
PAVO_API_KEY=local-shared-secret \
uvicorn app:app --host 127.0.0.1 --port 8765 &

# 4. Orchestrator
cd ../orchestrator
cp .env.example .env  # fill in keys (AgentPhone + AgentMail + Supermemory required)
uv run uvicorn app.main:app --host 0.0.0.0 --port 8000 &

# 5. Dashboard
cd ../web
pnpm install && pnpm dev   # http://localhost:3000

Public tunnel for AgentPhone webhooks:

ssh -R 80:localhost:8000 nokey@localhost.run
# Grab the lhr.life URL, set PUBLIC_BASE_URL in .env, restart orchestrator
cd orchestrator && uv run python scripts/update_webhooks.py

πŸ—οΈ Architecture

                       Caller (you)
                          β”‚
                          β”‚ Inbound voice
                          β–Ό
              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
              β”‚  AgentPhone           β”‚  ← real telephony (hosted)
              β”‚  ElevenLabs Cleo      β”‚
              β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            β”‚ webhook + HMAC-SHA256
                            β–Ό
              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
              β”‚  Orchestrator         β”‚  ← FastAPI on M3 Air
              β”‚  Β· Buyer turn handler β”‚     Β· spec extraction
              β”‚  Β· Marketplace        β”‚     Β· asyncio fan-out
              β”‚  Β· WebSocket broker   β”‚     Β· 16 specialist dispatchers
              β””β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                β”‚           β”‚
       PAVO     β”‚           β”‚  Real artifacts:
        β–Ό      β”‚           β–Ό    AgentMail (email + PDF)
   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β” β”‚  Browser Use   Supermemory (persist + recall)
   β”‚ PAVO   β”‚ β”‚  Lob mail      AgentPhone (telephony state)
   β”‚ :8765  β”‚ β”‚  AgentPhone
   β””β”€β”€β”€β”¬β”€β”€β”€β”€β”˜ β”‚
       β”‚      β”‚
       β–Ό      β–Ό
   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
   β”‚  gemma2:2b on M3 Air     β”‚  ← local, ~$0.0001/turn
   β”‚  β†’ Gemini Flash 2.5      β”‚  ← cloud mid, ~$0.0023/turn
   β”‚  β†’ Claude Opus 4.7       β”‚  ← cloud hard, ~$0.0420/turn
   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

The orchestrator runs on the author's Mac with a localhost.run SSH tunnel exposing it to AgentPhone webhooks. The dashboard deploys statically to GitHub Pages and animates a fake event timeline when no live orchestrator is reachable β€” so visitors always see the swarm in action.


🧠 PAVO β€” the routing moat

Pipeline-Aware Voice Orchestration with Demand-Conditioned Inference Routing. Peer-reviewed at TMLR 2026.

Cheaper than fixed-cloud 25%
Lower median latency 34%
Less energy per call 71%
Fewer coherence failures 7.9Γ—
Benchmark size 50,000 turns
Model coverage Gemma 2-2B Β· Gemini Flash 2.5 Β· Claude Opus 4.7
Decision latency ~10ms per turn

The router classifies each turn β€” early greetings stay on gemma2:2b ($0.0001), pricing/policy turns escalate to Gemini Flash ($0.0023), legal/dispute turns escalate to Claude Opus ($0.0420). On a typical Relocate call, ~70% of turns stay local on Apple Silicon.


πŸ“¦ Repo layout

.
β”œβ”€β”€ README.md, DEMO_SCRIPT.md
β”œβ”€β”€ orchestrator/                    ← FastAPI: buyer + 16 specialist agents
β”‚   β”œβ”€β”€ app/
β”‚   β”‚   β”œβ”€β”€ main.py                  ← webhook handlers Β· WS dashboard
β”‚   β”‚   β”œβ”€β”€ marketplace.py           ← fan-out Β· mode dispatchers Β· key-missing fallback
β”‚   β”‚   β”œβ”€β”€ personas.py              ← 17 agent personas (v2.1)
β”‚   β”‚   β”œβ”€β”€ buyer_schema.py          ← 30+ field schema Β· core/conditional/optional/pii tiers
β”‚   β”‚   β”œβ”€β”€ pavo_client.py           ← Mac β†’ local PAVO server
β”‚   β”‚   β”œβ”€β”€ agentphone.py Β· state.py Β· security.py (HMAC) Β· ws.py
β”‚   β”‚   └── integrations/
β”‚   β”‚       β”œβ”€β”€ agentmail.py         ← email + PDF attachment
β”‚   β”‚       β”œβ”€β”€ browser_use.py       ← real form submission tasks
β”‚   β”‚       β”œβ”€β”€ lob_mail.py          ← certified mail
β”‚   β”‚       β”œβ”€β”€ supermemory.py       ← persist + recall
β”‚   β”‚       └── per_agent_artifacts.py  ← 16 per-agent playbook emails
β”‚   └── scripts/
β”‚       β”œβ”€β”€ provision_agents.py      ← one-time: create AgentPhone agents
β”‚       β”œβ”€β”€ update_webhooks.py       ← re-push webhook URLs after tunnel rotation
β”‚       β”œβ”€β”€ refresh_agent_config.py  ← push voice + prompt to AgentPhone
β”‚       └── seed_supermemory.py      ← seed prior-move history for recall demo
β”œβ”€β”€ pavo_server/                     ← PAVO router on M3 Air
β”‚   β”œβ”€β”€ app.py Β· route.py Β· README.md
└── web/                             ← Next.js + shadcn cinematic dashboard
    └── src/
        β”œβ”€β”€ app/page.tsx             ← hero Β· live swarm Β· how-it-works Β· footer
        β”œβ”€β”€ lib/types.ts             ← WSEvent Β· ALL_AGENTS roster
        β”œβ”€β”€ lib/demo-replay.ts       ← client-side fake event timeline
        └── components/
            β”œβ”€β”€ SwarmStage.tsx       ← swarm-from-singularity viz
            β”œβ”€β”€ AgentCell.tsx        ← live transcript card
            β”œβ”€β”€ PAVOFlow.tsx         ← 3-tier routing panel
            β”œβ”€β”€ ArtifactsPanel.tsx   ← live links to real artifacts
            └── SponsorRow.tsx       ← REAL / STUB / ERR badges

πŸ› οΈ Tech stack

  • Voice: AgentPhone Β· ElevenLabs (Cleo)
  • Routing: PAVO (TMLR 2026) Β· own heuristic + neural router
  • Local LLM: Ollama serving gemma2:2b on M3 Air (Apple Silicon)
  • Cloud LLM: Gemini Flash 2.5 Β· Claude Opus 4.7 (optional)
  • Browser automation: Browser Use
  • Email: AgentMail (with reportlab for PDF attachments)
  • Mail: Lob (certified mail)
  • Memory: Supermemory (prior-move recall)
  • Backend: FastAPI (Python 3.12 + uv)
  • Dashboard: Next.js 16 + Tailwind v4 + shadcn/ui
  • Deployment: GitHub Pages (dashboard) Β· localhost.run (orchestrator)

⭐ Star history

Star History Chart


πŸ“ Roadmap

  • 16 specialist agents with conditional dispatch
  • Real artifacts via AgentMail playbook fallback
  • Cinematic dashboard with demo replay
  • Supermemory recall keyed by caller phone
  • Wire Browser Use + Lob keys to upgrade 9 fallback agents to fully autonomous
  • Deploy orchestrator to Fly.io (replace localhost.run tunnel)
  • Multi-language voice (Cleo β†’ Diego for Spanish, etc.)
  • Iframe-embeddable swarm widget for partner sites
  • Onboarding flow + Stripe billing ($99/move flat fee)

🀝 Contributing

Contributions welcome β€” see CONTRIBUTING.md. Star the repo if Relocate's design or the PAVO routing layer is useful to you.


πŸ’š Sponsors

Built at the YC Call My Agent Hackathon (San Francisco, May 2026). Massive thanks to: AgentPhone Β· Google DeepMind (Gemma + Gemini) Β· AgentMail Β· Supermemory Β· Browser Use Β· Lob Β· Anthropic Β· Stripe Β· Moss Β· sponge


πŸ§‘β€πŸ’» Credits

Narasinga Moorthy Veilu Kantha Perumal β€” author, University of Pennsylvania.


πŸ“„ License

MIT Β· The PAVO dataset is CC-BY 4.0 on HuggingFace. PAVO router weights are proprietary.


πŸ“ž Try Relocate now: +1 (618) 414-9537

Moving sucks. Now it doesn't.

About

πŸ“ž Call one number β†’ AI swarm of 17 agents handles your relocation in 90 sec (flights, utilities, USCIS, DMV, movers, mail forwarding). Voice routing on Apple Silicon via PAVO (TMLR 2026). Live: +1 (618) 414-9537

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors