AI Blog Post Generator
Writing a blog post means writing seven things at once: a hook, three or four H2 sections with their own mini-arguments, a conclusion, an SEO title under 60 chars, and a meta description under 160. Generic AI tools hand you a wall of prose; scrb hands you a structured JSON object with each field already broken out and ready to paste into WordPress, Ghost, Webflow, Notion, or whatever your CMS happens to be. 300 to 2,500 words per post, 25+ languages, and the same anti-slop filter that runs on scrb's product descriptions - no "in today's fast-paced world", no "unlock your potential", no em-dashes.
What scrb knows about blog posts that a chat model doesn't
A chat model gives you a blob of text and leaves you to split it into title, body, and meta. scrb returns the piece you actually need per field, and enforces the structural rules a real blog post follows.
- Structured JSON output:
title,intro,sections: [{heading, body}],conclusion,meta_title,meta_description. Paste each field into the matching CMS input, no manual splitting. - Section discipline: 3-6 H2 sections per post, each heading written in H2 idiom (not "Introduction" or "Conclusion" labels). Each section is 2-4 paragraphs with a mini-argument - not a list of bullet points pretending to be prose.
- Word-count honest: you set a target (300-2,500); the generator hits it within ~10%. No padding "furthermore" paragraphs to hit word count.
- SEO fields sized correctly:
meta_titleis ≤ 60 chars (Google SERP),meta_descriptionis ≤ 160. Neither is a truncated H1. - Anti-slop baked in: banned phrases ("leverage", "unlock", "in today's fast-paced", "delve into", "game-changer", "revolutionize") never appear. No em-dashes. No rhetorical "Did you know?" openers.
- Platform-voice option: set
platformto "wordpress" / "ghost" / "medium" / "substack" and the output adjusts register - Substack reads more like a Substack essay, Medium more polished, etc. - 25+ languages native: generate the same post topic directly in French, German, Japanese, Portuguese, etc. Not a translation of the English pass - written in the target language from the start.
- Billing honest: one blog post costs 5 generations from your quota (reflecting the longer output), whether the post is 400 words or 2,400. Counts atomically before the API call, so a quota edge never leaves you with a half-billed post.
Before / after: real examples
Generic AI output:
In today's fast-paced e-commerce world, Etsy sellers face numerous challenges. AI-written descriptions are revolutionizing the industry, and those who fail to leverage this technology risk falling behind. Let's delve into why embracing AI is crucial for unlocking your shop's potential...scrb output:
title: Your Etsy Copy Is Still Hand-Written. Your Competitor's Isn't.Why this wins: the generic version has 3 banned phrases ("in today's fast-paced", "revolutionizing", "delve into", "unlock") in the first 40 words. The scrb version opens with a concrete observation from a specific seller with a specific number. Each section heading carries an argument you'd want to read.
intro: Last month I watched a candle seller's impressions drop 22% over four weeks. Nothing had changed about her products. What had changed was that three of her top-5 competitors switched to AI-written listings that hit Etsy's 140-char title limit exactly and used all 13 tag slots. She was still writing 80-char titles by hand.
section 1 heading: Etsy rewards listings that fill every slot
section 1 body: Etsy's search algorithm reads the title, the tags, and the description in that order. Listings with 13 tags outperform listings with 8 tags by ~30% in impressions. Listings with titles that go to 140 chars (not 90) outperform short titles by ~18%. This isn't secret knowledge - Etsy publishes it. Most sellers still skip it because filling all the slots by hand on every new listing takes 10 minutes per product.
(5 more sections, conclusion, meta_title, meta_description)
meta_title (58 chars): Your Etsy Copy Is Still Hand-Written. Your Competitor's.
meta_description (156 chars): Competitors are using AI to fill every slot Etsy rewards - 140-char titles, all 13 tags, keyword-front description. If you're not, your impressions are leaking.
scrb output (excerpt):
title: Cutting Google Ads Without Tanking Revenue: A 90-Day Shopify PlanWhy this wins: section headings tell a story you'd want to read without clicking. Meta description states a concrete risk then a concrete solution. No adjectives doing the work of verbs.
intro: Most Shopify stores that try to "move from paid to organic" lose 30-40% of their revenue in the first 60 days, panic, and switch the ads back on. The ones that succeed don't turn ads off on day one - they run them and the SEO track in parallel for 90 days, then taper. This post is the exact 90-day sequence that's worked for three stores I've watched do it.
section headings:
1. Day 1-30: index the pages that should already be indexed
2. Day 31-60: rebuild the product pages ads are currently carrying
3. Day 61-90: taper ads by 20% / week on the pages that SEO now covers
4. How to tell which products will never work on SEO
5. What you'll save - and what you won't
meta_title (57 chars): Moving Shopify from Google Ads to SEO in 90 Days
meta_description (151 chars): Most stores that cut Google Ads cold-turkey lose 30-40% of revenue. Here's the 90-day parallel-run plan that three stores used to actually cut without pain.
FAQ
What does scrb return - a single string or structured fields?
Structured JSON: {title, intro, sections: [{heading, body}], conclusion, meta_title, meta_description}. The schema is fixed and validated. If you're importing into WordPress, Ghost, or Webflow, you can map each field to the matching input without splitting a string. If you just want the full post as Markdown, the scrb web app has a "copy as Markdown" button that concatenates the fields correctly.
Can I set the word count?
Yes - any integer from 300 to 2,500. The generator hits that length within ~10%. Below 300 the result reads more like a long tweet than a blog post, and above 2,500 the quality drops because the model starts padding - if you need a 4,000-word guide, generate it in two topical passes and join them.
Does the same topic generate the same post twice?
No. Each call runs with a small amount of creative randomness, so the structure, examples, and section split will differ. If you need a specific output pinned down, save that generation and reference it by ID; scrb doesn't overwrite past generations.
How does billing work for blog posts?
Each post counts as 5 generations against your monthly plan (reflecting the longer output compared to a product description). Free tier (5/month) fits one blog post per month; Starter (100/mo) fits ~20; Pro (500/mo) fits ~100; Business (3,000/mo) fits ~600. Quota is checked before the LLM call, so an insufficient-quota request returns 429 cleanly without charging a partial post.
Which tone should I pick?
"conversational" reads like a good Substack post (first-person-ish, parenthetical asides allowed). "professional" reads like a well-edited company blog - more formal but not stiff. "technical" adds more concrete examples and code-style precision. "casual" is closer to a tweet thread laid out in paragraphs. The tone affects voice, not structural rigor - all tones still produce 3-6 H2 sections.
Can scrb translate an existing blog post, or only generate from topic?
Right now, only from topic. The language field generates directly in the target language (not a translation pass), so the output is idiomatic. If you need to localize an existing English post to French, the pragmatic workflow is: paste the English post into the topic field with a prefix like "Rewrite this for French readers, same facts:" - scrb will treat it as a topic to write about, in French.
How to plug scrb into your workflow
Scrb's blog endpoint is accessible from everywhere the scrb API is:
- Web app: pick "blog post" from the generation dropdown, fill in topic + word count + tone + language, copy the fields into your CMS.
- REST API:
POST /api/v1/generate/blogwith the same fields. Returns the structured JSON. See API docs. - Zapier / Make.com: trigger on a calendar row, new Airtable entry, or a Slack slash command. scrb returns JSON that Zapier maps directly into WordPress, Ghost, Webflow, Notion.
- Chrome extension: on any URL, click the extension to generate a blog post about that URL's subject (uses the scraped title + meta as topic input).
Pricing
Blog posts count 5× against your plan's monthly quota.
- Free: 5 generations / mo = 1 blog post.
- Starter ($9.99/mo): 100 generations = ~20 blog posts.
- Pro ($24.99/mo): 500 generations = ~100 blog posts + adds bulk CSV + REST API.
- Business ($49.99/mo): 3,000 generations = ~600 blog posts.