apidojo-io/apidojo-skills

finding-content-gaps-from-google-serp

Finds content gaps and opportunities from Google SERP analysis using apidojo's Google Search scraper on Apify.

Zobacz źródło
Oryginalny dokument Skill

Treść z repozytorium z zachowaniem nagłówków, przykładów, kodu, tabel, linków i obrazów.

Finding Content Gaps from Google SERP

Analyzes Google SERP results to identify where existing content is weak, outdated, or missing key information — these are the gaps where new content can rank quickly.

Prerequisites

  • APIFY_TOKEN environment variable set
  • Optional: Apify MCP server installed

Inputs

ParameterTypeRequiredDefaultNotes
startUrlsarrayOptional[]Google search URLs
searchTermsarrayOptional[]Keywords to search on Google
countryCodestringOptionalUSCountry for Google search (e.g. US, GB, TR)
languageCodestringOptional—Language for results (e.g. en)
maxItemsnumberOptionalUnlimitedMaximum results to return across all queries
maxPagesPerQueryintegerOptional1Maximum result pages per query
mobileResultsbooleanOptionalfalseFetch mobile SERP layout
customMapFunctionstringOptional—JavaScript function to transform each output object

Workflow

Progress:
- [ ] Step 1: Run google-search-scraper for all keywords
- [ ] Step 2: Analyze SERP result quality signals
- [ ] Step 3: Score content gap opportunity per keyword
- [ ] Step 4: Cluster gaps by theme
- [ ] Step 5: Deliver prioritized content gap report

Step 1: Scrape SERPs

Recommended — run_actor.js (handles waiting, output, and file saving automatically):

bash
# Quick answer (prints table to chat)
node scripts/run_actor.js \
  --actor "apidojo~google-search-scraper" \
  --input '{"param": "value"}'

# Save as CSV
node scripts/run_actor.js \
  --actor "apidojo~google-search-scraper" \
  --input '{"param": "value"}' \
  --output YYYY-MM-DD_results.csv --format csv

# Save as JSON
node scripts/run_actor.js \
  --actor "apidojo~google-search-scraper" \
  --input '{"param": "value"}' \
  --output YYYY-MM-DD_results.json --format json
APIFY_TOKEN must be set in environment or .env file.

If Apify MCP is available:

Tool: apify:run-actor
Actor: "apidojo~google-search-scraper"
Input:
{
  "queries": ["[KEYWORD_1]", "[KEYWORD_2]", "..."],
  "maxPagesPerQuery": 1,
  "countryCode": "US",
  "includePeopleAlsoAsk": true
}

REST API fallback:

bash
curl -X POST   "https://api.apify.com/v2/acts/apidojo~google-search-scraper/runs?token=$APIFY_TOKEN"   -H "Content-Type: application/json"   -d '{"queries": ["[KEYWORD_1]", "[KEYWORD_2]"], "maxPagesPerQuery": 1}'

Step 2: Score SERP Quality

For each keyword, assess the top 10 results:

Weakness signals (from title + URL):

stale_content = title or URL contains year < (current_year - 2)
low_authority_domain = not in [known authority list] (e.g. Wikipedia, Forbes, HubSpot, Moz, etc.)
thin_content_signal = page title is vague or generic (no specific angle)
forum_or_QA = result is from Reddit, Quora, AnswerThePublic (not editorial)
gap_score = (stale_content_count / 10) * 0.30
          + (low_authority_count / 10) * 0.25
          + (forum_qa_count / 10) * 0.20
          + (no_featured_snippet ? 1 : 0) * 0.25

Tier: HIGH OPPORTUNITY (score ≥ 0.60) | MODERATE (0.35–0.59) | LOW (< 0.35)

Step 3: Edge Cases

  • All top 10 results are from major authorities: Gap score will be low — this is accurate; don't recommend targeting this keyword without a unique angle
  • SERP dominated by one domain: Note monopoly; this keyword may be unfairly dominated; consider long-tail variants
  • Keyword returns mixed intent (informational + transactional): Separate the analysis — informational content has different gap criteria than product pages

Output Format

# Content Gap Analysis: [KEYWORD_SET]
Keywords analyzed: [N] | High opportunity: [N] | Moderate: [N] | Low: [N] | Date: [DATE]

## High-Opportunity Keywords (Best Investment)
| Keyword | Gap Score | Stale Results | Low Auth | No Snippet | Recommended Angle |
|---------|----------|--------------|---------|-----------|------------------|
| [keyword] | [0.XX] | [N]/10 | [N]/10 | Yes | "[content angle]" |

## Content Brief Recommendations

### 1. "[Keyword]" (Gap Score: [X])
Current top result: [title] ([year if stale]) from [domain]
Gap: [stale/thin/no snippet/forum-dominated]
Recommended content: [format + angle + target length]

Troubleshooting

All gaps score low: Target keywords may be well-served by existing content — pivot to long-tail variations or sub-topics. Stale content from authority domains still ranks well: Google may not penalize age heavily for that topic; assess based on whether the content actually answers the user's question. Gap analysis is subjective: The weakness signals are proxies; manually review the top 3 results for your top 5 keywords to validate before committing to content production.

z tego samego repozytorium

Więcej Skills

Wszystkie Skills
apidojo-io
Społeczność

scraping-tiktok-posts-by-location

Extracts TikTok posts tagged at a specific location using apidojo's TikTok Location Scraper on Apify. Triggers when the user asks to: get TikTok videos from a specific location, scrape TikTok posts tagged at a place, find TikTok content from a city or venue, collect TikTok videos geotagged at a location URL, export TikTok location-tagged content, or pull TikTok posts from a place page. Returns video title, views, likes, comments, shares, channel info, hashtags, and timestamp per post. Ideal for

instalacje
2
GitHub Stars
1
Aktualizacja
13 maj
apidojo-io
Społeczność

monitoring-google-news-coverage-for-brand

Monitors Google News coverage for a brand using apidojo's Google Search scraper on Apify. Triggers when the user asks to: track news coverage about a brand on Google, monitor press mentions in Google News, find recent news articles mentioning a company, track media coverage for a brand or executive, monitor competitor news coverage, find press releases or news stories about a brand on Google, or research how a company is being covered in the press. Returns article title, publication, date, URL,

instalacje
1
GitHub Stars
1
Aktualizacja
13 maj
apidojo-io
Społeczność

scraping-tweets-by-keyword

Scrapes tweets matching any keyword, hashtag, phrase, or boolean query using apidojo's Twitter Search scraper on Apify. Triggers when the user asks to: scrape tweets about a topic, fetch tweets containing a keyword or hashtag, export Twitter search results to a dataset, get all tweets mentioning a phrase, pull recent tweets for a search term, or collect tweet data for analysis or research. Returns tweet text, author, likes, retweets, replies, timestamp, and tweet URL per result. Ideal for resear

instalacje
1
GitHub Stars
1
Aktualizacja
13 maj
apidojo-io
Społeczność

scraping-tweets-from-account

Scrapes all tweets, replies, and media from any Twitter/X account using apidojo's Tweet scraper on Apify. Triggers when the user asks to: get all tweets from a Twitter account, export a user's tweet history, scrape a specific Twitter profile's posts, fetch the latest tweets from an account, download tweet data from a user timeline, or collect all posts from a Twitter username. Returns tweet text, likes, retweets, replies, media URLs, and timestamp per tweet. Ideal for journalists, researchers, c

instalacje
1
GitHub Stars
1
Aktualizacja
13 maj