AIDEVELOPER TOOLS

Competitor Analysis Report

Competitor analysis report that runs 8 intelligence sub-actors in parallel against any company domain, scoring technology stack sophistication, SEO competitive position, e-commerce strength, and online reputation into a single Composite Competitive Score (0-100). Built for strategy teams, product managers, and agencies who need data-backed competitive intelligence without spending days on manual research.

Try on Apify Store
$0.30per event
1
Users (30d)
6
Runs (30d)
90
Actively maintained
Maintenance Pulse
$0.30
Per event

Maintenance Pulse

90/100
Last Build
Today
Last Version
1d ago
Builds (30d)
8
Issue Response
N/A

Cost Estimate

How many results do you need?

analysis-runs
Estimated cost:$30.00

Pricing

Pay Per Event model. You only pay for what you use.

EventDescriptionPrice
analysis-runFull intelligence analysis run$0.30

Example: 100 events = $30.00 · 1,000 events = $300.00

Documentation

Competitor analysis report that runs 8 intelligence sub-actors in parallel against any company domain, scoring technology stack sophistication, SEO competitive position, e-commerce strength, and online reputation into a single Composite Competitive Score (0-100). Built for strategy teams, product managers, and agencies who need data-backed competitive intelligence without spending days on manual research.

Point it at your primary domain and up to five competitors. Within minutes you get a per-dimension breakdown across all targets, a side-by-side score delta comparison, and a ranked verdict — WEAK_COMPETITOR through MARKET_LEADER — for every domain you submit.

What data can you extract?

Data PointSourceExample
📊 Composite ScoreWeighted formula (4 dimensions)74
🏆 Competitive VerdictComposite score bandSTRONG
⚙️ Tech Stack LevelWebsite Tech Stack DetectorADVANCED
🔢 Technologies DetectedWebsite Tech Stack Detector14 technologies
🌿 Modern vs Legacy CountTech stack classifier9 modern, 1 legacy
🔍 SEO LevelSERP Rank Tracker + WCAG AuditorDOMINANT
📈 Keywords in Top 10SERP Rank Tracker11 keywords
🛒 E-commerce LevelShopify Intelligence + Price MonitorESTABLISHED
💰 Product CountShopify Store Intelligence287 products
Reputation LevelMulti-Review Analyzer + TrustpilotGOOD
📝 Average RatingCross-platform review aggregation4.3 / 5.0
🔦 Intelligence SignalsAll sub-actors combined["11 top-10 keywords", "9 modern technologies"]
💡 RecommendationsScore-driven logic["Competitor dominates SERP — targeted SEO strategy needed"]
📐 Score DeltasHead-to-head comparison+16 vs bigcommerce.com

Why use Competitor Analysis Report?

Building a competitive analysis manually means pulling tech stack data from BuiltWith, SERP positions from Ahrefs, reviews from multiple sites, pricing from each competitor's store, and accessibility audits from a separate tool — then assembling it all into a spreadsheet that's already outdated by the time you share it. A thorough manual audit runs 6-10 hours per competitor. Agency rates make that $600-$1,000 per report.

This actor automates the entire process. Eight specialized sub-actors run in parallel for each domain: tech stack detection, SERP rank tracking, Shopify store intelligence, price monitoring, multi-platform review analysis, Trustpilot analysis, Wayback Machine history, and WCAG accessibility auditing. Results flow into four weighted scoring models and produce a single structured JSON report.

  • Scheduling — run weekly or monthly competitor snapshots to track score changes over time
  • API access — trigger analysis runs from Python, JavaScript, or any HTTP client and pipe results into your own dashboards
  • Parallel execution — all 8 sub-actors fire simultaneously per target domain, so analyzing one competitor takes roughly the same time as analyzing five
  • Monitoring — get Slack or email alerts when a competitor's score changes significantly between scheduled runs
  • Integrations — push results to Google Sheets, HubSpot, Zapier workflows, or any webhook endpoint

