agentleFS
apifyapify/awesome-skills/skills/apify-easy-competitive-intelligence/SKILL.md

apify-easy-competitive-intelligence

Skill293 starsChanged 6 days agoApache-2.0View on GitHub

This skill should be used when the user asks to "analyze a competitor", "compare pricing", "competitive landscape", "market research", "what do customers think", "review intelligence", "hiring signals", "content strategy", "SEO battle", "build a battlecard", "competitive analysis", "who are the players", "who competes with", "market intelligence", "competitive positioning", "deep dive on a company", "board prep", "SWOT analysis", "how does [X] compare to [Y]", or mentions competitor analysis, pricing comparison, customer sentiment, or market landscape research. Requires Apify CLI or Apify MCP server.

  • Reads credentials
  • Installs packages

1 other project uses a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

5 rules. About 0 are common, 3 are distinctive, and 2 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈3

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    CLI rules: Always pass --json, --user-agent apify-awesome-skills/apify-easy-competitive-intelligence, and 2>/dev/null.

    line 28
  2. Very specific:

    If CLI is unavailable and Apify MCP server is connected, use MCP call-actor / fetch-actor-details / get-actor-output directly.

    line 38
  3. Distinctive:

    If a CLI command fails with an auth error, authenticate using one of these methods:

    line 42
  4. Distinctive:

    Every actor call follows three steps:

    line 52
  5. Distinctive:

    Every factual claim needs a source URL: No link = not a fact.

    line 130

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Competitive Intelligence

Real-time competitive intelligence powered by live web data via Apify actors. Never answer competitive questions from training knowledge alone. Always gather live data first, then analyze.

Prerequisites

  • Apify CLI v1.5.0+ (npm install -g apify-cli), or Apify MCP server
  • Authenticated session (apify login or APIFY_TOKEN env var)

CLI rules: Always pass --json, --user-agent apify-awesome-skills/apify-easy-competitive-intelligence, and 2>/dev/null.

  • Run actor: apify actors call "ACTOR_ID" -i 'INPUT' --user-agent apify-awesome-skills/apify-easy-competitive-intelligence --json 2>/dev/null → returns run metadata with defaultDatasetId
  • Fetch results: apify datasets get-items DATASET_ID --user-agent apify-awesome-skills/apify-easy-competitive-intelligence --format json > /tmp/results.json 2>/dev/null — save locally, parse from file:
    • Quick extraction: jq '.[] | "\(.field1) | \(.field2)"' /tmp/results.json
    • Aggregation: python3 -c "import json; d=json.load(open('/tmp/results.json')); ..."
    • Tabular: --format csv > /tmp/results.csv + python3 with csv.DictReader
    • Flags: --limit N, --offset N, --format json|jsonl|csv|xlsx|xml
    • Output fields: apify datasets info DATASET_ID --json | jq .fields
  • Fetch schema: apify actors info "ACTOR_ID" --input --user-agent apify-awesome-skills/apify-easy-competitive-intelligence --json 2>/dev/null

If CLI is unavailable and Apify MCP server is connected, use MCP call-actor / fetch-actor-details / get-actor-output directly.

Authentication

If a CLI command fails with an auth error, authenticate using one of these methods:

  1. OAuth (interactive): apify login (opens browser)
  2. Environment variable: export APIFY_TOKEN=your_token_here
  3. From .env file: source .env (if the file contains APIFY_TOKEN=...)

Generate token: https://console.apify.com/settings/integrations

Actor Registry

Every actor call follows three steps:

  1. Read — find the actor's section in reference/actor-schemas.md. Use the exact verified input and follow the "How to find" instructions for URLs/slugs.
  2. Discover — verify platform URLs and slugs (e.g. via SERP) as described in the actor's schema section. Do not guess — wrong slugs silently return empty or wrong data.
  3. Run — call the actor with verified input.

Alternatively, fetch the live schema: apify actors info "ACTOR_ID" --user-agent apify-awesome-skills/apify-easy-competitive-intelligence --input --json 2>/dev/null

Data NeedActorNotes
Google SERPapify/google-search-scraperSupports country/language. SERP snippets contain ratings & review counts
Page scrapeapify/website-content-crawlerproxyConfiguration REQUIRED. Returns markdown
RAG browseapify/rag-web-browserSearch + scrape in one call. Good fallback
LinkedIn companydev_fusion/Linkedin-Company-ScraperOutput in KV store, not dataset
LinkedIn jobscurious_coder/linkedin-jobs-scraperRequires LinkedIn search URL, NOT keywords
Crunchbasepratikdani/crunchbase-companies-scraperSingle company URL per call
Amazon productjunglee/Amazon-crawlerProduct or category URLs
Amazon reviewsweb_wanderer/amazon-reviews-extractorMay return 0 for some products
Walmart producte-commerce/walmart-product-detail-scraperMay return empty
Google Maps reviewscompass/Google-Maps-Reviews-ScraperUse full Google Maps place URL
G2 reviewsautomation-lab/g2-scraperNPS, ratings, switching data. $0.04/run
Capterra reviewszen-studio/capterra-reviews-scraper$1.99/1K
Gartner Peer Insights—No working actor. Use SERP snippet mining as fallback
Glassdoormemo23/glassdoor-scraper-pprReviews, salaries, culture, ratings
Redditharshmaur/reddit-scraperPosts + full comment threads
Google Play reviewsneatrat/google-play-store-reviews-scraperApp ID or Play Store URL
App Storejdtpnjtp/apple-app-store-scraperRequires SHADER proxy — may not be available on all plans
SimilarWebpro100chok/similarweb-scraperMinimum 10 domains per call
Google Newsdata_xplorer/google-news-scraper-fastNo boolean operators in keywords
Wayback Machineandok/wayback-machine-scraperFull URL including path

