U Ranket
⌘K

Generate your first article

From scheduled keyword to published post — what happens when Ranket runs the daily article job.

Once your brand is connected, a keyword is scheduled, and a webhook is set up, Ranket generates and publishes articles automatically. Here’s what that loop looks like end-to-end.

The daily cron

Every day at 09:00 UTC the daily generation cron fires. It:

  1. Queries content_calendar for entries scheduled today
  2. For each entry, enqueues a content.generate job
  3. The job runs the 8-stage pipeline (see below)
  4. On success, fires the CMS webhook
  5. Marks the calendar entry published

You can also generate any article on demand from the dashboard — useful for testing or for ad-hoc topics.

The 8 stages

1. Research      — Fetch SERP top 10 + people-also-ask + related kws for the target
2. Scrape        — Pull the top 5 competitor URLs' content into a fact pool
3. Strategy      — Claude Sonnet picks format, word count, outline, links
4. Brief         — Claude Sonnet expands strategy into a section-by-section brief
5. Data points   — Claude Haiku extracts ~15 cite-able facts from competitors
6. Draft         — Claude Sonnet writes the full body (3,000+ words, follows brief)
7. Polish        — Claude Sonnet refines for tone, voice, citation density
8. Images        — Fal nano-banana generates hero + ~4 inline images
9. Assemble      — Markdown + JSON-LD bundle + meta object → delivery payload

Total time per article: 5-12 minutes (depends on Claude latency and SERP/scrape speed).

If a brand has a pre-computed plan

For efficiency, Ranket can pre-plan articles ahead of their scheduled date. When a keyword goes onto the calendar:

  • A content.plan job runs immediately — produces the strategy + brief (~2-3 min, ~$0.13)
  • The plan is stored on the calendar row
  • On the scheduled day, generation skips stages 1-5 (already done) and only runs draft + polish + images + assemble (~3-5 min)

This is the default. The plan-then-execute split spreads cost over time and makes the daily cron fast and predictable.

Reviewing before publish

If your brand is in review mode:

  • The pipeline runs all 8 stages and produces a finished article
  • Webhook delivery is paused
  • You see the article in the dashboard with a side-by-side preview (rendered HTML + raw Markdown)
  • Click Approve → webhook fires
  • Click Reject → article is discarded, keyword goes back to available

In autopilot mode, this gate is skipped — the webhook fires automatically after assemble.

What the article looks like

A finished Ranket article (matching the structure published on bright-shot.com/blog, our reference brand):

  • 2,500-3,500 words
  • 8-12 H2 sections, 2-4 H3 sub-sections per H2
  • TL;DR / “For skimmers:” bullet summary at the top
  • 8-12 FAQ entries (with featured-snippet-friendly answers)
  • 1-3 inline comparison tables
  • 12-15 internal links to your existing site pages
  • 5-6 CTA touchpoints (intro implicit + mid soft + end strong + 2-3 inline product mentions)
  • Hero image + 3-5 inline section images
  • Full JSON-LD bundle (BlogPosting + FAQPage + HowTo when applicable + WebApplication + Organization + WebSite + BreadcrumbList + Person + WebPage)
  • 8 cite-able facts from competitor research with inline source links

For full schema details, see article quality.

Cost per article

Steady-state, for a brand on the daily plan:

Plan        ~$0.13  (strategy + brief + data points)
Draft       ~$0.30  (Sonnet, 24k max tokens)
Polish      ~$0.16  (Sonnet refinement pass)
Images      ~$0.21  (Fal nano-banana × 3-4)
Backlinks   ~$0.02  (optional, when matching offers exist)
─────────────────
Total       ~$0.82

This is what Ranket pays per article. Your subscription covers it.

Failures and retries

If any stage fails:

  • The pipeline records current_stage (which stage broke) and error (the message)
  • Pipeline-recoverable errors (network blips, transient API errors) are retried automatically up to 3 times
  • Permanent errors (auth failure, schema rejection) are surfaced in the dashboard for you to inspect

Failed articles stay on the calendar in failed status until you retry them or dismiss. They don’t block the rest of the cadence.

Was this page helpful?