Features

  • Composite Competitive Score (0-100) weighted across four dimensions: tech stack (20%), SEO (30%), e-commerce (25%), and reputation (25%), producing a single comparable number per domain
  • Five-tier competitive verdicts — WEAK_COMPETITOR, EMERGING, ESTABLISHED, STRONG, MARKET_LEADER — calculated from composite score bands (0-19, 20-39, 40-59, 60-79, 80-100)
  • Tech stack sophistication scoring classifies 14+ modern frameworks (React, Next.js, Vue, Nuxt, Svelte, Angular, TypeScript, GraphQL, Tailwind, Vercel, Cloudflare, AWS, GCP, Stripe) versus 7 legacy indicators (jQuery, Flash, ASP.NET, ColdFusion, Dreamweaver, FrontPage, table-based layouts), with modern techs scoring +5 and legacy indicators penalizing -3 each
  • SERP keyword position scoring allocates 8 points per top-3 keyword, 4 points per top-10, and 2 points per top-20, capturing organic dominance granularly
  • Wayback Machine evolution scoring rewards domains with 20+ historical snapshots (indicating established presence) with up to 25 additional tech stack points
  • WCAG accessibility as SEO signal — zero critical/serious violations contribute 25 SEO points; 5+ violations reduce the SEO score significantly, matching how search engines weight accessibility
  • Shopify store depth analysis distinguishes catalog sizes above 500 products (35 points), 100-499 (25 points), and 20-99 (15 points), plus identifies best-seller collections
  • Cross-platform reputation aggregation combines multi-review sentiment analysis and Trustpilot ratings, applying consistency penalties when scores diverge significantly between platforms
  • Side-by-side score delta comparison when competitor domains are provided — each competitor gets a scoreDelta value showing exactly how far ahead or behind your primary domain it sits
  • Per-dimension breakdown in comparisons — tech stack, SEO, e-commerce, and reputation scores shown for both primary and each competitor
  • Actionable recommendations array generated by score-driven logic: legacy tech = "opportunity to outperform on UX/speed", dominant SERP = "targeted SEO strategy needed", large catalog = "consider niche specialization"
  • Raw data summary records how many items each sub-actor returned, so you can verify data quality for any run

Use cases for competitor analysis

Sales and GTM strategy

Sales and GTM leaders need to know which competitive accounts are technically sophisticated versus running outdated infrastructure. This report surfaces tech stack levels and SEO dominance per domain, so you can walk into a prospect meeting knowing whether their primary competitor is a market leader or an emerging threat they haven't fully mapped yet.

Digital marketing and SEO benchmarking

Marketing teams use this to benchmark their own domain's SERP position against three to five competitors in a single run. The top-3 and top-10 keyword counts, combined with the WCAG accessibility score, identify exactly which SEO dimensions need budget. Manual SERP audits across multiple competitors take days; this takes minutes.

Agency competitive analysis pitches

Consultants and agencies use the structured JSON output — with composite scores, per-dimension breakdowns, and verdict labels — as source data for client presentations. The side-by-side comparison format maps directly to a competitive landscape slide. Running three competitors costs under $0.50.

Product management and roadmap prioritization

Product managers tracking whether a competitor is investing in technical infrastructure can schedule monthly runs and watch the tech stack score over time. A rising modernStack count signals R&D investment. Legacy indicators signal technical debt that creates an opening to outperform on performance and UX.

E-commerce pricing and catalog intelligence

E-commerce strategists compare product catalog sizes and discount patterns across their store and direct competitors. The price monitor integration flags when a competitor is running aggressive discount strategies — helping inform your own promotional calendar and pricing tiers.

M&A and investment due diligence

Analysts evaluating acquisition targets or investment opportunities can run this report as a first-pass digital presence assessment. The composite score gives a quick read on how well a target company has invested in its online presence relative to comparable companies in the same market.

How to run a competitor analysis

  1. Enter your primary domain — Type the domain you want to analyze as the subject (e.g., acmecorp.com). This is the company whose competitive position you are assessing.
  2. Add an optional company name — Enter a human-readable label like "Acme Corp" to make the report easier to read. If left blank, the domain is used as the label.
  3. Add competitor domains — Enter a list of competitor domains (e.g., rivalindustries.com, betacommerce.com). Leave blank to analyze only the primary domain. Up to 5 competitors is recommended for cost and runtime efficiency.
  4. Click Start and download results — The actor runs all analyses in parallel. A single domain finishes in approximately 2-4 minutes. Download structured JSON, CSV, or Excel from the Dataset tab.

