Skip to main content
skill CX Codex

monitoring-google-news-coverage-for-brand — Claude Code skill

Searches Google News for brand coverage through Apify, then returns article details and sentiment. Use it for press and reputation monitoring.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add apidojo-io/apidojo-skills --skill monitoring-google-news-coverage-for-brand -a claude-code
Open on GitHub

What monitoring-google-news-coverage-for-brand does

This skill runs apidojo~google-search-scraper on Apify to find news about a brand, company, executive, or competitor. Its report includes each article’s title, publication, date, URL, and coverage sentiment. Results can be written to CSV or JSON with scripts/run_actor.js.

The workflow searches Google News with a time filter, separates editorial coverage from press releases, classifies headline sentiment, and groups prominent publications and story themes. Exact-match quotes help with common brand names; after:[DATE] can narrow results to newer coverage.

Set APIFY_TOKEN in the environment or in .env before running the script. An Apify MCP server can handle the actor call when available, but it is optional. The script cannot run without APIFY_TOKEN.

What it helps with

  • find recent Google News articles about a brand
  • save collected coverage as CSV or JSON
  • separate editorial stories from press releases
  • flag negative headlines for PR review

Example prompts for the agent

  • Search Google News for recent coverage of [BRAND_NAME] and prepare a report with each title, publication, date, URL, and sentiment.
  • Review [BRAND_NAME] articles after [DATE], separate press releases from editorial stories, and flag negative coverage.
  • Use Apify to collect news about [BRAND_NAME] and save the results to YYYY-MM-DD_results.csv.

How to install monitoring-google-news-coverage-for-brand

1Skills CLI (Vercel)

npx skills add apidojo-io/apidojo-skills --skill monitoring-google-news-coverage-for-brand -a claude-code

2Manually: put the files in place

~/.claude/skills/monitoring-google-news-coverage-for-brand/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/monitoring-google-news-coverage-for-brand/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about monitoring-google-news-coverage-for-brand

How do I install monitoring-google-news-coverage-for-brand in Claude Code?

Run npx skills add apidojo-io/apidojo-skills --skill monitoring-google-news-coverage-for-brand -a claude-code. The skill file will be at ~/.claude/skills/monitoring-google-news-coverage-for-brand/SKILL.md.

What does monitoring-google-news-coverage-for-brand do?

It searches Google News through Apify, gathers article details, and produces a coverage report with publications, dates, URLs, and sentiment.

What is required to run the skill?

Set APIFY_TOKEN in the environment or in .env when using scripts/run_actor.js. An Apify MCP server is an optional way to run the actor.

Source text

SKILL.md · Apache-2.0
---
name: monitoring-google-news-coverage-for-brand
description: >
  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, and coverage sentiment per article.
  Ideal for PR agencies, communications teams, brand managers, and reputation monitoring services.
license: Apache-2.0
metadata:
  author: apidojo
  version: "1.0"
  apify-actor: apidojo/google-search-scraper
---

# 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

| Parameter | Type | Required | Default | Notes |
|-----------|------|----------|---------|-------|
| `startUrls` | array | Optional | `[]` | Google search URLs |
| `searchTerms` | array | Optional | `[]` | Keywords to search on Google |
| `countryCode` | string | Optional | `US` | Country for Google search (e.g. `US`, `GB`, `TR`) |
| `languageCode` | string | Optional | — | Language for results (e.g. `en`) |
| `maxItems` | number | Optional | Unlimited | Maximum results to return across all queries |
| `maxPagesPerQuery` | integer | Optional | `1` | Maximum result pages per query |
| `mobileResults` | boolean | Optional | `false` | Fetch mobile SERP layout |
| `customMapFunction` | string | Optional | — | 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):**
```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": ["\"[BRAND_NAME]\" news", "[BRAND_NAME] announcement"],
  "maxPagesPerQuery": 3,
  "countryCode": "US",
  "searchType": "news"
}
```

**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": ["\"[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.

© apidojo · Apache-2.0 · apidojo-io/apidojo-skills

Similar skills

Everything for Marketing and content →

From the same set57

finding-freelancers-by-skill-on-twitter Finds freelancers and independent contractors on Twitter by skill, profile details, and signs they are open to work. Useful when a project needs outside specialists. CX Codex +1 740installs monitoring-instagram-hashtag-trends Pulls Instagram posts per hashtag and works out which tags actually earn engagement. Useful when you need a hashtag set for a post or a brand comparison. CX Codex +1 740installs finding-real-estate-professionals-on-twitter Finds real estate agents, brokers, investors, and other property professionals on Twitter/X through Apify. Useful for building targeted profile lists. CX Codex +1 739installs building-twitter-industry-watchlist Builds a curated list of key voices in an industry on X, with handle, follower count, engagement and an influence score. CX Codex +1 739installs scraping-tiktok-videos-by-hashtag Pulls TikTok videos for any hashtag or keyword through apidojo's scraper on Apify. Returns URL, views, likes, comments, shares and author per video. CX Codex +1 738installs scraping-youtube-channel-data Collects YouTube channel metrics and video catalogs through Apify. Use it to process channels in bulk from URLs or handles. CX Codex +1 733installs analyzing-tiktok-hashtag-performance Measures TikTok hashtag reach, engagement, top videos, and creators through Apify. Use it to compare tags or shape a hashtag plan for a post. CX Codex +1 730installs finding-youtube-channels-by-growth-rate Finds YouTube channels with high growth rates in a niche using Apify's YouTube scraper. Useful for spotting rising creators before they get big. CX Codex +1 730installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor