Agent Runtime
Competitive Analysis Crew that Outputs a Strategic Report
A CrewAI crew of specialist agents — an SEO analyst, a brand-positioning analyst, and a synthesis writer — that researches competitors in parallel and produces a coherent, fact-based strategic report instead of a single subjective prompt.
What This Builds
This recipe builds an autonomous competitor-analysis crew. Instead of one generalist LLM prompt trying to assess SEO, positioning, and strategy all at once (and doing each poorly), you assign a team of specialists: an SEO analyst, a brand/positioning analyst, and a synthesis layer that turns their findings into a usable strategic report.
You point the crew at a set of competitor URLs; the analysts work in parallel, each scraping and interpreting through its own narrow lens, and the writer composes a coherent report. This turns a slow, subjective manual process (hours of senior time per competitor) into a repeatable, scalable run.
The Stack
- CrewAI — orchestrates the agents and tasks. Each agent gets a focused
role,goal,backstory, and toolset, which is what gives the crew expert-level fidelity over a single prompt. - Firecrawl — backs the scrape tool, returning clean markdown of competitor landing pages, pricing, and blog content so agents reason over readable text rather than raw HTML.
- Serper — backs the search tool (
SerperDevTool) so analysts can discover competitor pages and rankings; a web-search MCP server is an equally valid drop-in. - OpenAI (or any chat model CrewAI supports) — the reasoning engine for the analyst and writer agents.
Step-by-Step Outline
pip install crewai crewai-toolsand set keys for the model, Serper, and Firecrawl.- Define an SEO analyst agent (search + scrape tools) whose goal is to deconstruct each competitor’s keywords, content strategy, and rankings.
- Define a positioning analyst agent that scrapes messaging and interprets brand voice, value props, and target segments.
- Define a synthesis writer agent (no tools) that turns the analysts’ structured findings into a strategic report.
- Write one task per analyst plus a synthesis task whose
contextis the analyst tasks; useoutput_pydantic/output_jsonto force structured intermediate outputs. - Assemble the
Crew(parallel or sequential),kickoff(inputs={"competitors": [...]}), and save the final report.
Why This Shape Works
Splitting the work into specialists keeps each agent’s prompt narrow and its tool surface small, which is the practical lesson from CrewAI’s own examples — a crew of focused agents beats one generalist prompt. Structuring intermediate outputs (Pydantic/JSON) before the synthesis step is what turns chatty agent runs into a clean, consistent report you can hand to a stakeholder.
Source
ActiveWizards, CrewAI Tutorial: AI Competitor Analysis with an Autonomous Agent Crew: https://activewizards.com/blog/ai-competitor-analysis-an-autonomous-agent-crew-with-crewai/
Companion reference — regolo.ai, Building a Reliable Multi-Agent Competitor Intelligence System with CrewAI: https://regolo.ai/building-a-reliable-multi-agent-competitor-intelligence-system-with-crewai/