seo_generate_side_page
Generate SEO side pages for landing pages to strengthen topical authority and target cluster keywords. Use freeform prompts or structured briefs; async generation returns an operation ID to poll.
Instructions
Generates a side page for a brand's landing page, optionally linked to an SEO cluster (clusterId). When linked, the side page surfaces in cluster-context queries and inherits the cluster's keyword targeting — strengthening topical authority that feeds GEO citation patterns. Two body modes: • freeform: pass key + prompt (+ optional keywords, selectedSections, voiceProfileId, sidePageType). Freeform now writes real section-level content (hero/features/showcase/faq/cta), not just metadata. • brief: pass key + brief (structured outline) + optional briefId and roadmapItemId. Typically takes ~2–5 min. Async — returns { success, operationId, operationRowId, pollUrl, sidePageId }. Poll get_job with the returned operationId until state is completed (or failed/partially_failed/cancelled on error); the generated page's sections will be populated once complete. Comparison-type briefs run synchronously and return sidePageId directly. slug is the PARENT landing page slug under which the side page is created.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Side-page key (URL slug fragment under the parent LP) | |
| slug | Yes | Parent landing page slug | |
| brief | No | Brief-mode structured outline. When set, this is the canonical payload. | |
| prompt | No | Freeform-mode generation prompt (omit when passing `brief`) | |
| briefId | No | Persisted SeoBrief ID — required for comparison-type generation | |
| keywords | No | Freeform-mode: target keywords to weave into the page | |
| clusterId | No | SEO KeywordCluster ID to link this side page to (maps to SidePage.sourceClusterId) | |
| sidePageType | No | Defaults to 'landing'. Use 'comparison' only with a persisted comparison briefId. | |
| roadmapItemId | No | Roadmap item ID this side page is fulfilling | |
| voiceProfileId | No | Voice profile to write in | |
| autoAssignAssets | No | Auto-assign brand assets to image slots after generation | |
| selectedSections | No | Freeform-mode: restrict generation to these section ids (e.g. hero, features, showcase, faq, cta, pricing). Omit to generate all default sections. |