classify_url
Classify a website URL into category, subcategory, language, and sentiment.
Fetches the URL content and uses AI for classification.
Results are cached for fast subsequent lookups.
Rate limited to 1 request per minute per domain.
Args:
url: The website URL to classify (e.g., "https://example.com").
Returns:
Classification result with:
- url: The normalized URL
- category: Main category (e.g., "Sports", "Technology")
- subcategory: Specific subcategory
- language: Detected content language
- sentiment: Content sentiment (Good/Neutral/Bad)
- age: Target age group (if available)
- gender: Target gender (if available)
- cached: Whether result was from cache
select_advertiser
Select the best advertisers based on website demographics.
Matches advertisers to website content based on classification demographics.
Provide either a URL (classification will be fetched) or demographics directly.
Rate limited to 1 request per minute per domain when using URL.
Scoring weights:
- Category match: +10 points
- Age match: +5 points
- Gender match: +3 points
- Sentiment match: +2 points
- Higher CPM bid as tiebreaker
Args:
url: URL to match advertisers for (fetches classification from cache).
category: Target category (e.g., "Sports", "Automotive").
subcategory: Target subcategory.
age: Target age group (e.g., "18-24", "25-34", "31-51").
gender: Target gender ("male", "female", or "all").
sentiment: Content sentiment ("Good", "Neutral", or "Bad").
limit: Number of advertisers to return (1-10, default 3).
min_cpm: Minimum CPM cost filter (e.g., 5.0 for $5+ CPM).
max_cpm: Maximum CPM cost filter (e.g., 10.0 for $10 or less CPM).
Returns:
Dictionary with:
- matches: List of matched advertisers with scores
- match_count: Number of matches found
- classification: URL classification (if URL provided)
- demographics: Provided demographics (if no URL)
analyze_seo
Analyze a website URL for SEO optimizations.
Fetches the URL content and analyzes HTML for possible SEO improvements.
Results are cached for fast subsequent lookups.
Rate limited to 1 request per minute per domain.
Args:
url: The website URL to analyze (e.g., "https://example.com").
Returns:
SEO analysis result with:
- url: The analyzed URL
- score: Overall SEO score (0-100)
- grade: Letter grade (A-F)
- issues: List of SEO issues found (critical, warnings, info)
- meta: Extracted meta information (title, description, headings, etc.)
- recommendations: Prioritized list of improvements
- cached: Whether result was from cache
analyze_eeat
Analyze a website URL for E-E-A-T (Experience, Expertise, Authoritativeness, Trustworthiness).
Evaluates content quality signals based on Google's Search Quality Rater Guidelines
and "Creating helpful content" documentation. Detects EEAT signals including:
- Experience: First-person language, case studies, testimonials, years of experience
- Expertise: Author credentials, certifications, professional memberships, topic depth
- Authoritativeness: Organization schema, awards, trust badges, media mentions
- Trustworthiness: HTTPS, contact info, privacy policy, source citations
Also detects YMYL (Your Money or Your Life) content for health, financial, and legal topics.
Results are cached for fast subsequent lookups.
Rate limited to 1 request per minute per domain.
Args:
url: The website URL to analyze (e.g., "https://example.com").
Returns:
EEAT analysis result with:
- url: The analyzed URL
- score: Overall EEAT score (0-100)
- grade: Letter grade (A-F)
- scores: Individual category scores (experience, expertise, authoritativeness, trustworthiness)
- issues: Categorized issues (critical, warnings, info)
- signals: Detected EEAT signals
- meta: Extracted meta information
- recommendations: Prioritized list of improvements
- cached: Whether result was from cache
analyze_aeo
Analyze how well content is optimized for AI answer engines.
Evaluates content for AI answer engines (ChatGPT, Perplexity, Gemini, Claude).
Combines Q&A pattern detection, snippet extractability, and entity clarity
analysis with a full Citation Readiness assessment.
AEO Scoring Framework (100 points):
- Answer Format Detection: 30 points (Q&A extractability patterns)
- FAQ Schema Presence: 20 points (FAQPage schema markup)
- HowTo Schema Presence: 15 points (HowTo schema markup)
- Direct Answer Snippets: 20 points (short extractable blocks <50 words)
- Entity Clarity Score: 15 points (clear entity definitions)
Neutral Schema Scoring: If no FAQ/HowTo-style content detected, those
schema metrics score full points rather than penalizing.
Grade Scale: A (85-100), B (70-84), C (55-69), D (40-54), F (0-39)
Results are cached for fast subsequent lookups.
Rate limited to 1 request per minute per domain.
Args:
url: The website URL to analyze (e.g., "https://example.com").
Returns:
AEO analysis with:
- url: The analyzed URL
- aeo_score: Overall AEO score (0-100)
- aeo_grade: Letter grade (A-F)
- aeo_metrics: Individual metric scores
- citation: Full Citation Readiness analysis (score, grade, issues, signals)
- issues: Problems detected (critical, warnings, info)
- signals: Positive signals detected
- recommendations: Prioritized improvements
- cached: Whether result was from cache
analyze_wcag
Analyze a website URL for WCAG 2.1 Level A accessibility issues.
Automated static HTML analysis covering approximately 30-40% of WCAG 2.1
Level A criteria. Checks include: image alt text, form labels, heading
hierarchy, page title, html lang, empty links/buttons, ARIA labels,
duplicate IDs, skip navigation, table headers, landmarks, viewport zoom,
autoplay media, and tabindex ordering.
Manual testing is required for full WCAG compliance assessment.
Results are cached for fast subsequent lookups.
Rate limited to 1 request per minute per domain.
Args:
url: The website URL to analyze (e.g., "https://example.com").
Returns:
WCAG analysis with:
- url: The analyzed URL
- score: Accessibility score (0-100)
- grade: Letter grade (A-F)
- issues: Categorized issues (critical, warnings, info)
- meta: Extracted accessibility metadata
- recommendations: Prioritized improvements
- coverage_note: Disclaimer about automated coverage
- cached: Whether result was from cache