mcpField
M
monitoring-google-news-coverage-for-brand

monitoring-google-news-coverage-for-brand

github.com/apidojo-ioMarketing & growth1765 installsUpdated 24w ago
Repository

About monitoring-google-news-coverage-for-brand

A skill for monitoring a brand’s press coverage through Google News search. It guides PR and communications teams in classifying articles, assessing headline sentiment, and preparing a coverage report.

Key features

  1. 01Search Google News for brand mentions
  2. 02Classify editorial, trade, and press release coverage
  3. 03Flag potentially negative headlines
  4. 04Summarize publications and story themes
  5. 05Prepare a chronological coverage report

Use cases

  1. 01Track news coverage during a campaign
  2. 02Identify negative stories needing PR attention
  3. 03Compare publication and coverage patterns

MCP support

Can use the Apify MCP server to run the apidojo~google-search-scraper actor; command-line and REST API alternatives are also described.

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/apidojo-io/apidojo-skills --skill monitoring-google-news-coverage-for-brand

After installing, type/monitoring-google-news-coverage-for-brandin Claude Code to confirm it loaded.

Details

From the project README

Monitoring Google News Coverage for a Brand

Tracks press and media coverage of a brand across Google News. Identifies publications, volume, sentiment, and stories that need PR attention.

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: Search Google News for brand + time filter
- [ ] Step 2: Classify editorial vs. press release
- [ ] Step 3: Classify coverage sentiment
- [ ] Step 4: Identify top publications and story themes
- [ ] Step 5: Deliver press monitoring report
Step 1: Run google-search-scraper

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

# 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": ["\"[BRAND_NAME]\" news", "[BRAND_NAME] announcement"],
  "maxPagesPerQuery": 3,
  "countryCode": "US",
  "searchType": "news"
}

REST API fallback:

curl -X POST \
  "https://api.apify.com/v2/acts/apidojo~google-search-scraper/runs?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"queries": ["\"[BRAND_NAME]\" news"], "maxPagesPerQuery": 3, "searchType": "news"}'
Step 2: Classify Coverage
coverage_type:
  PRESS_RELEASE = domain: prnewswire, businesswire, globenewswire
  EDITORIAL = major publication (TechCrunch, Forbes, WSJ, Bloomberg)
  TRADE = industry publication
  NEGATIVE_FLAG = title contains: "lawsuit", "scandal", "fraud", "investigation"

sentiment_from_headline:
  POSITIVE = "raises", "launches", "wins", "grows", "partners", "expands"
  NEGATIVE = "cuts", "loses", "sued", "drops", "fails", "controversy"
Step 3: Edge Cases
  • Brand name is common word: Use exact match quotes; add qualifier
  • Old coverage returned: Use after:[DATE] query operator
  • Negative from major publication: Flag as PR_ATTENTION_NEEDED
  • Competitor coverage much higher volume: PR gap analysis signal

Output Format

# Google News Monitor: [BRAND_NAME]
Period: [DATE_RANGE] | Articles: [N] | Publications: [N] | Date: [DATE]

Coverage: Editorial [N] | Press Releases [N] | Negative flags [N]
Sentiment: [X%] Positive | [X%] Negative | [X%] Neutral

## Headlines (Chronological)
| Date | Publication | Headline | Type | Sentiment | URL |
|------|------------|---------|------|-----------|-----|

## ⚠️ PR Attention Needed
[Negative articles requiring monitoring]

Troubleshooting

Too few results: Brand has limited press; try without quotes for broader matching. Reviews not press in results: Add -site:yelp.com -site:glassdoor.com to queries. Google blocks news search: Use searchType: "web" with news-domain anchors.

Comments

Markdown supported