Input parameters

ParameterTypeRequiredDefaultDescription
domainstringYesPrimary domain to analyze (e.g., acmecorp.com)
companyNamestringNodomain valueHuman-readable label for the primary domain in the report
competitorsarray of stringsNo[]Competitor domains to analyze and compare against the primary domain

Input examples

Single domain analysis — analyze your own company:

{
  "domain": "acmecorp.com",
  "companyName": "Acme Corp"
}

Head-to-head comparison against three competitors:

{
  "domain": "acmecorp.com",
  "companyName": "Acme Corp",
  "competitors": [
    "rivalindustries.com",
    "betacommerce.com",
    "pinnacletech.io"
  ]
}

Minimal run — just a domain:

{
  "domain": "shopify.com"
}

Input tips

  • Start with your own domain — run the actor against your own domain first to establish a baseline score before adding competitors.
  • Keep competitor batches under 5 — each additional domain runs a full 8-actor parallel analysis cycle, so larger batches increase both cost and total run time proportionally.
  • Use exact domains without paths — enter bigcommerce.com, not https://www.bigcommerce.com/features. The sub-actors handle normalization.
  • Add a company name — the label appears in the comparativeSummary and makes exported reports readable without post-processing.

Output example

{
  "reportType": "competitor-analysis-report",
  "generatedAt": "2026-03-20T09:14:22.441Z",
  "primaryDomain": "acmecorp.com",
  "companyName": "Acme Corp",
  "targetsAnalyzed": 2,
  "reports": [
    {
      "target": "acmecorp.com",
      "isPrimary": true,
      "label": "Acme Corp (primary)",
      "competitor": "acmecorp.com",
      "compositeScore": 68,
      "verdict": "STRONG",
      "techStack": {
        "score": 72,
        "techsDetected": 14,
        "modernStack": 9,
        "legacyIndicators": 1,
        "stackLevel": "ADVANCED",
        "signals": ["9 modern technologies — cutting-edge stack"]
      },
      "seoCompetitive": {
        "score": 74,
        "rankedKeywords": 11,
        "topPositions": 8,
        "seoLevel": "STRONG",
        "signals": ["8 keywords in top 10 — strong organic visibility"]
      },
      "ecommerce": {
        "score": 61,
        "productCount": 287,
        "priceCompetitiveness": 7,
        "ecomLevel": "ESTABLISHED",
        "signals": ["287 products — extensive catalog", "7 discounted products — aggressive pricing strategy"]
      },
      "reputation": {
        "score": 66,
        "avgRating": 4.3,
        "reviewCount": 84,
        "reputationLevel": "GOOD",
        "signals": ["Trustpilot 4.3/5 — strong customer satisfaction"]
      },
      "allSignals": [
        "9 modern technologies — cutting-edge stack",
        "8 keywords in top 10 — strong organic visibility",
        "287 products — extensive catalog",
        "Trustpilot 4.3/5 — strong customer satisfaction"
      ],
      "recommendations": [
        "Competitor has cutting-edge tech stack — invest in technical parity"
      ],
      "rawDataSummary": {
        "techStackItems": 14,
        "serpResults": 11,
        "shopifyItems": 3,
        "priceItems": 12,
        "reviewItems": 61,
        "trustpilotItems": 23,
        "waybackSnapshots": 47,
        "wcagIssues": 2
      }
    },
    {
      "target": "rivalindustries.com",
      "isPrimary": false,
      "label": "rivalindustries.com",
      "compositeScore": 52,
      "verdict": "ESTABLISHED",
      "techStack": { "score": 48, "techsDetected": 9, "modernStack": 4, "legacyIndicators": 3, "stackLevel": "MODERN" },
      "seoCompetitive": { "score": 55, "rankedKeywords": 7, "topPositions": 4, "seoLevel": "MODERATE" },
      "ecommerce": { "score": 44, "productCount": 93, "priceCompetitiveness": 2, "ecomLevel": "GROWING" },
      "reputation": { "score": 59, "avgRating": 3.8, "reviewCount": 39, "reputationLevel": "AVERAGE" },
      "allSignals": ["3 legacy technologies — technical debt indicator"],
      "recommendations": ["Competitor has legacy tech — opportunity to outperform on UX/speed"],
      "rawDataSummary": { "techStackItems": 9, "serpResults": 7, "shopifyItems": 1, "priceItems": 5, "reviewItems": 27, "trustpilotItems": 12, "waybackSnapshots": 19, "wcagIssues": 8 }
    }
  ],
  "comparativeSummary": {
    "primaryDomain": "acmecorp.com",
    "primaryScore": 68,
    "primaryVerdict": "STRONG",
    "competitorComparisons": [
      {
        "competitor": "rivalindustries.com",
        "score": 52,
        "verdict": "ESTABLISHED",
        "scoreDelta": 16,
        "stronger": "acmecorp.com",
        "breakdown": {
          "techStack": { "primary": 72, "competitor": 48 },
          "seo": { "primary": 74, "competitor": 55 },
          "ecommerce": { "primary": 61, "competitor": 44 },
          "reputation": { "primary": 66, "competitor": 59 }
        }
      }
    ]
  }
}

