---
title: "Adverse media screening"
description: "Adverse media screening for KYC and AML: search news and regional sources for negative coverage of a company or person, with article text and screenshots."
canonical: https://www.zenrows.com/use-cases/adverse-media-screening
updated: 2026-10-18
---

# Adverse media screening

Adverse media screening checks news and web sources for negative coverage of a person or company, such as fraud, corruption, sanctions or litigation, as part of KYC and AML due diligence. Zenrows runs the searches and fetches each article, including from regional and protected news sites, and returns clean text and screenshots your analysts can review and file as evidence.

## Sample output: one screening hit

```json
{
  "case_id": "KYC-2026-08817",
  "subject": { "name": "Example Trading Ltd", "type": "company", "country": "GB" },
  "query": "\"Example Trading Ltd\" (fraud OR investigation OR sanctions OR fine)",
  "hit": {
    "url": "https://news.example.co.uk/business/2026/10/example-trading-probe",
    "publisher": "news.example.co.uk",
    "published_at": "2026-10-09",
    "language": "en",
    "headline": "Regulator opens probe into Example Trading over client funds",
    "excerpt": "The regulator said it was examining how Example Trading Ltd handled client money between 2024 and 2026.",
    "name_match": "exact",
    "risk_categories": ["financial_crime", "regulatory_action"]
  },
  "evidence": {
    "captured_at": "2026-10-18T09:14:22Z",
    "screenshot": "evidence/KYC-2026-08817/hit-01.png",
    "text_sha256": "3f9a61c0d4b2e8f7a1c95e0b7d3a4f62e21c8b90a7d5f3e1c6b4a2d8f0e9c7b1"
  },
  "status": "pending_review"
}
```

An illustrative hit for a fictional company: Zenrows returns the search results, article text and screenshot, and your matching rules or model assign the risk categories.

## What adverse media screening covers

Screening runs at onboarding and again for as long as the relationship lasts. The subjects are customers, their directors and owners, and the suppliers and partners a firm is responsible for.

| Job | Data you collect | Typical sources |
|---|---|---|
| Onboarding screening (KYC and KYB) | Negative coverage of a new customer, its directors and beneficial owners | Google Search and Google News results, national and business press |
| Ongoing monitoring | New mentions of existing customers since the last check | The same searches, re-run on a schedule per risk tier |
| Third-party due diligence | Bribery, fraud, labour and environmental cases involving suppliers and agents | Trade press, NGO reports, regional news sites |
| Local-language screening | Coverage that only appears in the subject's home press | Regional outlets such as elpais.com, faz.net, scmp.com, globo.com |
| Regulator and enforcement notices | Warnings, fines, bans and enforcement actions | FCA, FINRA, SEC and national regulator press pages |
| Evidence for the case file | Article text, screenshot, capture time, final URL | Every hit an analyst confirms or dismisses |

## Why adverse media search is hard to automate

Screening tools fail in two directions: they miss the local article that matters, or they bury analysts in name matches about someone else. Both come down to what the pipeline can fetch and how much context it keeps.

| What breaks | What it looks like | How Zenrows handles it |
|---|---|---|
| Search engines block repeat queries | After a few hundred names, search pages return CAPTCHAs or empty results | Adaptive Stealth Mode escalates to browser rendering and stealth only when the search page needs it, so results keep coming back |
| Local coverage is missed | A search run from one country ranks different sources than the subject's home market | Geotargeting runs each search from the subject's country, in its language |
| News sites refuse automated readers | Article pages return challenge screens from Cloudflare or DataDome | Zenrows' stealth gets through Cloudflare, DataDome and similar protections and returns the article as a visitor sees it |
| Too many false positives | A common name matches dozens of unrelated people, and the snippet gives no context | Markdown output returns the full article text, so your matcher can check dates, places and roles |
| Articles change or disappear | The story is edited or taken down before an auditor reviews the case | Screenshots capture the page as it was, alongside the text and capture time |

## How to automate adverse media screening

1. **Build the queries.** For each subject, combine name variants with risk terms such as fraud, bribery, sanctions or investigation, in each relevant language.
2. **Run the searches.** Fetch each search results page from the subject's country with geotargeting, and keep the result links.
3. **Read every hit.** Send the result URLs to Batch with Markdown output to get clean article text.
4. **Capture evidence.** Take a screenshot of each article that passes your first filter, and store it with the text and a hash.
5. **Score and route.** Match names in context, classify the risk, and send real hits to an analyst. Re-run the searches on a schedule set by each customer's risk rating.

```python Python
# pip install requests
import requests

API = "https://api.zenrows.com/v1/"
KEY = "YOUR_ZENROWS_API_KEY"

# 1. Run the search from the subject's country and keep the result links
search = requests.get(API, params={
    "apikey": KEY,
    "url": SEARCH_URL,  # a news search for the subject's name plus risk terms
    "mode": "auto",  # Adaptive Stealth Mode
    "proxy_country": "gb",
    "outputs": "links",
}).json()

# 2. Screenshot a hit for the case file
shot = requests.get(API, params={
    "apikey": KEY,
    "url": HIT_URL,
    "js_render": "true",  # screenshots need a full browser render
    "premium_proxy": "true",
    "screenshot": "true",
})
open("hit-01.png", "wb").write(shot.content)
```

