GEO Agent Crew uses CrewAI to automate AI-driven webpage content audits. Enter a URL, and the system accesses the webpage, extracts its title, generates and summarizes related queries using Gemini with the Google Search tool, fetches Google AI Overviews via Bright Data SERP API, compares results, and outputs actionable page-level optimization suggestions in Markdown file.
The ai-content-optimization-agent Crew is composed of six AI agents, each with unique roles, goals, and tools. These agents collaborate on a series of tasks, defined in config/tasks.yaml, leveraging their collective skills to achieve complex objectives. The config/agents.yaml file outlines the capabilities and configurations of each agent in your crew.
Ensure you have Python >=3.10 <3.14 installed on your system.
This project uses uv for dependency management and package handling.
First, if you haven't already, install uv:
pip install uvNext, navigate to your project directory and install the project's dependencies:
cd geo-ai-agent
uv syncThis project requires four environment variables to work:
GEMINI_API_KEY: Your Gemini API key.MODEL: The name of the Gemini model to power your crew of agents (e.g.,gemini/gemini-2.5-flash).BRIGHT_DATA_API_KEY: Your Bright Data API key.BRIGHT_DATA_ZONE: The name of the Web Unlocker zone in your Bright Data dashboard you want to connect to.
Define them directly in your terminal or place them in a .env file at the root of your project:
geo-ai-agent/
├── ...
├── .env # <---
└── src/
└── ai_content_optimization_agent/
└── ...
Populate the .env file like this:
GEMINI_API_KEY="<YOUR_GEMINI_API_KEY>"
MODEL="<CHOSEN_GEMINI_MODEL>"
BRIGHT_DATA_API_KEY="<BRIGHT_DATA_API_KEY>"
BRIGHT_DATA_ZONE="<YOUR_BRIGHT_DATA_ZONE>"
Activate the .venv created by the uv sync command:
source .venv/bin/activateOr, on Windows:
.venv/Scripts/activateWith the virtual environment activated, start your crew of AI agents by running the following command from the root folder of your project:
crewai runThis command initializes the ai-content-optimization-agent crew, assembling the agents and assigning them tasks as defined in the CrewAI configuration files.
☑️ This application will produce a output/report.md file, along with other ouput/*.md files containing intermediate data and results from the agents.
- 🔧 Update the
MODELenvironment variable to change the Gemini model used by this crew of agents. - 🧑💻 Edit
src/ai_content_optimization_agent/config/agents.yamlto modify the definitions of the agents. - 📋 Edit
src/ai_content_optimization_agent/config/tasks.yamlto modify the definitions of the tasks assigned to the agents. - 🛠️ Update
src/ai_content_optimization_agent/crew.pyto integrate other AI models or add your own logic and tools. - ⚡ Edit
src/ai_content_optimization_agent/main.pyto add custom inputs for your agents and tasks.
For support, questions, or feedback regarding the ai-content-optimization-agent Crew or CrewAI:
- ☀️ Visit Bright Data's SERP API docs
- 📖 Visit CrewAI's documentation
- 🐙 Reach out to CrewAI through the GitHub repository
- 💬 Join Discord
- 💡 Chat with CrewAI's docs
✨ Let's create wonders together with the power and simplicity of Bright Data & CrewAI.
