System overview — what this product is
Written 2026-07-31 for client demos. Engineering detail lives in sibling files; this is the mental model.
System overview — what this product is
Written 2026-07-31 for client demos. Engineering detail lives in sibling files; this is the mental model.
One sentence
jsglobtech.com is a live multi-tenant GEO + AI-agent lead generation platform, and JSGlobtech itself is the first tenant (client_id: jsglobtech / fallback default).
That is the sales story: you are not pitching a slide deck — you are showing a working system that already captures leads from AI agents into a CRM/Sheet for a real business.
Two layers (sell both)
┌─────────────────────────────────────────────────────────────┐
│ Layer 1 — GEO (visibility) │
│ Make AI engines *cite and recommend* the business │
│ Artifacts: /.well-known/llms.txt, /llms.txt, JSON-LD │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ Layer 2 — Agentic action (conversion) │
│ Make AI agents *act*: capture a lead inside the chat │
│ Surfaces: MCP tool + OpenAPI/ChatGPT Action → webhook/CRM │
└─────────────────────────────────────────────────────────────┘
| Layer | What the buyer hears | What is actually live |
|---|---|---|
| GEO | "ChatGPT recommends you" | public/.well-known/llms.txt, public/llms.txt, components/GeoSchema.tsx |
| Action | "Digital receptionist in the chat" | MCP request_dev_consultation + POST /api/leads/submit → tenant webhook → Google Sheet |
Multi-tenant model
One codebase / one deployment serves many clients by routing leads with client_id:
AI agent (ChatGPT / Claude / Cursor / custom MCP host)
│
▼
MCP /api/mcp/sse OR REST POST /api/leads/submit
│ (optional X-Client-ID / X-API-Key)
▼
lib/leads.ts submitConsultationLead()
│
├─ validate (Zod)
├─ lead_id = jsg-<uuid>
├─ resolve webhook from client_id:
│ 1. CLIENT_WEBHOOK_MAP JSON
│ 2. CLIENT_WEBHOOK_<CLIENT_ID>
│ 3. CRM_WEBHOOK_URL (default tenant)
▼
Tenant CRM / Google Sheet row (client_id column visible)
| Tenant | How it is identified today | Destination |
|---|---|---|
| JSGlobtech (dogfood) | client_id: "jsglobtech" or omit → "default" |
Production CRM_WEBHOOK_URL (or CLIENT_WEBHOOK_JSGLOBTECH) |
| Future client A | client_id: "clinic_a" (example) |
CLIENT_WEBHOOK_CLINIC_A or map entry → their Sheet/CRM |
ADR: ../decisions/0008-multi-tenant-lead-routing-and-rate-limiting.md.
End-to-end happy path (what you show clients)
- Discovery — Prospect (or you) asks ChatGPT/Perplexity a Dubai Marina / Flutter / MCP query → JSGlobtech is cited from
llms.txt/ schema. - Action — In a session where the MCP endpoint or OpenAPI Action is connected, user says: "Request a custom mobile app consultation from JSGlobtech."
- Confirm — Host UI asks the user to approve the tool call (host-owned UI, not our button).
- Capture — Tool posts validated fields; API returns
{ ok, lead_id, client_id, … }. - Delivery — Row appears in the tenant Sheet within seconds (
lead_idlikejsg-…,client_idlikejsglobtech,sourcemcporopenapi).
Full rehearsal script: ../sales/demo-framework.md. Tenant-specific checklist: ../sales/tenant-demo-checklist.md.
What this repo is not (yet)
Do not sell these as shipped:
- Calendar booking / reservations
- Native WhatsApp delivery (webhook can be pointed at a WhatsApp relay later)
- Per-tenant hosted MCP servers (today: one shared MCP with
client_idrouting) - Real API-key auth (headers named
X-API-Keycurrently act asclient_id— see security audit)
Canonical live URLs
Prefer https://www.jsglobtech.com — apex jsglobtech.com returns 308 to www.
| Purpose | URL |
|---|---|
| Site | https://www.jsglobtech.com |
| LLM facts | https://www.jsglobtech.com/.well-known/llms.txt |
| MCP (canonical) | https://www.jsglobtech.com/api/mcp/sse |
| OpenAPI | https://www.jsglobtech.com/docs/openapi.json |
| REST lead | POST https://www.jsglobtech.com/api/leads/submit |
Related
./README.md— stack and folder layout../integrations/mcp-server.md/../integrations/lead-capture.md../sales/demo-framework.md/../sales/tenant-demo-checklist.md../operations/production-security-audit.md— before onboarding real third-party tenants