```bash cURL
curl -X POST "https://async.api.zenrows.com/v1/jobs" \
  -H "X-API-Key: YOUR_ZENROWS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "regular",
    "status": "closed",
    "zenrows_params": { "mode": "auto", "response_type": "markdown" },
    "tasks": [
      { "url": "HIT_URL_1", "external_id": "KYC-2026-08817-01" },
      { "url": "HIT_URL_2", "external_id": "KYC-2026-08817-02" }
    ]
  }'
```

```bash CLI
npx -y @zenrows/cli init
zenrows extract SEARCH_URL --proxy-country gb --outputs links --out hits.json
# write the article links to hits.jsonl, one {"url": "..."} per line
zenrows batch create hits.jsonl --output markdown --wait
zenrows batch results JOB_ID --out articles.jsonl
```

```text Claude Code (MCP)
# Connect once
claude mcp add zenrows -e ZENROWS_API_KEY=YOUR_ZENROWS_API_KEY -- npx -y @zenrows/mcp

# Then ask:
Use Zenrows to search UK and Spanish news for "Example Trading Ltd" with fraud, investigation, sanctions and fine. Read each result and list the articles about this company, with date, outlet, URL and a one-line summary.
```

## Which Zenrows product fits

| If you need to | Use | Why |
|---|---|---|
| Run a search or read one article for a case | [Fetch](/products/fetch) | One request returns results, article text or a screenshot, from protected sites included |
| Re-screen a whole customer book on a schedule | [Batch](/products/batch) | Every search and hit URL runs as one job, tagged with your case IDs |
| Let an analyst investigate a subject in plain English | [MCP Server](/mcp) | Claude and other MCP clients search and read live news through Zenrows |

## What success looks like

| Measure | What good looks like | How to check it |
|---|---|---|
| Recall on known cases | Subjects with known negative coverage are flagged by the pipeline | Keep a test set of past cases and re-run it after every change |
| False positive load | Analysts spend their time on real hits, not namesakes | Track the share of hits dismissed as wrong person per review cycle |
| Country coverage | Every country in your customer base is searched in its own language | List customer countries with no local-language queries or sources |
| Screening time per subject | A new subject is screened before the onboarding decision is due | Measure time from case creation to first results |
| Evidence completeness | Every reviewed hit has text, screenshot, URL, hash and capture time | Audit a random sample of closed cases each month |

## Adverse media screening FAQ

### What is adverse media screening?

Adverse media screening, also called negative news screening, is the check of news and other public sources for information that links a customer or counterparty to financial crime or other risks. It is part of customer due diligence under KYC and AML rules, at onboarding and through ongoing monitoring, alongside sanctions and politically exposed person checks.

### What counts as adverse media?

Coverage linking the subject to money laundering, fraud, bribery and corruption, tax evasion, terrorist financing, sanctions breaches, organised crime, or regulatory enforcement. Many firms add environmental, labour and human rights cases for suppliers. Your risk policy decides which categories trigger review.

### How is adverse media search different from sanctions screening?

Sanctions screening matches names against official lists such as OFAC or the EU consolidated list. Adverse media search covers everything not on a list: investigations, lawsuits, fines and allegations reported in the press. It finds risk earlier, and it produces more noise, which is why article context and evidence matter.

### How do adverse media screening tools reduce false positives?

They match more than the name. Reading the full article lets a matcher compare dates of birth, locations, company roles and associated names with what you know about the subject. Zenrows supplies the full text as Markdown, so that context is available to your rules or model rather than a two-line snippet.

### Can I automate adverse media screening for KYC?

Yes. Automate the search, fetch, deduplication and first-pass matching, and keep analysts for the hits that pass. Run new subjects on demand, and re-screen existing customers on a schedule tied to their risk rating. Batch handles the scheduled runs as one job each.

### Is it legal to screen news about individuals?

Regulated firms are often required to screen customers, but the screening still processes personal data. Under laws like GDPR you need a lawful basis, a defined purpose and a retention policy, and you should collect only what the check needs. Confirm your approach with your compliance and legal teams.

### How often should customers be re-screened for adverse media?

Most firms tie the interval to the customer's risk rating: high-risk customers daily or weekly, medium-risk monthly, low-risk at periodic review or when something changes, such as a new director or a large transaction. Automating the searches makes frequent re-screening practical, because each run only needs to read articles published since the last one. Your risk policy and regulator set the minimum.

### What security documentation does Zenrows provide?

Zenrows provides SOC 2 and ISO 27001 documentation for vendor due diligence reviews. Each record you store keeps its source URL, capture time and screenshot, which gives auditors a trail from every decision back to the page it was based on.

## Related use cases

- [News scraping](https://www.zenrows.com/use-cases/news-scraping.md): Full-text articles, headlines, bylines and dates from publishers, Google News and wires, as clean Markdown or JSON.

Start free: https://app.zenrows.com/register. Docs: https://docs.zenrows.com
