What This Agent Does
This agent is your competitive SEO intelligence system. It automatically discovers keyword opportunities your competitors are capitalizing on—but you haven't targeted yet.
What You Get:
- Multi-competitor keyword gap analysis (your site vs 2 competitors)
- Smart priority scoring based on search volume, difficulty, and commercial intent
- Automatic Google Sheets export with sortable, shareable results
- Real ranking position data showing where competitors rank
- Intent-based weighting (commercial keywords prioritized over informational)
Business Impact:
- Stop guessing what content to create—let competitive data guide strategy
- Focus on high-ROI keywords with commercial intent
- Identify quick wins where competitors rank with weak content
- Save $100-400/month on SEO tools like SEMrush or Ahrefs
Time Savings: 2-3 hours of manual competitor research → 2 minutes of automation
Required Integrations
DataForSEO
Purpose: The engine powering your competitive analysis. DataForSEO provides enterprise-grade keyword data including search volume, difficulty, ranking positions, and search intent.
Why DataForSEO: This is the same API that powers major SEO tools like SEMrush and Ahrefs. You're getting the source data directly without paying for their expensive monthly subscriptions.
Setup Steps:
-
Create DataForSEO Account:
- Visit DataForSEO.com
- Click "Sign Up" (no credit card required for free tier)
- Complete registration and verify email
-
Get API Credentials:
- Log into DataForSEO dashboard
- Navigate to Account Settings → API Access
- Find your API Login (looks like: email@domain.com)
- Find your API Password (auto-generated string)
- Copy both credentials
-
Add to TaskAGI:
- Go to TaskAGI → Integrations → DataForSEO
- Click "Add Account"
- Enter your API Login (email format)
- Enter your API Password
- Name it "DataForSEO Main Account"
- Click "Save & Test"
- Verify green checkmark for successful connection
-
Understand Pricing:
- Free Tier: $1 in free credits on signup
- Pay-as-you-go: Approximately $0.10-0.50 per domain analysis
- Typical Cost: 3-domain analysis (you + 2 competitors) = $0.30-1.50
- Much cheaper than $100-400/month SEO subscriptions
Google Sheets
Purpose: Automatically creates and populates a formatted spreadsheet with all your content gap results. Perfect for sharing with team members or clients.
Why Google Sheets: Sortable columns, easy collaboration, familiar interface, and automatic cloud backup of your competitive intelligence.
Setup Steps:
-
Enable Google Sheets API:
- Visit Google Cloud Console
- Create new project (or select existing)
- Enable Google Sheets API
- Enable Google Drive API (required for file creation)
-
Configure OAuth Consent:
- Go to APIs & Services → OAuth consent screen
- Choose "External" user type
- Fill in application name: "TaskAGI SEO Agent"
- Add your email as developer contact
- Save and continue through scopes (no changes needed)
-
Create OAuth Credentials:
- Go to APIs & Services → Credentials
- Click Create Credentials → OAuth 2.0 Client ID
- Application type: Web application
- Name: "TaskAGI Google Sheets"
- Authorized redirect URIs: Add your TaskAGI callback URL
- Format:
https://taskagi.net/integrations/google/callback
- Format:
- Click Create
- Copy Client ID and Client Secret
-
Connect in TaskAGI:
- Go to TaskAGI → Integrations → Google Sheets
- Click "Add Account"
- Paste Client ID
- Paste Client Secret
- Click "Connect Account"
- Authorize TaskAGI in popup window
- Grant permissions for Sheets and Drive access
- Verify green checkmark for successful connection
Alternative: Service Account Method
If you prefer not to use OAuth for automation:
- Create a Service Account in Google Cloud Console
- Download the JSON key file
- Share target Google Sheets with the service account email
- Use service account credentials in TaskAGI
Permissions Note: The agent creates new spreadsheets—it doesn't need access to your existing sheets unless you want to append to specific files.
Agent Configuration
Step 1: Configure DataForSEO Location & Language
The DataForSEO nodes are pre-configured for United States (location_code: 2840) and English (language_code: en). If you need different markets:
Common Location Codes:
- United States:
2840 - United Kingdom:
2826 - Canada:
2124 - Australia:
2036 - Germany:
2276 - France:
2250
Common Language Codes:
- English:
en - Spanish:
es - German:
de - French:
fr
To Change Location/Language:
- Click on each DataForSEO node (Get Main Site Keywords, Get Competitor 1 Keywords, Get Competitor 2 Keywords)
- Update
location_codefield - Update
language_codefield - Keep all three nodes consistent for accurate comparison
Step 2: Understanding the Form Inputs
When you run this agent, you'll see a form with 4 fields:
-
Your Main Site Domain
- Enter just the domain:
example.com(no https:// or www) - This is the site you want to find gaps for
- Enter just the domain:
-
Competitor 1 Domain
- Direct competitor in your niche
- Choose someone ranking well for your target keywords
-
Competitor 2 Domain
- Second competitor for broader analysis
- Mix of direct and adjacent competitors works best
-
Max Keywords Per Domain
- Default: 10 keywords (good for testing)
- Recommended: 50-100 for thorough analysis
- Maximum: 50,000 (for comprehensive audits)
- Cost Impact: More keywords = higher DataForSEO charges
Pro Tips for Choosing Competitors:
- Use SEMrush/Ahrefs free trials to identify who ranks for your keywords
- Mix one direct competitor + one aspirational competitor
- Choose sites with similar domain authority for realistic opportunities
- Avoid giants like Amazon/Wikipedia (not actionable gaps)
Step 3: Understanding Priority Scores
The agent calculates a Priority Score for each keyword gap using this formula:
Priority Score = (Search Volume × Intent Weight) ÷ Keyword Difficulty
Intent Weights:
- Commercial (1.5x): "best project management software", "vs", "review"
- Transactional (1.3x): "buy", "pricing", "discount", "coupon"
- Navigational (1.0x): Brand names, specific product searches
- Informational (0.8x): "how to", "what is", "guide", "tutorial"
Why Commercial Intent Gets Higher Priority: Bottom-of-funnel keywords convert 3-5x better than informational content. The agent automatically prioritizes keywords that drive revenue.
Interpreting Scores:
- 1000+: Exceptional opportunity (high volume, low difficulty, commercial intent)
- 500-1000: Great opportunity (strong volume with reasonable difficulty)
- 100-500: Good opportunity (solid targets for content strategy)
- Below 100: Nice-to-have (lower priority, consider for long-tail strategy)
Step 4: Reading Your Results Spreadsheet
The Google Sheet will have 7 columns:
- Keyword: The exact keyword phrase competitors rank for
- Search Volume: Monthly searches (US data)
- Difficulty: 0-100 scale (higher = harder to rank)
- Intent: commercial, transactional, navigational, or informational
- Competitor: Which competitor ranks for this keyword
- Competitor Rank: Their position in search results (1-100)
- Priority Score: Calculated opportunity score (sort high to low)
How to Use Results:
Immediate Action Items:
- Sort by Priority Score (highest first)
- Export top 10-20 keywords
- Create content briefs for each opportunity
- Target keywords where competitor ranks #4-10 (easier to outrank)
Content Planning:
- Group related keywords into topic clusters
- Create pillar content for high-volume commercial terms
- Build supporting articles for informational queries
- Update existing content that's close to ranking
Quarterly Strategy:
- Run analysis monthly to track new competitor content
- Monitor which gaps you've successfully closed
- Adjust strategy based on which intent types convert best
Testing Your Agent
Test Run Configuration
First Test (Small Scale):
- Your Domain: Your actual site
- Competitor 1: Known direct competitor
- Competitor 2: Aspirational competitor
- Max Keywords: 10 (keeps costs under $0.50)
Expected Results:
- Should find 5-30 keyword gaps (depends on competitors)
- Higher keyword limits = more gaps discovered
- Google Sheet should be created and populated automatically
Validation Checklist
After your test run:
- Google Sheet created with "Content Gap Analysis Results" title
- All 7 columns populated with data
- Priority scores calculated (check the math on a few)
- Keywords sorted by priority score (highest first)
- Competitor domains correctly identified
- No duplicate keywords in results
- Intent classification makes sense (spot check 5-10 keywords)
Common Test Issues
"No gaps found"
- Competitor domains might be too similar to yours
- Try competitors in adjacent niches
- Increase max keywords to 50-100
"Too many gaps" (thousands of results)
- Normal for high max_keywords setting
- Focus on top 100 by priority score
- Consider filtering by minimum search volume
"DataForSEO API Error"
- Verify credentials are correct
- Check you have remaining credits
- Ensure location_code and language_code are valid
Advanced Usage & Optimization
Scaling Your Analysis
For Comprehensive Audits:
- Increase max_keywords to 1,000+ per domain
- Analyze 3-5 competitors by duplicating nodes
- Run quarterly for ongoing competitive monitoring
For Quick Wins:
- Keep max_keywords at 50-100
- Focus on commercial intent keywords only
- Filter results by minimum search volume (500+)
Automating Regular Analysis
Convert to Scheduled Workflow:
- Replace the Form Trigger node with Schedule Trigger
- Set schedule to monthly (first of each month)
- Hardcode domains in DataForSEO node configs:
"target": "yoursite.com" - Configure to save results to a master tracking spreadsheet
Why Schedule It:
- Competitors publish new content constantly
- Monitor which gaps are closing (you're ranking now)
- Identify new opportunities as search trends change
Modifying the Analysis Logic
The Analyze Content Gaps function node can be customized:
To Include Keywords You Rank For (But Lower):
Change line that checks for gaps:
// Current (only gaps):
if (!mainKeywords.has(kwLower)) {
// Change to (gaps + lower rankings):
const yourRank = mainKeywords.get(kwLower)?.rankAbsolute || 999;
if (!mainKeywords.has(kwLower) || yourRank > competitorRank) {
To Filter by Minimum Search Volume:
Add after the gap identification:
// Only include keywords with 500+ monthly searches
if (kw.searchVolume < 500) return;
To Prioritize Specific Intent Types:
Adjust the intent weights at the top:
const intentWeights = {
"commercial": 2.0, // Even higher priority
"transactional": 1.8, // Increased
"navigational": 1.0,
"informational": 0.3 // Deprioritized
};
Troubleshooting
DataForSEO Issues
"Insufficient Credits"
- Solution: Add credits in DataForSEO dashboard
- Prevention: Start with max_keywords = 10 for testing
"Invalid Location Code"
- Solution: Use common codes (2840 for US, 2826 for UK)
- Check: DataForSEO location codes list
"No Data Returned for Domain"
- Solution: Domain might be too new or have no rankings
- Alternative: Choose competitors with established SEO presence
"Rate Limit Exceeded"
- Solution: DataForSEO has API rate limits for free tier
- Upgrade: Consider paid plan for high-volume analysis
Google Sheets Issues
"Permission Denied"
- Solution: Re-authorize Google Sheets in TaskAGI integrations
- Check: Ensure both Sheets API and Drive API are enabled
"Sheet Not Created"
- Solution: Check Google Drive API is enabled
- Verify: OAuth scope includes drive.file permission
"Duplicate Rows in Sheet"
- Solution: Loop node might have executed twice
- Check: Workflow execution history for errors
Workflow Execution Issues
"Function Node Timeout"
- Solution: Reduce max_keywords setting (large datasets take time)
- Optimization: The function should handle 1,000+ keywords, but start smaller
"Node Reference Error"
- Solution: All node IDs are correct (0-7), but verify in workflow editor
- Check: Ensure connections are properly mapped
"No Keywords in Results"
- Cause: Your site might already rank for everything competitors rank for
- Solution: Choose more aspirational competitors or increase keyword limit
Cost Analysis & ROI
Typical Costs Per Analysis
DataForSEO API:
- 10 keywords per domain (3 domains): $0.30-0.50
- 100 keywords per domain: $2-5
- 1,000 keywords per domain: $15-30
Google Sheets:
- Free (no per-use cost)
Total Per Analysis:
- Small test (10 keywords): $0.50
- Standard analysis (100 keywords): $5
- Comprehensive audit (1,000 keywords): $30
Compare to Alternatives
SEMrush Competitor Analysis:
- Monthly cost: $139.95-449.95
- Limited to 5-10 competitor comparisons per month
Ahrefs Content Gap Tool:
- Monthly cost: $129-499
- Limited project/domain tracking
Manual Research:
- Time cost: 2-3 hours per competitor analysis
- Hourly rate × time = $100-300 per manual analysis
This Agent:
- Per-use cost: $0.50-30
- Time: 2 minutes
- Unlimited monthly analyses
ROI Calculation: If you find just ONE keyword that brings 100 visitors/month at 2% conversion rate and $50 customer value, that's $100/month in revenue from a $5 analysis. 20x ROI in month one.
Success Stories & Use Cases
Content Marketing Agency
Challenge: Needed to find content opportunities for 20 different clients across industries.
Solution:
- Run this agent for each client monthly
- Export results to Google Sheets for client reporting
- Create content briefs from top 10 opportunities per client
Results:
- Reduced competitor research time from 40 hours/month to 1 hour/month
- Clients see tangible ROI from data-driven content strategy
- Average organic traffic increase of 35% across client base
E-commerce Store
Challenge: Competing against major marketplaces for product keywords.
Solution:
- Focus on commercial intent keywords with priority score 500+
- Target long-tail variations where big competitors have thin content
- Run analysis weekly to catch seasonal trends
Results:
- Found 200+ product comparison keywords to target
- Created content for top 50, ranking #1-3 for 30 of them
- Organic revenue up 85% in 6 months
SaaS Startup
Challenge: Low domain authority, couldn't compete for high-volume terms.
Solution:
- Filter for keywords with difficulty score under 40
- Target commercial intent queries where competitors rank #5-10
- Create comprehensive guides that outrank competitor thin content
Results:
- Identified 80 low-competition opportunities
- Ranking page 1 for 40 keywords within 3 months
- 10x increase in organic demo requests
Advanced Strategies
Topic Cluster Building
Use gap analysis to build content clusters:
- Run Analysis: Find 50-100 keyword gaps
- Group Keywords: Cluster by topic/theme
- Create Pillar: Write comprehensive guide for main topic
- Build Cluster: Create 5-10 supporting articles
- Internal Link: Link all supporting articles to pillar
Example:
- Pillar: "Project Management Software Guide"
- Cluster: "vs" comparisons, feature guides, use cases
- Gap Keywords: "asana vs monday", "best free project management", etc.
Seasonal Opportunity Tracking
Setup Quarterly Runs:
- Create 4 versions of this agent (Q1, Q2, Q3, Q4)
- Schedule each to run first day of quarter
- Export results to master tracking sheet
- Compare quarter-over-quarter to see trend shifts
What to Track:
- New keywords competitors started ranking for
- Gaps you've successfully closed
- Seasonal keyword volume changes
- Intent distribution shifts
Competitive Content Updates
Find Content to Refresh:
Modify the function to include keywords where you rank but competitors rank higher:
// Add to gap detection logic
const yourRank = mainKeywords.get(kwLower)?.rankAbsolute || 999;
const isUpdateOpportunity = yourRank > 10 && competitorRank < yourRank;
if (isUpdateOpportunity) {
gaps.push({
keyword: kw.keyword,
searchVolume: kw.searchVolume,
difficulty: kw.difficulty,
intent: kw.intent,
competitor: competitor,
competitorRank: kw.rankAbsolute,
yourRank: yourRank,
priorityScore: priorityScore * 1.2 // Boost updates
});
}
This identifies content you have that needs optimization.
Next Steps After Setup
-
Run Your First Analysis:
- Use real domains (your site + 2 competitors)
- Start with max_keywords = 10 to test
- Verify Google Sheet is created and populated correctly
-
Review Results:
- Sort by Priority Score
- Export top 20 opportunities
- Analyze intent distribution
-
Create Action Plan:
- Group keywords into content topics
- Prioritize commercial intent keywords
- Build content creation schedule
-
Scale Your Usage:
- Increase max_keywords to 100-500
- Run for multiple competitor sets
- Consider scheduling monthly runs
-
Track Performance:
- Monitor which gap keywords you now rank for
- Measure organic traffic increase
- Calculate ROI from content created
Support & Optimization
Getting Help:
- Join the TaskAGI community for SEO strategy discussions
- Share your results and learn from other users
- Request new features (multi-competitor analysis, custom filters)
Ongoing Optimization:
- Experiment with different intent weight values
- Test various competitor combinations
- Adjust priority scoring based on what converts for your business
Ready to discover your content gaps and dominate search rankings? Deploy your agent and start uncovering keyword opportunities today!
