Content OS

Competitor Analysis

Track competitor accounts, refresh their content, and compare against your own profile.

Vertical: Analytics · Status: ✅ Live Back to Analytics · workflows index


Trigger

Daily cron sweep per modules.competitors.enabled tenant, plus on demand.

Flow

competitor list
        |
refresh in batches of 3        (Apify scrape)
        |
own-profile refresh if >6h old  (Meta preferred, Apify fallback)
   |- runs in PARALLEL, behind an 8s timeout
        |
buildComparison

Two stores, bridged not merged

  • Your own account lives in the learning store - connections, reels, metric snapshots, written by the Instagram Graph sync.
  • Competitors live in ops_ca_*.

The 8-second timeout on own-profile refresh is deliberate: a slow Instagram call can never blank the comparison.

Own-profile sync prefers the Meta provider and falls back to Apify only when Meta returns no follower count - i.e. a personal account.

Agents involved

Deterministic plus an LLM topic pass. The daily sweep does not await the refresh - it is a paid scrape that can run for minutes, and the module flag is the cost control.

Gaps

Insight synthesis across competitors is thin - the data is collected, the so what is left to the reader.

Roadmap source

Page 3 - Competition Research; page 6 - Scan competition to get insights -> ES — see roadmap_ref_extracted.md.

Source: roadmap/workflows/analytics/competitor-analysis/README.md