Core Workflow

Step 0: Understand the User (once, at start)

Clarify before gathering data:

  • Role — Analyzed company, competitor, investor, consultant?
  • Decision — Entering market, defending position, choosing vendor, building battlecard?
  • Autonomy — Checkpoints after initial findings, or autopilot?

Steps 1–7

  1. Clarify scope — Identify competitors. Select module(s). Default geography: US.
  2. Read module reference — Load reference/modules/<module>.md for gathering + analysis instructions.
  3. Gather live data — For each actor call, follow the three-step pattern: Read (actor-schemas.md) → Discover (SERP for URLs) → Run (call actor). Use PRIMARILY actors from the Actor Registry above.
  4. Checkpoint (if not autopilot) — Present first findings, confirm direction.
  5. Analyze — Select framework, lead with narrative, support with tables.
  6. Verify — Run pre-delivery verification (reference/verification-checklist.md). Check: every claim has a source URL, every major finding has a confidence label, inferences are labeled as such. Remove any ungrounded claims.
  7. Deliver — End with strategic recommendations framed for the user's role.

Framework Selection

SituationFramework
Profile one competitorSWOT
Market dynamics & forcesPorter's Five Forces
Visual position comparisonStrategy Canvas (Blue Ocean)
Why customers switchJobs-to-be-Done
Find white spacePositioning Matrix (2x2)
Predict competitor reactionCompetitive Response Matrix

Data Collection Rules

  • Prefer structured actors over website-content-crawler when a dedicated actor exists.
  • Cost budget — 3-8 actor calls per snapshot. Track total, warn at 15+.
  • Parallelize independent call-actor calls in a single response.
  • Failures — Report every failure explicitly (actor, input, error). Retry with corrected input if the cause is obvious. If retry fails, try rag-web-browser as fallback. Never silently skip a failed data source.
  • Cite everything — Include source URLs for every data point.
  • Async for long runs — Set async: true for actors >30s, poll with get-actor-run.
  • Protected platforms — Do NOT use website-content-crawler or rag-web-browser for: g2.com, capterra.com, gartner.com, glassdoor.com, reddit.com, linkedin.com. Use dedicated actors.

Apify vs. WebSearch

Apify required: review sites (G2, Capterra, Gartner, Glassdoor), LinkedIn, Reddit, Amazon, Walmart, app stores, SimilarWeb, Crunchbase, Wayback Machine, Google Maps reviews, news (Google News actor).

WebSearch/WebFetch sufficient (Claude Code built-in tools): competitor discovery, general company info, blog posts, publicly accessible pricing pages.

Data Validation & Grounding

  • Every factual claim needs a source URL. No link = not a fact.
  • Confidence labels are mandatory. Mark every major finding: High (primary source), Medium (2+ third-party sources), Low (single third-party source). Format: [Confidence | Source]. No report without labels.
  • Data tiers: Verified (primary source) → Reported (third-party, attribute) → Inferred (label as "this suggests...") → Ungrounded (omit).
  • Numbers are dangerous — employee counts, revenue, funding change fast. Always cite source and date.
  • Empty results ARE intelligence — 0 jobs = not hiring, 0 SimilarWeb = small site, 12 reviews = low adoption.
  • Cross-reference — Single-source claims are unverified. Multi-source (G2 + Capterra + Reddit) = pattern.

Module Selection

User says...ModuleReference
"Analyze [competitor]", "Tell me about [company]"Competitor Snapshotreference/modules/competitor-snapshot.md
"Compare pricing", "How much does [X] cost"Pricing Intelligencereference/modules/pricing-intelligence.md
"Pricing details", "per-use-case costs", "tiers", "add-ons"Pricing Deep Divereference/modules/pricing-deep-dive.md
"What do customers think", "Reviews", "Pain points"Review Intelligencereference/modules/review-intelligence.md
"What are they hiring for", "Job postings"Hiring Signalsreference/modules/hiring-signals.md
"How do they rank", "Content strategy", "SEO"Content & SEOreference/modules/content-seo.md
"Who are the players", "Market landscape"Market Landscapereference/modules/market-landscape.md
"Full battlecard", "Deep analysis", "Board prep"Multi-Modulereference/multi-module-playbook.md

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.