{
    "schema_version": "1.0",
    "exported_at": "2026-08-16T11:22:10+00:00",
    "source": "https://invitationbuddy.com/workflows/competitive-research-digest",
    "workflow": {
        "name": "Competitive Research Digest",
        "slug": "competitive-research-digest",
        "version": "1.0.0",
        "tagline": "A weekly briefing on what your competitors actually shipped",
        "summary": "Monitors competitor sites, changelogs, pricing pages and public channels, then delivers a weekly digest of what genuinely changed — with sources.",
        "description": "Competitive monitoring degrades into a folder of unread alerts. This agent checks a defined set of sources weekly, compares against last week's snapshot, and reports only what actually changed — with a link to the evidence for each item.\n\nThe filtering is the product: an alert stream nobody reads is worse than no monitoring.",
        "category": "Research",
        "type": "AI Agent",
        "difficulty": "intermediate",
        "automation_level": "mostly_automated",
        "pricing": "paid",
        "language": "en",
        "trigger": {
            "type": "schedule",
            "detail": "Every Monday 06:00"
        },
        "input_types": [
            "url",
            "text",
            "api"
        ],
        "output_types": [
            "report",
            "summary",
            "email"
        ],
        "author": null,
        "company": null,
        "last_updated": "2026-07-19"
    },
    "overview": {
        "purpose": "Competitive monitoring degrades into a folder of unread alerts. This agent checks a defined set of sources weekly, compares against last week's snapshot, and reports only what actually changed — with a link to the evidence for each item.\n\nThe filtering is the product: an alert stream nobody reads is worse than no monitoring.",
        "business_value": "Replaces scattered manual checking with one briefing that names what changed and why it matters.",
        "expected_outcome": "A weekly digest of genuine changes across the tracked set, each with a source link and a materiality note.",
        "problems_solved": [
            "Alerts fire on noise and get muted",
            "Manual competitor checks slip when everyone is busy",
            "Pricing and positioning changes are noticed late",
            "No record of how a competitor evolved over time"
        ],
        "ideal_users": [
            "Product marketing teams",
            "Founders tracking a competitive set",
            "Strategy and corporate development teams"
        ],
        "benefits": [
            "Reports changes, not activity",
            "Every item carries a source link to verify",
            "Week-over-week snapshots build a change history",
            "One briefing replaces many alert streams"
        ],
        "limitations": [
            "Only sees public information",
            "JavaScript-heavy sites need a rendering fetch to read correctly",
            "Cannot judge strategic intent — it reports what changed, not why",
            "Materiality assessment needs your context to be useful"
        ],
        "success_metrics": [
            "Material changes surfaced per month",
            "False-positive rate in the digest",
            "Time from competitor change to internal awareness",
            "Digest read rate"
        ]
    },
    "metrics": {
        "estimated_minutes": 30,
        "estimated_cost": 1.1,
        "cost_currency": "USD",
        "estimated_tokens": 35000,
        "success_rate": 86,
        "automation_percent": 82,
        "human_review_percent": 18
    },
    "industries": [
        "SaaS",
        "E-commerce",
        "Media",
        "Finance"
    ],
    "tags": [
        "Scheduled",
        "RAG",
        "High ROI"
    ],
    "ai_skills": [
        "RAG",
        "Summarization",
        "Data Analysis"
    ],
    "tools": [
        {
            "name": "ChatGPT",
            "role": "primary",
            "required": true,
            "url": "https://invitationbuddy.com/ai-directory/chatgpt"
        },
        {
            "name": "Claude",
            "role": "supporting",
            "required": true,
            "url": "https://invitationbuddy.com/ai-directory/claude"
        },
        {
            "name": "Perplexity",
            "role": "supporting",
            "required": false,
            "url": "https://invitationbuddy.com/ai-directory/perplexity"
        }
    ],
    "models": [],
    "integrations": [
        {
            "name": "OpenAI",
            "kind": "ai_provider",
            "auth_type": "api_key",
            "required": true
        },
        {
            "name": "Anthropic",
            "kind": "ai_provider",
            "auth_type": "api_key",
            "required": true
        },
        {
            "name": "Slack",
            "kind": "communication",
            "auth_type": "oauth",
            "required": false
        },
        {
            "name": "Notion",
            "kind": "productivity",
            "auth_type": "oauth",
            "required": false
        },
        {
            "name": "REST API",
            "kind": "protocol",
            "auth_type": "api_key",
            "required": false
        }
    ],
    "prerequisites": [
        {
            "kind": "api_key",
            "label": "LLM API key",
            "detail": "For diffing and synthesis.",
            "required": true
        },
        {
            "kind": "account",
            "label": "Web fetching service",
            "detail": "One that renders JavaScript — many marketing sites are client-rendered.",
            "required": true
        },
        {
            "kind": "software",
            "label": "Tracked source list",
            "detail": "The competitor URLs, changelogs and channels to monitor.",
            "required": true
        },
        {
            "kind": "account",
            "label": "Storage for snapshots",
            "detail": "To hold last week's state for comparison.",
            "required": true
        }
    ],
    "steps": [
        {
            "number": 1,
            "title": "Weekly trigger",
            "description": "Scheduled run kicks off against the tracked source list.",
            "input": "Schedule",
            "output": "Run job",
            "estimated_minutes": 1,
            "difficulty": "intermediate",
            "automation": "auto",
            "manual_review": false
        },
        {
            "number": 2,
            "title": "Fetch the tracked sources",
            "description": "Retrieve each page with rendering, normalise the content and store this week's snapshot.",
            "input": "Source list",
            "output": "Snapshots",
            "estimated_minutes": 6,
            "difficulty": "intermediate",
            "automation": "auto",
            "manual_review": false,
            "warnings": [
                "Respect robots.txt and rate limits — aggressive scraping gets your IP blocked and can breach terms of service"
            ]
        },
        {
            "number": 3,
            "title": "Diff against last week",
            "description": "Compare snapshots and discard cosmetic differences — timestamps, rotating testimonials, session tokens.",
            "input": "This week + last week",
            "output": "Raw change set",
            "estimated_minutes": 4,
            "difficulty": "intermediate",
            "automation": "auto",
            "manual_review": false,
            "tips": [
                "Most of the engineering effort here is discarding noise, not detecting change"
            ]
        },
        {
            "number": 4,
            "title": "Assess materiality",
            "description": "Judge each change against your positioning and drop the immaterial ones.",
            "model": "Claude Sonnet",
            "prompt": "Assess these competitor changes for materiality to us.\n\nOur positioning: {{our_positioning}}\nOur target segments: {{segments}}\n\nChanges detected:\n{{change_set}}\n\nFor each change:\n- what changed, in one line\n- source URL\n- materiality: high|medium|low|noise\n- why it matters to us specifically, or why it does not\n\nBe ruthless with \"noise\". A reworded headline is noise. A new pricing tier is not. If everything this week is noise, say so — an empty digest is a valid and useful result.",
            "input": "Change set + our positioning",
            "output": "Material changes",
            "estimated_minutes": 8,
            "difficulty": "intermediate",
            "automation": "auto",
            "manual_review": false
        },
        {
            "number": 5,
            "title": "Write the digest",
            "description": "Compose the briefing: headline changes first, then detail, each with its source.",
            "model": "GPT-4o",
            "input": "Material changes",
            "output": "Weekly digest",
            "estimated_minutes": 6,
            "difficulty": "intermediate",
            "automation": "auto",
            "manual_review": false
        },
        {
            "number": 6,
            "title": "Distribute and archive",
            "description": "Post to the team channel and file in the competitive intelligence archive.",
            "tool": "Slack",
            "input": "Digest",
            "output": "Distributed briefing",
            "expected_result": "One briefing per week with a permanent, searchable archive.",
            "estimated_minutes": 3,
            "difficulty": "intermediate",
            "automation": "semi",
            "manual_review": false
        },
        {
            "number": 7,
            "title": "Team review",
            "description": "The team marks items as actioned or irrelevant, tuning next week's materiality judgement.",
            "input": "Digest",
            "output": "Feedback signal",
            "estimated_minutes": 2,
            "difficulty": "intermediate",
            "automation": "manual",
            "manual_review": true
        }
    ],
    "prompts": [
        {
            "title": "Assess materiality",
            "kind": "user",
            "body": "Assess these competitor changes for materiality to us.\n\nOur positioning: {{our_positioning}}\nOur target segments: {{segments}}\n\nChanges detected:\n{{change_set}}\n\nFor each change:\n- what changed, in one line\n- source URL\n- materiality: high|medium|low|noise\n- why it matters to us specifically, or why it does not\n\nBe ruthless with \"noise\". A reworded headline is noise. A new pricing tier is not. If everything this week is noise, say so — an empty digest is a valid and useful result.",
            "variables": [
                "our_positioning",
                "segments",
                "change_set"
            ],
            "model_hint": "Claude Sonnet"
        }
    ],
    "use_cases": [
        {
            "title": "Product marketing intelligence",
            "description": "Track competitor positioning and messaging shifts weekly.",
            "industry": "SaaS",
            "outcome": "Positioning stays current"
        },
        {
            "title": "Pricing monitoring",
            "description": "Detect pricing and packaging changes the week they happen.",
            "industry": "E-commerce",
            "outcome": "Faster pricing response"
        },
        {
            "title": "Market landscape tracking",
            "description": "Maintain an evidence-backed record of how a market is moving.",
            "industry": "Finance",
            "outcome": "Documented market history"
        }
    ],
    "faq": [
        {
            "question": "Is monitoring competitor websites legal?",
            "answer": "Reading public pages generally is, but terms of service and rate limits still apply, and some jurisdictions treat aggressive automated access differently. Respect robots.txt and keep request rates modest."
        },
        {
            "question": "How do we stop the digest becoming noise?",
            "answer": "The materiality step exists for exactly this. Give it your real positioning, be strict about the \"noise\" category, and feed the team's actioned/irrelevant marks back in."
        },
        {
            "question": "Can it tell us why a competitor made a change?",
            "answer": "No, and any workflow claiming to is guessing. It reports what changed and links the evidence — the interpretation is yours."
        }
    ]
}