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.
Maintenance Pulse
90/100Cost Estimate
How many results do you need?
Pricing
Pay Per Event model. You only pay for what you use.
| Event | Description | Price |
|---|---|---|
| analysis-run | Full 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 Point | Source | Example |
|---|---|---|
| 📊 Composite Score | Weighted formula (4 dimensions) | 74 |
| 🏆 Competitive Verdict | Composite score band | STRONG |
| ⚙️ Tech Stack Level | Website Tech Stack Detector | ADVANCED |
| 🔢 Technologies Detected | Website Tech Stack Detector | 14 technologies |
| 🌿 Modern vs Legacy Count | Tech stack classifier | 9 modern, 1 legacy |
| 🔍 SEO Level | SERP Rank Tracker + WCAG Auditor | DOMINANT |
| 📈 Keywords in Top 10 | SERP Rank Tracker | 11 keywords |
| 🛒 E-commerce Level | Shopify Intelligence + Price Monitor | ESTABLISHED |
| 💰 Product Count | Shopify Store Intelligence | 287 products |
| ⭐ Reputation Level | Multi-Review Analyzer + Trustpilot | GOOD |
| 📝 Average Rating | Cross-platform review aggregation | 4.3 / 5.0 |
| 🔦 Intelligence Signals | All sub-actors combined | ["11 top-10 keywords", "9 modern technologies"] |
| 💡 Recommendations | Score-driven logic | ["Competitor dominates SERP — targeted SEO strategy needed"] |
| 📐 Score Deltas | Head-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
scoreDeltavalue 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
- 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. - 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.
- 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. - 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
domain | string | Yes | — | Primary domain to analyze (e.g., acmecorp.com) |
companyName | string | No | domain value | Human-readable label for the primary domain in the report |
competitors | array of strings | No | [] | 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, nothttps://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
| Field | Type | Description |
|---|---|---|
reportType | string | Always "competitor-analysis-report" |
generatedAt | string | ISO 8601 timestamp of report generation |
primaryDomain | string | The primary domain submitted for analysis |
companyName | string or null | Company name label if provided |
targetsAnalyzed | integer | Total domains analyzed (primary + competitors) |
reports | array | Per-domain analysis objects (see below) |
comparativeSummary | object or null | Side-by-side comparison; null if no competitors provided |
reports[].target | string | Domain analyzed |
reports[].isPrimary | boolean | True for the primary domain |
reports[].label | string | Display label (company name or domain) |
reports[].compositeScore | number | Weighted overall score 0-100 |
reports[].verdict | string | WEAK_COMPETITOR / EMERGING / ESTABLISHED / STRONG / MARKET_LEADER |
reports[].techStack.score | number | Tech stack sub-score 0-100 |
reports[].techStack.techsDetected | integer | Total unique technologies found |
reports[].techStack.modernStack | integer | Count of modern technology matches |
reports[].techStack.legacyIndicators | integer | Count of legacy technology matches |
reports[].techStack.stackLevel | string | LEGACY / BASIC / MODERN / ADVANCED / CUTTING_EDGE |
reports[].seoCompetitive.score | number | SEO sub-score 0-100 |
reports[].seoCompetitive.rankedKeywords | integer | Total keywords with tracked SERP positions |
reports[].seoCompetitive.topPositions | integer | Keywords ranked in top 10 |
reports[].seoCompetitive.seoLevel | string | INVISIBLE / WEAK / MODERATE / STRONG / DOMINANT |
reports[].ecommerce.score | number | E-commerce sub-score 0-100 |
reports[].ecommerce.productCount | integer | Total products detected |
reports[].ecommerce.priceCompetitiveness | integer | Count of discounted/promotional products |
reports[].ecommerce.ecomLevel | string | NO_ECOM / BASIC / GROWING / ESTABLISHED / DOMINANT |
reports[].reputation.score | number | Reputation sub-score 0-100 |
reports[].reputation.avgRating | number | Average rating across all review sources |
reports[].reputation.reviewCount | integer | Total reviews analyzed |
reports[].reputation.reputationLevel | string | POOR / BELOW_AVERAGE / AVERAGE / GOOD / EXCELLENT |
reports[].allSignals | array of strings | All narrative intelligence signals from all sub-actors |
reports[].recommendations | array of strings | Actionable next-step recommendations |
reports[].rawDataSummary | object | Item counts returned by each of the 8 sub-actors |
comparativeSummary.scoreDelta | number | Primary score minus competitor score (positive = primary is stronger) |
comparativeSummary.stronger | string | Domain with the higher composite score |
comparativeSummary.breakdown | object | Per-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.
| Scenario | Domains | Cost per domain | Total cost |
|---|---|---|---|
| Quick test (1 domain) | 1 | ~$0.10 | ~$0.10 |
| Self + 1 competitor | 2 | ~$0.10 | ~$0.20 |
| Self + 3 competitors | 4 | ~$0.10 | ~$0.40 |
| Self + 5 competitors | 6 | ~$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
-
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.
-
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.
-
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.
-
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.
-
Treat low rawDataSummary counts as a data quality signal. If
serpResultscomes back as0, the SERP tracker may not have found rankings for that domain yet — that's a legitimate "INVISIBLE" SEO signal, not a system error. -
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.
-
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
| Actor | How to combine |
|---|---|
| Website Tech Stack Detector | Get 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 Tracker | Drill into specific keyword clusters that the composite SEO score aggregates — run targeted keyword lists against a competitor domain you flagged as DOMINANT |
| Trustpilot Review Analyzer | Pull 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 Analyzer | Expand reputation coverage beyond Trustpilot for competitors with reviews on Google, BBB, or G2 |
| Shopify Store Intelligence | Get complete product catalog data for e-commerce competitors the report flags as ESTABLISHED or DOMINANT |
| Website Contact Scraper | After identifying top competitors by composite score, extract contact information from those domains to build outreach lists |
| B2B Lead Qualifier | Feed 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
rawDataSummaryto 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
rawDataSummaryin the output. IfserpResultsis under 3 orreviewItemsis 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.txtdirectives. - 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:
- Go to Account Settings > Privacy
- 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
Configure
Set your parameters in the Apify Console or pass them via API.
Run
Click Start, trigger via API, webhook, or set up a schedule.
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.
Related actors
Bulk Email Verifier
Verify email deliverability at scale. MX record validation, SMTP mailbox checks, disposable and role-based detection, catch-all flagging, and confidence scoring. No external API costs.
GitHub Repository Search
Search GitHub repositories by keyword, language, topic, stars, forks. Sort by stars, forks, or recently updated. Returns metadata, topics, license, owner info, URLs. Free API, optional token for higher limits.
Website Content to Markdown
Convert any website to clean Markdown for RAG pipelines, LLM training, and AI apps. Crawls pages, strips boilerplate, preserves headings, tables, and code blocks. GFM support.
Website Tech Stack Detector
Detect 100+ web technologies on any website. Identifies CMS, frameworks, analytics, marketing tools, chat widgets, CDNs, payment systems, hosting, and more. Batch-analyze multiple sites with version detection and confidence scoring.
Ready to try Competitor Analysis Report?
Start for free on Apify. No credit card required.
Open on Apify Store