Output fields

FieldTypeDescription
reportTypestringAlways "competitor-analysis-report"
generatedAtstringISO 8601 timestamp of report generation
primaryDomainstringThe primary domain submitted for analysis
companyNamestring or nullCompany name label if provided
targetsAnalyzedintegerTotal domains analyzed (primary + competitors)
reportsarrayPer-domain analysis objects (see below)
comparativeSummaryobject or nullSide-by-side comparison; null if no competitors provided
reports[].targetstringDomain analyzed
reports[].isPrimarybooleanTrue for the primary domain
reports[].labelstringDisplay label (company name or domain)
reports[].compositeScorenumberWeighted overall score 0-100
reports[].verdictstringWEAK_COMPETITOR / EMERGING / ESTABLISHED / STRONG / MARKET_LEADER
reports[].techStack.scorenumberTech stack sub-score 0-100
reports[].techStack.techsDetectedintegerTotal unique technologies found
reports[].techStack.modernStackintegerCount of modern technology matches
reports[].techStack.legacyIndicatorsintegerCount of legacy technology matches
reports[].techStack.stackLevelstringLEGACY / BASIC / MODERN / ADVANCED / CUTTING_EDGE
reports[].seoCompetitive.scorenumberSEO sub-score 0-100
reports[].seoCompetitive.rankedKeywordsintegerTotal keywords with tracked SERP positions
reports[].seoCompetitive.topPositionsintegerKeywords ranked in top 10
reports[].seoCompetitive.seoLevelstringINVISIBLE / WEAK / MODERATE / STRONG / DOMINANT
reports[].ecommerce.scorenumberE-commerce sub-score 0-100
reports[].ecommerce.productCountintegerTotal products detected
reports[].ecommerce.priceCompetitivenessintegerCount of discounted/promotional products
reports[].ecommerce.ecomLevelstringNO_ECOM / BASIC / GROWING / ESTABLISHED / DOMINANT
reports[].reputation.scorenumberReputation sub-score 0-100
reports[].reputation.avgRatingnumberAverage rating across all review sources
reports[].reputation.reviewCountintegerTotal reviews analyzed
reports[].reputation.reputationLevelstringPOOR / BELOW_AVERAGE / AVERAGE / GOOD / EXCELLENT
reports[].allSignalsarray of stringsAll narrative intelligence signals from all sub-actors
reports[].recommendationsarray of stringsActionable next-step recommendations
reports[].rawDataSummaryobjectItem counts returned by each of the 8 sub-actors
comparativeSummary.scoreDeltanumberPrimary score minus competitor score (positive = primary is stronger)
comparativeSummary.strongerstringDomain with the higher composite score
comparativeSummary.breakdownobjectPer-dimension scores for primary and competitor side by side

How much does it cost to run competitor analysis?

Competitor Analysis Report uses pay-per-use pricing — you pay approximately $0.08-$0.12 per domain analyzed. That covers all 8 sub-actor calls and compute time.

ScenarioDomainsCost per domainTotal cost
Quick test (1 domain)1~$0.10~$0.10
Self + 1 competitor2~$0.10~$0.20
Self + 3 competitors4~$0.10~$0.40
Self + 5 competitors6~$0.10~$0.60
Agency batch (10 clients)10~$0.10~$1.00

