ScavioScavio
ProductPricingDocs
Sign InGet Started
  1. Home
  2. Tutorials
  3. How to Build One-Page Audit Enrichment
Tutorial

How to Build One-Page Audit Enrichment

Enrich one-page audits with live search data. Add competitor analysis, keyword rankings, and content gaps to prospect audits automatically.

Get Free API KeyAPI Docs

One-page audits are a proven lead magnet for agencies and SaaS companies: you audit a prospect's website and deliver a concise report showing what they can improve. Enriching these audits with live search data makes them dramatically more valuable because they include real competitor rankings, content gaps, and keyword opportunities. This tutorial shows how to build an automated one-page audit enrichment pipeline that takes a domain, queries live SERP data, and generates a rich audit with actionable insights.

Prerequisites

  • Python 3.8+ installed
  • requests library installed
  • A Scavio API key from scavio.dev
  • A prospect domain to audit

Walkthrough

Step 1: Set up the audit pipeline

Configure the API client and define the audit structure.

Python
import os, requests, json

API_KEY = os.environ["SCAVIO_API_KEY"]

def search(query):
    resp = requests.post("https://api.scavio.dev/api/v1/search",
        headers={"x-api-key": API_KEY},
        json={"platform": "google", "query": query})
    return resp.json()

Step 2: Audit site visibility

Check how many pages the prospect's domain has indexed and what ranks.

Python
def audit_visibility(domain):
    data = search(f"site:{domain}")
    results = data.get("organic_results", [])
    return {
        "domain": domain,
        "indexed_pages_sample": len(results),
        "top_pages": [{"title": r["title"], "url": r.get("link", "")}
                      for r in results[:5]],
    }

Step 3: Analyze competitor landscape

Find who ranks for the prospect's primary keyword and compare positions.

Python
def audit_competitors(domain, keyword):
    data = search(keyword)
    results = data.get("organic_results", [])[:10]
    my_position = None
    competitors = []
    for i, r in enumerate(results):
        if domain in r.get("link", ""):
            my_position = i + 1
        else:
            competitors.append({"title": r["title"][:60], "position": i + 1,
                                "url": r.get("link", "")})
    return {
        "keyword": keyword,
        "my_position": my_position,
        "top_competitors": competitors[:5],
        "paa": [q.get("question","") for q in data.get("people_also_ask", [])],
    }

Step 4: Generate the enriched audit report

Combine all audit data into a single enriched report.

Python
def generate_audit(domain, keywords):
    visibility = audit_visibility(domain)
    keyword_audits = [audit_competitors(domain, kw) for kw in keywords]
    gaps = []
    for ka in keyword_audits:
        gaps.extend(ka["paa"])
    return {
        "domain": domain,
        "visibility": visibility,
        "keyword_analysis": keyword_audits,
        "content_gaps": list(set(gaps))[:10],
        "recommendations": [
            f"Target {len(set(gaps))} unanswered questions from PAA",
            f"Compete with {sum(len(ka['top_competitors']) for ka in keyword_audits)} ranking pages",
        ],
    }

audit = generate_audit("example.com", ["project management tool", "team collaboration software"])
with open("audit_report.json", "w") as f:
    json.dump(audit, f, indent=2)
print("Audit generated")

Python Example

Python
import os, requests
API_KEY = os.environ["SCAVIO_API_KEY"]
def audit(domain):
    resp = requests.post("https://api.scavio.dev/api/v1/search",
        headers={"x-api-key": API_KEY},
        json={"platform": "google", "query": f"site:{domain}"})
    results = resp.json().get("organic_results", [])[:5]
    return {"domain": domain, "pages": len(results),
            "titles": [r["title"] for r in results]}

print(audit("example.com"))

JavaScript Example

JavaScript
const H = {"x-api-key": process.env.SCAVIO_API_KEY, "Content-Type": "application/json"};
async function audit(domain) {
  const r = await fetch("https://api.scavio.dev/api/v1/search", {
    method: "POST", headers: H,
    body: JSON.stringify({platform: "google", query: `site:${domain}`})
  });
  const results = (await r.json()).organic_results || [];
  return {domain, pages: results.length, titles: results.slice(0,5).map(r=>r.title)};
}
audit("example.com").then(console.log);

Expected Output

JSON
An enriched one-page audit report with site visibility, competitor analysis, keyword positions, PAA-based content gaps, and actionable recommendations.

Related Tutorials

  • How to Build an SEO Audit Tool with SERP and Competitor Analysis
  • How to Enrich Cold Email Prospects with Google Search

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.8+ installed. requests library installed. A Scavio API key from scavio.dev. A prospect domain to audit. A Scavio API key gives you 50 free credits on signup.

Yes. The free tier includes 50 credits on signup, 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.

Related Resources

Use Case

n8n Search Enrichment Workflow

Read more
Best Of

Best Search APIs for Pipeline Integration in 2026

Read more
Use Case

Cold Email One-Page Audit Strategy

Read more
Glossary

Search API Provider Landscape (2026)

Read more
Best Of

Best Enrichment API with Predictable JSON in 2026

Read more
Glossary

SEO API Pipeline

Read more

Start Building

Enrich one-page audits with live search data. Add competitor analysis, keyword rankings, and content gaps to prospect audits automatically.

Get Free API KeyRead the Docs
ScavioScavio

Real-time search API for AI agents. Search every platform, not just Google.

Product

  • Features
  • Pricing
  • Dashboard
  • Affiliates

Developers

  • Documentation
  • API Reference
  • Quickstart
  • MCP Integration
  • Python SDK

Alternatives

  • Tavily Alternative
  • SerpAPI Alternative
  • Firecrawl Alternative
  • Exa Alternative

Tools

  • JSON Formatter
  • cURL to Code
  • Token Counter
  • All Tools

© 2026 Scavio. All rights reserved.

Featured on TAAFT
Terms of ServicePrivacy Policy