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.
Understanding Your Crew
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.
Tech Stack
- CrewAI
- Gemini 2.0 Flash
- Bright Data Tools
Installation
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 uv
Next, navigate to your project directory and install the project’s dependencies:
cd geo-ai-agent
uv sync
Environment Configuration
This 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>"
Running the Project
Activate the .venv created by the uv sync command:
source .venv/bin/activate
Or, on Windows:
.venv/Scripts/activate
With the virtual environment activated, start your crew of AI agents by running the following command from the root folder of your project:
crewai run
This 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.
Customizing
- 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.
Support
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.