You can set a maximum spending limit per run to control costs. The actor stops when your budget is reached.

Compare this to Crayon or Klue at $500-$2,000/month for competitive intelligence platforms — with this actor, a comprehensive weekly competitive report for five competitors costs under $2/month with no subscription commitment. Apify's free tier includes $5 of monthly credits, covering approximately 40-50 single-domain analyses.

Competitor analysis using the API

Python

from apify_client import ApifyClient

client = ApifyClient("YOUR_API_TOKEN")

run = client.actor("ryanclinton/competitor-analysis-report").call(run_input={
    "domain": "acmecorp.com",
    "companyName": "Acme Corp",
    "competitors": ["rivalindustries.com", "betacommerce.com"]
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    primary = next(r for r in item["reports"] if r["isPrimary"])
    print(f"Primary score: {primary['compositeScore']} ({primary['verdict']})")
    if item.get("comparativeSummary"):
        for comp in item["comparativeSummary"]["competitorComparisons"]:
            delta = comp["scoreDelta"]
            direction = "ahead of" if delta > 0 else "behind"
            print(f"  {abs(delta)} points {direction} {comp['competitor']} ({comp['verdict']})")

JavaScript

import { ApifyClient } from "apify-client";

const client = new ApifyClient({ token: "YOUR_API_TOKEN" });

const run = await client.actor("ryanclinton/competitor-analysis-report").call({
    domain: "acmecorp.com",
    companyName: "Acme Corp",
    competitors: ["rivalindustries.com", "betacommerce.com"]
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const item of items) {
    const primary = item.reports.find(r => r.isPrimary);
    console.log(`Primary: ${primary.compositeScore}/100 — ${primary.verdict}`);
    if (item.comparativeSummary) {
        for (const comp of item.comparativeSummary.competitorComparisons) {
            console.log(`  vs ${comp.competitor}: delta=${comp.scoreDelta}, stronger=${comp.stronger}`);
        }
    }
}

cURL

# Start the actor run
curl -X POST "https://api.apify.com/v2/acts/ryanclinton~competitor-analysis-report/runs?token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "domain": "acmecorp.com",
    "companyName": "Acme Corp",
    "competitors": ["rivalindustries.com", "betacommerce.com"]
  }'

# Fetch results (replace DATASET_ID from the run response above)
curl "https://api.apify.com/v2/datasets/DATASET_ID/items?token=YOUR_API_TOKEN&format=json"

How Competitor Analysis Report works

Phase 1: Parallel sub-actor execution

For each domain in the input (primary + any competitors), the actor fires 8 specialized sub-actors simultaneously using Promise.all. The sub-actors are: Website Tech Stack Detector, SERP Rank Tracker, Shopify Store Intelligence, E-commerce Price Monitor, Multi-Review Analyzer, Trustpilot Review Analyzer, Wayback Machine Search, and WCAG Accessibility Auditor. Each sub-actor runs with a 512 MB memory allocation and a 120-second timeout. Results are collected into a keyed data object with up to 1,000 items per sub-actor. Failed sub-actor calls return empty arrays rather than failing the entire run.

Phase 2: Four-dimensional scoring

The generateCompetitiveIntel function passes the raw data object into four independent scoring functions, each producing a 0-100 sub-score and a categorical level label.

The tech stack scorer iterates all detected technologies, scoring +5 for each of 14 modern technology matches and -3 for each of 7 legacy indicators, capped at 40 points. Wayback snapshot counts add up to 25 points for established presence. Tech diversity (unique technology count × 2, capped at 20) and stack maturity (modern-to-legacy ratio + diversity threshold) contribute the remaining 15 points.

The SEO scorer allocates 8 points per top-3 keyword, 4 per top-10, and 2 per top-20 from SERP data (capped at 40). WCAG critical/serious violation counts reduce the accessibility contribution (0 violations = 25 points, 1-3 = 15, 4-10 = 8, 11+ = 0). Keyword breadth (serp.length × 2, capped at 20) and SEO maturity round out the score.

The e-commerce scorer maps Shopify product counts to a tiered point scale (500+ = 35, 100-499 = 25, 20-99 = 15) and adds pricing strategy points from the price monitor. Price competitiveness (count of items with active discounts) adds up to 4 points each, capped at 30.

The reputation scorer averages ratings across multi-platform reviews (up to 40 points at 5-star × 8) and Trustpilot (up to 30 points at 5-star × 6 plus volume). Review volume adds up to 15 points; cross-platform rating consistency adds up to 15.

Phase 3: Composite scoring and comparative assembly

The composite score is calculated as: techStack × 0.20 + seoCompetitive × 0.30 + ecommerce × 0.25 + reputation × 0.25. Verdict bands map to: 0-19 = WEAK_COMPETITOR, 20-39 = EMERGING, 40-59 = ESTABLISHED, 60-79 = STRONG, 80-100 = MARKET_LEADER.

When competitor domains are present, the actor builds a comparativeSummary object containing per-competitor scoreDelta (primary minus competitor), stronger (winning domain), and a full per-dimension breakdown object for tech stack, SEO, e-commerce, and reputation. The complete report — all domain reports plus the comparative summary — is pushed as a single dataset item.

Tips for best results

  1. Run your own domain first. Establish your baseline composite score before adding competitors. It tells you which dimensions you need to improve before benchmarking against others.

  2. Schedule weekly runs for active competitive markets. Tech stack and SEO scores can shift meaningfully over a 4-week window. Use Apify's built-in scheduling to track trends and catch competitors making significant investments.

  3. Combine with Website Tech Stack Detector for deeper tech audits. The competitor report gives you a normalized score; the standalone tech detector returns the full raw technology list when you need to investigate specific frameworks.

  4. Use Google Sheets integration to build a trend dashboard. Push each weekly run's composite scores and dimension sub-scores into a Google Sheet. Plot the timeseries to see which competitors are investing in which channels.

  5. Treat low rawDataSummary counts as a data quality signal. If serpResults comes back as 0, the SERP tracker may not have found rankings for that domain yet — that's a legitimate "INVISIBLE" SEO signal, not a system error.

  6. Interpret e-commerce scores carefully for non-Shopify businesses. SaaS companies, B2B firms, and service businesses will consistently score low on e-commerce — that is expected. Weight the tech stack and SEO dimensions more heavily for those analysis targets.

  7. Pair with Trustpilot Review Analyzer for deeper reputation digs. The competitor report aggregates Trustpilot data into a score; the standalone analyzer returns full review text and sentiment breakdowns when you need to read what customers are actually saying.

Combine with other Apify actors

ActorHow to combine
Website Tech Stack DetectorGet the full raw technology list for any domain surfaced by the tech stack score — useful when you want to see exactly which CDN, CMS, or framework a competitor just adopted
SERP Rank TrackerDrill into specific keyword clusters that the composite SEO score aggregates — run targeted keyword lists against a competitor domain you flagged as DOMINANT
Trustpilot Review AnalyzerPull full review text and topic-level sentiment for a competitor with a high reputation score — find out which product features customers praise most
Multi-Review AnalyzerExpand reputation coverage beyond Trustpilot for competitors with reviews on Google, BBB, or G2
Shopify Store IntelligenceGet complete product catalog data for e-commerce competitors the report flags as ESTABLISHED or DOMINANT
Website Contact ScraperAfter identifying top competitors by composite score, extract contact information from those domains to build outreach lists
B2B Lead QualifierFeed competitor domains identified in this report into the lead qualifier to score them as acquisition or partnership targets

Limitations

  • E-commerce scoring is Shopify-biased. The Shopify Store Intelligence sub-actor provides the richest product data. Non-Shopify platforms (WooCommerce, Magento, BigCommerce) will still receive pricing data from the price monitor but may show lower e-commerce scores than their actual catalog depth warrants.
  • SERP data reflects tracked rankings, not full keyword universes. The SERP rank tracker returns rankings for the keywords it monitors. Domains with large but untracked organic footprints may be underscored on SEO. For comprehensive keyword gap analysis, use a dedicated SEO tool alongside this report.
  • Wayback Machine coverage varies by domain age. Newer domains (under 2 years) will have few or no Wayback snapshots and will score near zero on the evolution component of the tech stack dimension. This is accurate, not a bug.
  • Trustpilot scores require an active Trustpilot profile. Companies without a Trustpilot presence contribute zero to the reputation Trustpilot component. The multi-review dimension can still produce a reputation score from other review sources.
  • WCAG audits cover the homepage only. The accessibility auditor analyzes the primary URL. Sites with excellent homepage accessibility but poor internal-page compliance will score higher than their full accessibility posture warrants.
  • Scores are point-in-time snapshots. Competitive positions change. A score from three months ago may not reflect a competitor's current investment. Schedule recurring runs to track change over time.
  • Sub-actor timeouts affect completeness. Each sub-actor has a 120-second timeout. Sites that are very slow or blocked may return partial or empty data for specific dimensions, reducing that dimension's score. Check rawDataSummary to identify which sub-actors returned limited data.
  • No financial or firmographic data. This report covers digital presence only: tech stack, SEO, e-commerce, and reputation. Revenue, headcount, funding history, and org structure are outside scope. For those dimensions, use Company Deep Research.

Integrations

  • Zapier — trigger a competitor analysis run when a new account is added to your CRM, and post the composite score to a Slack channel automatically
  • Make — build multi-step workflows that run the analysis, filter for MARKET_LEADER verdicts, and push those domains into a HubSpot deal pipeline
  • Google Sheets — export weekly competitor scores into a tracking spreadsheet and build trend charts across all four dimensions
  • Apify API — call the actor programmatically from your internal tools or BI pipelines and embed competitive scores directly in your dashboards
  • Webhooks — receive a POST request with the full report JSON the moment a run finishes, enabling real-time downstream processing
  • LangChain / LlamaIndex — feed the structured competitive intelligence report into an LLM pipeline to generate narrative competitive briefings or strategy memos automatically

Troubleshooting

  • Composite score is lower than expected for a well-known company. Check rawDataSummary in the output. If serpResults is under 3 or reviewItems is under 5, the sub-actors returned sparse data for that domain. This can happen for very new domains, domains not indexed by the SERP tracker, or B2B companies with no public review profiles. The score accurately reflects available data — it is not a system error.

  • Run takes longer than 5 minutes. Each domain triggers 8 parallel sub-actor calls. The total run time is bounded by the slowest sub-actor, which can take up to 120 seconds. Adding 4 competitors means 5 sequential domain-analysis cycles, each up to 2 minutes. For large batches, increase the actor's memory allocation to 512 MB and allow up to 15 minutes.

  • E-commerce score is 0 for a company that clearly has a store. The e-commerce dimension is anchored on Shopify Store Intelligence. If the competitor runs WooCommerce, Magento, or a custom platform, the Shopify sub-actor returns empty data. The price monitor may still contribute some score. This is an expected data gap for non-Shopify stores.

  • All four dimension scores are 0. This usually means the domain was unreachable or all sub-actors timed out. Verify the domain is accessible in a browser and does not block automated requests. Try re-running with the same input — transient network issues are the most common cause.

Responsible use

  • This actor only accesses publicly available information: published technology headers, indexed SERP positions, public review platforms, and publicly listed e-commerce product pages.
  • Respect each website's terms of service and robots.txt directives.
  • Comply with GDPR and applicable data protection laws when storing or sharing competitive intelligence data.
  • Do not use extracted competitor data for deceptive practices or to impersonate competing businesses.
  • For guidance on web scraping legality, see Apify's guide.

FAQ

How many competitors can I analyze in a single competitor analysis run? There is no hard limit in the actor code. Each competitor domain adds a full 8-actor analysis cycle, so runtime and cost grow linearly. For practical use, 3-5 competitors per run is recommended. Analyzing 5 competitors plus your primary domain costs approximately $0.60 and completes in 10-15 minutes.

What does the Composite Competitive Score actually measure? It is a weighted average of four independently scored dimensions: tech stack sophistication (20%), SEO competitive position (30%), e-commerce strength (25%), and online reputation (25%). The weights reflect the relative influence each dimension has on digital market position. You cannot change the weights in the current version — they are hard-coded in the scoring model.

How is this different from Crayon, Klue, or Semrush competitor tools? Those platforms charge $500-$2,000/month for ongoing monitoring with manual data enrichment. This actor runs on-demand analysis for approximately $0.10 per domain and returns structured JSON you can query programmatically. It covers a broader data surface (tech stack + SERP + e-commerce + reviews + accessibility + historical snapshots) than most single-vendor tools. The tradeoff is that it does not provide continuous real-time monitoring without scheduling.

How accurate is the tech stack scoring? The tech stack scorer classifies 14 modern and 7 legacy technology patterns from the raw technology list detected by the Website Tech Stack Detector sub-actor. Accuracy depends on how many technologies the underlying detector identifies. Well-crawled, publicly accessible sites typically return 8-15 detected technologies. Sites behind heavy bot protection may return fewer, producing lower tech stack scores regardless of actual stack sophistication.

Does competitor analysis work for non-e-commerce businesses like SaaS or B2B services? Yes, but the e-commerce dimension will score near 0 for businesses without a product catalog or Shopify store. The tech stack, SEO, and reputation dimensions are fully applicable to any web-accessible business. Interpret composite scores for SaaS and B2B targets by focusing on the tech and SEO sub-scores rather than the composite.

How long does a typical competitor analysis run take? A single domain completes in approximately 2-4 minutes. Each additional competitor domain adds roughly 2 minutes of parallel processing. Analyzing a primary domain plus four competitors typically finishes in 8-12 minutes.

Can I schedule this actor to run weekly for ongoing competitor tracking? Yes. Use Apify's built-in scheduling feature to trigger runs on any interval. Set up a Google Sheets integration to export scores each time and track dimension changes over time. Weekly tracking for five competitors costs approximately $0.40 per week — about $1.60/month.

What technologies are classified as modern versus legacy in the tech stack dimension? Modern (score +5 each): React, Next.js, Vue, Nuxt, Svelte, Angular, TypeScript, GraphQL, Tailwind, Vercel, Cloudflare, AWS, GCP, Stripe. Legacy (score -3 each): jQuery, Flash, ASP.NET, ColdFusion, Dreamweaver, FrontPage, table-based layouts. A domain using 7 modern technologies and zero legacy indicators scores 35 points on the tech sophistication component alone.

Is it legal to run competitor analysis on publicly accessible websites? Yes. This actor collects only publicly available information: technology headers visible in HTTP responses, search engine rankings already indexed publicly, published review platform ratings, and publicly listed e-commerce product pages. No authentication bypassing, private data access, or personal data collection is involved. For further context, see Apify's web scraping legality guide.

What happens if a competitor domain has no Trustpilot profile? The Trustpilot sub-actor returns zero items, which contributes zero to the Trustpilot component of the reputation score. The multi-platform review component can still produce a reputation score from other sources. The overall reputation score will be lower than it would be with Trustpilot data present, but it will not cause the run to fail.

Can I use the output to feed an AI system or LLM pipeline? Yes. The structured JSON output — with named fields, categorical levels, numeric scores, and narrative signal strings — is well-suited for LLM ingestion. Use the LangChain / Apify integration to pass the report directly into a chain that generates a written competitive briefing.

Help us improve

If you encounter issues, you can help us debug faster by enabling run sharing in your Apify account:

  1. Go to Account Settings > Privacy
  2. Enable Share runs with public Actor creators

This lets us see your run details when something goes wrong, so we can fix issues faster. Your data is only visible to the actor developer, not publicly.

Support

Found a bug or have a feature request? Open an issue in the Issues tab on this actor's page. For custom solutions or enterprise integrations, reach out through the Apify platform.

How it works

01

Configure

Set your parameters in the Apify Console or pass them via API.

02

Run

Click Start, trigger via API, webhook, or set up a schedule.

03

Get results

Download as JSON, CSV, or Excel. Integrate with 1,000+ apps.

Use cases

Sales Teams

Build targeted lead lists with verified contact data.

Marketing

Research competitors and identify outreach opportunities.

Data Teams

Automate data collection pipelines with scheduled runs.

Developers

Integrate via REST API or use as an MCP tool in AI workflows.

Ready to try Competitor Analysis Report?

Start for free on Apify. No credit card required.

Open on Apify Store