SEODP
The SEO Data Platform automates SEO analysis, aggregating data from Google Analytics 4, Search Console, Page Speed Insights, and rendered content. Powered by Google Gemini AI, it emails actionable insights weekly or monthly, streamlining SEO workflows.
Install / Use
/learn @jroakes/SEODPREADME
SEO Data Platform

Description
The SEO Data Platform is a comprehensive tool designed to automate the collection, analysis, and reporting of SEO-related data. It integrates with various data sources such as Google Analytics 4, Google Search Console, and PageSpeed Insights to provide actionable insights for improving website performance and search engine rankings.
Features
- Automated data collection from multiple sources
- Integration with Google Analytics 4, Google Search Console, and PageSpeed Insights
- URL content extraction and analysis
- LLM-powered insights generation using Google's Gemini API
- Configurable reporting topics and significance thresholds
- Scheduled data processing and report generation
- Email reporting functionality
Installation
- Clone the repository:
git clone https://github.com/jroakes/SEODP.git
cd SEODP
-
Install the required dependencies:
pip install -r requirements.txtYou can also use poetry. -
Set up the configuration file:
- Edit
seodpconfig.yamlwith your specific settings
- Set up environment variables:
- Create a
.envfile in the project root - Add the required API keys and credentials (see Configuration section)
Usage
To start the SEO Data Platform:
python src/seodp/main.py --start
For other command-line options:
python src/seodp/main.py --help
Configuration
Environment Variables
Set the following environment variables in your .env file:
SERVICE_ACCOUNT_FILE_PATH: Path to your Google service account JSON fileSUBJECT_EMAIL: Email address for Google API authenticationSCRAPINGBEE_API_KEY: Your ScrapingBee API keyGEMINI_API_KEY: Your Google Gemini API keyMAILTRAP_LOGIN: Your Mailtrap loginMAILTRAP_PASSWORD: Your Mailtrap passwordMAILTRAP_SENDER_EMAIL: Sender email for MailtrapRECIPIENT_EMAIL: Recipient email for reports
See .env.example example file.
Configuration File
Edit seodpconfig.yaml to customize:
- URLs to analyze
- Reporting schedule
- Data sources and API settings
- Reporting topics and thresholds
Project Structure
src/seodp/: Main source code directorymain.py: Entry point of the applicationsettings.py: Configuration loading and managementlib/: Core functionality modulesextractors/: Data extraction modules for different sourcesmanager/: Data processing and management modulesapi/: API client modules (e.g., Gemini, email)
Contributing
Contributions to the SEO Data Platform are welcome! Please follow these steps:
- Fork the repository
- Create a new branch for your feature
- Commit your changes
- Push to your fork
- Submit a pull request
Please ensure your code adheres to the project's coding standards and include tests for new functionality.
Ideas for Contributing
- [ ] Don't re-hit PSI when backfilling data on initial run
- [ ] Async!!!!!!!!!!!!!!!!!!!!!!!!!!! processing
- [x] ~~Use something called Pydantic (Hey Joe!)~~
- [ ] Add YoY as well PoP for comparison
- [ ] Fine tune some models
- [ ] Add a SEMRush, Ahrefs, or Nozzle extractor???!!!
- [ ] Build a one-click deployer on Digital Ocean or something
License
MIT
Related Skills
imsg
342.0kiMessage/SMS CLI for listing chats, history, and sending messages via Messages.app.
oracle
342.0kBest practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).
lobster
342.0kLobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (s
Hook Development
84.7kThis skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.
