Prompt
How do I set up an SEO content assistant for blog outline generation with approval workflow?
Latest observation
Here’s a practical way to set up an SEO content assistant for blog outline generation with an approval workflow.
1) Define the workflow
A simple, effective flow is:
- User inputs topic
- Assistant researches SEO intent
- Assistant generates blog outline
- Human reviews/edits
- Approve / reject / request revision
- Final outline is saved and sent to the writer or CMS
For most teams, the key is that the assistant should not publish automatically. It should create a draft and wait for approval.
2) Decide the inputs the assistant needs
For good outlines, collect structured input like:
- Topic / seed keyword
- Target audience
- Search intent
- Primary keyword
- Secondary keywords
- Content goal: informational / commercial / transactional
- Brand tone
- Desired word count range
- Competitors or reference URLs
- Internal links to include
- Approval owner / reviewer
Example intake form fields:
{
"topic": "email marketing for small businesses",
"primary_keyword": "email marketing for small business",
"audience": "small business owners",
"intent": "informational",
"tone": "practical, friendly",
"word_count": "1200-1600",
"secondary_keywords": ["email campaign ideas", "email automation", "newsletter tips"]
}
3) Create the outline generation prompt
Your prompt should instruct the assistant to produce a structured outline, not the full article.
Example system instruction
You are an SEO content strategist. Generate blog post outlines based on the provided topic and keywords. Optimize for search intent, include H1/H2/H3 structure, suggest FAQs, and keep outlines actionable. Do not write the full article. Output in JSON so it can be reviewed and approved.
Example output format
{
"title": "Email Marketing for Small Businesses: A Practical Guide",
"search_intent": "Informational",
"primary_keyword": "email marketing for small business",
"outline": [
{
"heading": "Introduction",
"subpoints": [
"Why email marketing matters for small businesses",
"What readers will learn"
]
},
{
"heading": "Why email marketing works",
"subpoints": [
"Low cost",
"High ROI",
"Direct customer communication"
]
}
],
"faq": [
"How often should small businesses send emails?",
"What is the best email marketing platform?"
],
"seo_notes": [
"Use primary keyword in title and intro",
"Add internal links to related guides"
]
}
4) Add approval workflow states
Use explicit statuses so content can move cleanly through review.
Recommended states:
draftneeds_reviewapprovedchanges_requestedrejectedarchived
A basic rule set:
- Assistant creates outline →
needs_review - Reviewer approves →
approved - Reviewer requests changes →
changes_requested - Assistant regenerates/revises outline → back to
needs_review
5) Implement role-based permissions
Separate who can do what:
- Requester: submits topic
- Assistant: generates draft outline
- Reviewer/Editor: approves or requests changes
- Admin: configures workflow and prompts
This prevents accidental publishing and keeps ownership clear.
6) Store each outline as a record
Use a database record for every outline so you can track version history and decisions.
Suggested fields:
idtopicprimary_keywordoutline_jsonstatuscreated_byassigned_reviewerversionfeedbackapproved_atupdated_at
This makes approvals auditable.
7) Add revision handling
When reviewers request changes, capture structured feedback like:
- Add competitor comparison
- Shorten intro
- Include FAQ
- Improve keyword placement
- Remove weak section
- Change tone to more expert-level
Then let the assistant regenerate only the affected sections rather than the whole outline.
8) Build guardrails for SEO quality
Have the assistant check for:
- Search intent match
- Keyword stuffing avoidance
- Logical heading hierarchy
- Coverage of related subtopics
- Duplicate or thin sections
- Clear CTA or next step
- FAQ opportunities
- Internal linking suggestions
You can also have it produce a short SEO rationale so reviewers understand why the outline was structured that way.
9) Suggested architecture
A simple implementation could be:
- Frontend: form for topic submission + review UI
- Backend API: handles outline generation, status changes, approvals
- LLM call: generates outline JSON
- Database: stores drafts, versions, approvals
- Notification system: emails/Slack for review requests
Example flow:
- User submits topic in UI
- Backend sends prompt to LLM
- LLM returns JSON outline
- Backend saves as
needs_review - Reviewer sees outline in dashboard
- Reviewer clicks approve/request changes
- Backend updates status and logs action
10) If using a no-code tool
You can do this with:
- Airtable or Notion for records
- Zapier or Make for automation
- OpenAI for generation
- Slack/Email for approvals
Example:
- New Airtable row = generate outline
- Save outline to Airtable
- Notify editor in Slack
- Editor changes status field to approved/requested
- Automation sends revisions back to the assistant
11) Best practice prompt pattern
Use a prompt like this:
Input
- Topic
- Audience
- Primary keyword
- Secondary keywords
- Intent
- Word count
- Brand style
- Constraints
Output
- Title options
- H1
- H2/H3 outline
- FAQ
- SEO notes
- Content gaps
- Suggested internal links
Keep the output machine-readable, ideally JSON, so your workflow can reliably parse it.
12) Minimal example workflow logic
Pseudo-logic:
if new_topic_submitted:
outline = generate_outline(topic, keywords, audience)
save(outline, status="needs_review")
if reviewer_approves:
update_status("approved")
if reviewer_requests_changes:
save_feedback()
outline = revise_outline(feedback, current_outline)
save(outline, status="needs_review")
13) What to avoid
- Letting the assistant publish directly
- Generating outlines without keyword or intent data
- Allowing free-form outputs only, without structure
- Skipping version history
- No approval owner assigned
- No clear revision loop
14) Recommended starter setup
If you want the simplest useful version:
- Form for topic submission
- LLM prompt that outputs JSON outline
- Database with approval statuses
- Reviewer dashboard
- Slack/email alert for pending review
- Approve / request changes buttons
If you want, I can also provide:
- a ready-to-use prompt template for the outline generator,
- a database schema, or
- a sample workflow in Zapier/Make or code.
Observation history
Unlock observation history
Create a free Obsurfable account to unlock historical responses, model comparisons, and deeper brand intelligence.
How did Obsurfable measure this prompt?
Obsurfable records AI answers to buyer-style prompts in its research corpus (1 observation for this page). Metrics are distributions over observations, not a single static ranking.
Which AI systems does Obsurfable collect answers from?
OpenAI, ChatGPT, Google, Gemini, Google AI Mode, Anthropic, Claude, Perplexity, Grok, DeepSeek, Mistral, Copilot, and Meta AI.