generate_site
Generate a business website after collecting a complete business profile through discovery. Returns a job ID immediately; poll for the live site URL after 30-90 seconds.
Instructions
Generate a new website for a business. Returns a jobId immediately — the build runs asynchronously (~30-90s). Poll get_generation_status to find the site_id + preview URL once it's done.
PREREQUISITE: You MUST have called discover_business_needs first and asked the user the resulting questions. Calling generate_site without a populated businessProfile produces a poor site missing integrations — WhatsApp buttons, Instagram embeds, booking widgets — and that embarrasses both the user and Template Vault.
A populated businessProfile should include AT LEAST: a phone or whatsapp number, hasPhysicalLocation (+ address if true), hasSocialMedia (+ handles if true), and languages. If the user truly refuses discovery, pass { skippedDiscovery: true } so the backend can warn in the admin log.
Content policy: Template Vault declines categories listed at https://www.the-template-vault.com/docs/mcp/content-policy (adult content, hate speech, scams, illegal goods, CSAM, impersonation/phishing). Obvious matches are rejected synchronously with a clear error; subtler cases are caught by the underlying Anthropic model.
Counts against the user's monthly generation quota.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| businessName | Yes | Customer-facing business name. Will be shown in the navbar. | |
| businessDescription | Yes | 2-3 sentences from the discovery conversation — what they do, who for, vibe. Pull directly from the user's own words; do not invent. | |
| industry | Yes | Industry category — e.g. 'wellness', 'restaurant', 'photography', 'pool builder', 'fitness'. Used for SEO + integration detection + personality picking. Be specific (prefer 'pool builder' over 'construction'). | |
| personality | No | Optional visual personality id (call list_personalities first to see options). If omitted, the AI picks one based on industry + description. NEVER pick `minimal` for a service contractor (pool/electric/plumb/handyman) or restaurant — those need `classic`. NEVER pick `glass` for a service contractor — too cold. | |
| pageCount | No | Number of pages to generate (1-4). One-page sites convert best for small businesses. | |
| locales | No | Locale codes — e.g. ['en'] or ['en','es'] or ['en','fr']. Max 3. For South Florida businesses always include 'es' alongside 'en' — most customers are bilingual. Each adds ~5s of latency. | |
| businessProfile | Yes | REQUIRED for a good result. Drives all integrations + smart-block selection. An empty profile gives a sparse, text-only site. |