Leasing agent, social media automation, and property management — fully operational July 2026
| Function | Stack |
|---|---|
| Inbound / outbound tenant SMS | Twilio SMS/MMS(469) 895-3846 |
| AI conversational responses | GroqLlama 3.3 70b |
| Session & conversation state | Upstash Redis |
| Lead data persistence | Supabase (PostgreSQL) |
| Lead logging & history | Google SheetsService Account Auth |
| Tour scheduling | Calendly webhooks |
| Applications, leases & payments | AppFolio |
| Property config (rent, lockbox, criteria) | config/properties.jsJohn edits directly |
| Tenant follow-ups & nudges | node-cronevery 30 min |
| Web server & REST API | Node.js / Express |
| Hosting & deployment | RailwayGitHub → auto-deploy |
| Uptime monitoring | UptimeRobot/health every 5 min · alerts to bfoster14@elon.edu |
| Function | Stack |
|---|---|
| Property listings & marketing site | HTML / CSS / JavaScript |
| Structured listing data (SEO) | JSON-LD schema markup |
| Internal operations dashboard | /dashboard.htmlKPIs · pipeline · leasing funnel |
| Dashboard data API | Railway /portal/api/*CORS-enabled |
| Pre-qualification intake widget | Embedded form→ Railway leasing backend |
| Marketing design assets | CanvaFlyers, social graphics, brochures |
| Version control | GitHub |
| Hosting & CI/CD | VercelGitHub → auto-deploy |
| Function | Stack |
|---|---|
| All agent → John communications | Twilio SMS(214) 725-9424 |
| Pipeline metrics reports (2am & 4pm CT) | node-cronUpstash Redis |
| John approval nudges (every 30 min) | Upstash RedisTwilio SMS |
| John SMS commands | APPROVE DENY MORE SIGNED PAID CANCEL |
| Leasing portal (full pipeline view) | /portal/leasingon Railway |
| Megan's Activation Playbook | Activation Playbook → |
| Script library (all 11-stage SMS scripts) | Script Library → |
| Morning lead digest (8:00 AM CT) | node-cronGroqTwilio SMS |
| Review request automation | node-cronpost move-in trigger |
| Uptime alerts | UptimeRobot5-min checks · email alert to bfoster14@elon.edu |
| Function | Stack | Status |
|---|---|---|
| 6-loop AI orchestration engine | Groq / Llama 3.3 70bservices/ownerOrchestrator.js | Built |
| Loop 1 — Owner research & profiling | Groq AIproperty + owner background synthesis | Built |
| Loop 2 — Opportunity scoring (0–100) | Groq AImanagement pain, absentee signal, property fit | Built |
| Loop 3 — Outreach draft + critique | Groq AISMS + email copy · John approval via APPROVEOWNER/DENYOWNER | Built |
| Loop 4 — Inbound reply classification | Groq AIinterested / not interested / needs follow-up | Built |
| Loop 5 — Objection handling | Groq AIcontext-aware rebuttals for common owner objections | Built |
| Loop 6 — Weekly learning & improvement | Groq AIcron/acquisition-learn.js · every Friday | Built |
| Owner pipeline store | Upstash Redisservices/ownerStore.js | Built |
| Owner API routes | Express RESTroutes/acquisition.js | Built |
| Outreach cron (every 6 hours) | node-croncron/acquisition-loop.js | Built |
| John SMS approval commands | APPROVEOWNERDENYOWNERroutes/sms.js | Built |
| Email outreach sending | SendGridGmail SMTP fallback · services/email.js | Built |
| HubSpot CRM integration | HubSpot free tier · Contact + Deal + Timeline | Planned — Phase 1 |
| Prospect finder — Texas CAD scraper | Bell, Coryell, Travis, Dallas CADs · absentee owner detection | Planned — Phase 2 |
| Prospect finder — Craigslist scraper | Cheerio + Axios · by-owner rental listings | Planned — Phase 2 |
| Follow-up loop (Day 7 / 14 / 21) | cron/owner-followup.js · auto-archive at Day 21 | Planned — Phase 3 |
| Owner pipeline portal UI | /portal/acquisition · pipeline board · approve/deny UI | Planned — Phase 4 |
| Inbound email webhook (owner replies) | Make.com free tier · Gmail → Railway webhook | Planned — Phase 5 |