Tutorial

How to Check Content Rank Before Writing

Run a pre-writing check against your target SERP to confirm you can rank before investing writing time. Scavio-powered content triage.

Most content teams write first and check rank potential later, wasting hours on posts that cannot rank. A 60-second Scavio pre-writing check surfaces the SERP difficulty, AI Overview presence, and domain-authority gap before you start. This tutorial wires the check into your editorial process.

Prerequisites

  • Python 3.10+
  • A Scavio API key
  • A proposed post title or target keyword

Walkthrough

Step 1: Query the target keyword

Pull SERP + AI Overview.

Python
import requests, os
API_KEY = os.environ['SCAVIO_API_KEY']

def pre_check(keyword):
    r = requests.post('https://api.scavio.dev/api/v1/search',
        headers={'x-api-key': API_KEY},
        json={'query': keyword, 'include': ['ai_overview', 'paa']})
    return r.json()

Step 2: Score top-10 authority

Count DR>50 domains in top 10. High count = hard SERP.

Python
HIGH_AUTH = {'wikipedia.org', 'forbes.com', 'techcrunch.com', 'nytimes.com'}
def authority_score(results):
    top10 = results.get('organic_results', [])[:10]
    return sum(1 for r in top10 if any(d in r['link'] for d in HIGH_AUTH))

Step 3: Check AI Overview presence

If an overview already exists, ranking is harder but GEO-valuable.

Python
def has_overview(r):
    return bool(r.get('ai_overview'))

Step 4: Report a go/no-go verdict

Rules of thumb baked into a 30-line scorer.

Python
def verdict(r):
    auth = authority_score(r)
    if auth >= 6: return 'NO-GO: top 10 dominated by DR>50'
    if auth >= 4: return 'MAYBE: hard but possible with unique angle'
    return 'GO: top 10 has room'

Step 5: Add to your editorial CMS

Drop the verdict on every new draft ticket.

Bash
# Notion/Linear webhook example:
POST /webhook { "verdict": "MAYBE", "keyword": "..." }

Python Example

Python
import os, requests

API_KEY = os.environ['SCAVIO_API_KEY']
HIGH = {'wikipedia.org', 'forbes.com', 'techcrunch.com'}

def check(kw):
    r = requests.post('https://api.scavio.dev/api/v1/search',
        headers={'x-api-key': API_KEY},
        json={'query': kw, 'include': ['ai_overview']}).json()
    top = r.get('organic_results', [])[:10]
    auth = sum(1 for x in top if any(d in x['link'] for d in HIGH))
    return {'authority_count': auth, 'ai_overview': bool(r.get('ai_overview')), 'verdict': 'NO-GO' if auth >= 6 else 'GO'}

print(check('how to build an ai agent'))

JavaScript Example

JavaScript
const API_KEY = process.env.SCAVIO_API_KEY;
const HIGH = ['wikipedia.org', 'forbes.com', 'techcrunch.com'];
export async function check(kw) {
  const r = await fetch('https://api.scavio.dev/api/v1/search', {
    method: 'POST',
    headers: { 'x-api-key': API_KEY, 'Content-Type': 'application/json' },
    body: JSON.stringify({ query: kw, include: ['ai_overview'] })
  });
  const d = await r.json();
  const top = (d.organic_results || []).slice(0, 10);
  const auth = top.filter(x => HIGH.some(h => x.link.includes(h))).length;
  return { authority_count: auth, ai_overview: !!d.ai_overview, verdict: auth >= 6 ? 'NO-GO' : 'GO' };
}

Expected Output

JSON
Per-keyword verdict in under 5 seconds. Typical team saves 20-40 hours/month skipping no-go topics.

Related Tutorials

Frequently Asked Questions

Most developers complete this tutorial in 15 to 30 minutes. You will need a Scavio API key (free tier works) and a working Python or JavaScript environment.

Python 3.10+. A Scavio API key. A proposed post title or target keyword. A Scavio API key gives you 500 free credits per month.

Yes. The free tier includes 500 credits per month, which is more than enough to complete this tutorial and prototype a working solution.

Scavio has a native LangChain package (langchain-scavio), an MCP server, and a plain REST API that works with any HTTP client. This tutorial uses the raw REST API, but you can adapt to your framework of choice.

Start Building

Run a pre-writing check against your target SERP to confirm you can rank before investing writing time. Scavio-powered content triage.