U Ranket
⌘K

How Ranket works

The 4-stage pipeline that turns a website URL into 30 published articles a month — grounded in real data, no manual prompts.

Ranket’s job is to find keywords your domain can plausibly rank for, write articles your audience will actually read, and ship them to your CMS — without a content team. Here’s the architecture that makes it work.

The 4 stages

   URL


1. BRAND SETUP            One-time, 1-3 min
    • Sitemap discovery + crawl (100 pages)
    • Scrape title / H1 / headings / body / meta
    • Two-stage Claude profiler → brand profile + target keywords


2. KEYWORD DISCOVERY      Weekly cron, 30-60s, ~$0.50
    • 4 grounded seed sources (no auto-discovered competitors)
    • Variation expansion via DataForSEO keyword_suggestions
    • Hard filter (KD ≤ 30, vol ≥ 30) + word-set dedup
    • Claude relevance scoring (Haiku)
    • Cascade fallback if pool < 15
    • Opus editorial pass (+20 boost on top 8 picks)


3. PLAN & SCHEDULE        On research refresh + per article
    • Fill calendar at chosen cadence
    • Fan out plan jobs immediately (strategy + brief)
    • Plan stored on calendar row for later execution


4. ARTICLE GENERATION     Daily cron at 09:00 UTC, ~7-12 min, ~$0.80
    • Skip stages 1-5 if plan exists (most days)
    • Draft (Sonnet, 24K max tokens, 3K+ words)
    • Polish (Sonnet refinement)
    • Images (Fal nano-banana × 3-5)
    • Assemble (Markdown + JSON-LD bundle + meta)
    • Webhook delivery to CMS (HMAC SHA-256 signed)

Each stage is independently retriable and observable. Failures in one stage don’t poison others — a failed article doesn’t block the next day’s generation; a failed keyword refresh doesn’t reset the calendar.

Why we built it this way

Grounded in real data, not AI guesses

Most “AI SEO tools” generate keyword lists by asking GPT for variations of your topic. That produces plausible-sounding phrases with no actual search volume.

Ranket’s keyword discovery starts from real data sources — what your domain already ranks for, what your scraped pages talk about, what GSC says you get impressions for — and uses DataForSEO to confirm every variation has real search volume and known difficulty. Claude is only used for judgment (relevance, editorial picks), not for invention.

Plan-then-execute architecture

A naive pipeline runs all 8 stages serially when an article is needed. That makes the daily cron slow, expensive, and prone to coordinated failure.

Ranket separates the plan (strategy + brief + competitor research) from the execute (draft + polish + images + assemble). Plans run immediately when a keyword is scheduled — typically days or weeks before the article is needed. Daily generation just executes the stored plan: fast, cheap, predictable.

Single model class per task

Different tasks need different models. Ranket uses:

  • Claude Haiku 4.5 for bulk classification (keyword relevance scoring)
  • Claude Sonnet 4.6 for prose (strategy, brief, draft, polish)
  • Claude Opus 4.7 for nuanced judgment (editorial picks — one call per refresh)
  • OpenAI text-embedding-3-small for semantic similarity (backlink matching, future semantic dedup)
  • Fal nano-banana for images (hero + section)

Each model is chosen for the smallest capable tier that produces good output for that specific task. Sonnet for everything would burn money; Opus for everything would make every refresh a $20 spend.

No CMS plugin

Ranket delivers articles as a single HMAC-signed JSON webhook. Your CMS doesn’t need a plugin, an OAuth flow, or any Ranket-specific code beyond a webhook verifier. The same pipeline works whether you’re on WordPress, Webflow, Ghost, Sanity, Framer, or a custom Next.js app.

What’s NOT in the pipeline

A few things we deliberately don’t do that other tools market:

  • No auto-discovered competitors. DataForSEO’s competitors_domain returns domains with overlapping search traffic, which for niche SaaS produces noise (apartments.com is not a virtual-staging competitor). We rely on real scraped page signals + the brand’s manual competitor list.
  • No “AI training on your content”. Your articles, scraped pages, and brand profile never enter any model’s training data. Vendors sign DPAs forbidding this.
  • No black-hat optimisation. We don’t keyword-stuff, generate AI link wheels, or cloak content. The articles read like human-written content because they have to — search engines penalise the alternative.

Cost economics

Per published article, end to end:

Keyword discovery (amortised over 18 keywords/refresh)   $0.03
Plan (strategy + brief + data points)                    $0.13
Generation (draft + polish + images + assemble)          $0.62
Backlinks insertion (when matching offer exists)         $0.02
─────────────────────────────────────────────────────────────
Total per article                                        $0.80

At 30 articles/month on the Pro plan (€99), this lands at ~75% gross margin — sustainable for the product and headroom for engineering investment.

Reliability principles

  • Queues for everything. Article generation, keyword research, plan jobs, image generation — all run as queue messages. The fetch handler stays fast; long work happens async.
  • Idempotent upserts. Re-running a refresh doesn’t duplicate keywords; re-running a plan doesn’t duplicate calendar entries. The unique constraints in the DB are the source of truth.
  • Soft failures, hard failures. A failed competitor scrape during research falls back to using fewer competitors. A failed Claude relevance batch falls back to default-low relevance (the keyword survives but won’t be a top pick). A failed image generation falls back to a stock placeholder. Only “no candidate keywords at all” is a hard error.
  • Observable everything. Every stage logs diagnostics (counts, costs, errors). The dashboard surfaces the last 7 days of runs per brand so you can debug a thin pool, a slow plan, or a failed CMS delivery.

Read more

Was this page helpful?