TL;DR: CatchAll's new Company Watchlist feature lets you scope any query or persistent monitor to a specific list of companies. Define your entities once, create a dataset, attach it to any job with a single parameter — and every result comes back with a relevance score for each matched company. No custom entity resolution pipeline required. Available now.

The Problem: Events Are Easy. The Right Entities Are Hard.

CatchAll is good at finding events. You ask for credit downgrades, insolvency filings, or M&A announcements, and it scans 2B+ web pages — including regional press, foreign-language sources, and industry publications — and returns everything that matches.

The harder problem is scope. A credit risk team with 200 counterparties doesn't want all credit downgrades. They want downgrades affecting those 200 companies specifically. A supply chain team doesn't want every supplier disruption in the world — they want disruptions at the 80 suppliers in their tier-1 network.

Until now, scoping CatchAll results to a specific entity list required custom logic on your side: maintaining name and alias mappings, handling disambiguation across jurisdictions and languages, filtering out results where a company is mentioned in passing rather than as the subject of the event. That logic is non-trivial, especially for multilingual coverage, and it lives outside CatchAll — which means it's your problem to maintain.

Company Watchlist moves it inside CatchAll.

How It Works

Company Watchlist has three connected components: Entities (individual company definitions), Datasets (named collections of entities that act as reusable watchlists), and Connected Jobs (standard CatchAll jobs with a dataset attached). Here's how to set it up.

Step 1: Define your entities

Submit your companies via the API. Each entity needs a name; domain is optional but is the most reliable matching signal. You can also provide description, alternative_names and key_persons to improve recognition across sources.

Each entity is assigned a UUID and moves through pendingenrichingready.

POST /catchAll/entities/batch

[
  {
    "name": "Brightline Trains Florida LLC",
    "entity_type": "company",
    "additional_attributes": {
      "company_attributes": {
        "domain": "gobrightline.com",
        "alternative_names": ["Brightline Florida", "Virgin Trains USA"]
      }
    }
  },
  {
    "name": "Merlin Entertainments",
    "entity_type": "company",
    "additional_attributes": {
      "company_attributes": {
        "domain": "merlinentertainments.biz"
      }
    }
  }
]

Supported CSV Columns
Columns Table
ColumnRequiredDescription
nameYesCompany name
descriptionNoCompany description
domainNoCompany website domain
alternative_namesNoSemicolon-separated list of aliases
key_personsNoSemicolon-separated list of key people

Step 2: Create a dataset

Group your entities into a named dataset. Datasets are reusable — create one per watchlist type (counterparties, portfolio companies, M&A targets) and attach them to as many jobs or monitors as you need.

POST /catchAll/datasets

{
  "name": "tier-1-counterparties",
  "description": "200 tier-1 credit counterparties for risk monitoring",
  "entity_ids": ["uuid-1", "uuid-2", "uuid-3"]
}

Poll GET /catchAll/datasets/{dataset_id} until latest_status is ready before submitting jobs.

Step 3: Submit a job with your dataset attached

Any standard CatchAll job accepts a connected_dataset_ids parameter. Add it and nothing else changes — the same plain-language query runs as normal, but results are filtered to events about companies in your dataset:

POST /catchAll/submit

{
  "query": "credit rating downgrade OR debt restructuring OR insolvency filing in the past two months",
  "connected_dataset_ids": ["<your-dataset-id>"]
}

When a job runs with connected_dataset_ids, CatchAll filters down to results matching at least one company in your dataset before clustering — anything that doesn't match is dropped. This keeps the pipeline focused without changing how the broader search works.

Step 4: Get results with per-company relevance scores

Every result includes a connected_entities array. Each matched company gets an ed_score from 1–10 indicating how central it is to the event (see the table below), plus a relation field describing the context. Entities scored 0 are filtered out before results are returned.

ED Scoring Guide
ED Scoring Guide
ScoreMeaningExamples
10Direct mention + critical eventMergers, CEO change, major lawsuits
7–9Major impactEarnings, product launches, senior hires
4–6Routine updatesMinor product news, mid-level changes
1–3Indirect mentionListed with others, stock noise

Output Example

{
  "record_title": "S&P downgrades Brightline Trains Florida to CCC+ on $2.2B debt load",
  "connected_entities": [
    {
      "entity_id": "uuid-brightline",
      "name": "Brightline Trains Florida LLC",
      "ed_score": 9.2,
      "relation": "Primary subject of credit downgrade event"
    }
  ],
  "enrichment": {
    "event_type": "credit_downgrade",
    "sentiment_score": -0.84,
    "rating_agency": "S&P",
    "new_rating": "CCC+"
  },
  "citations": [
    { "source": "Bloomberg",      "published_at": "2026-03-05" },
    { "source": "The Bond Buyer", "published_at": "2026-03-05" }
  ]
}

The entity_id is stable across jobs, so you can use it to route events directly into downstream systems — risk platforms, CRMs, alerting pipelines — without re-running entity resolution.

What You Can Build With It

Counterparty risk monitoring — Upload your full counterparty list as a dataset. Submit a monitor for credit events, regulatory actions, and distress signals with connected_dataset_ids. Receive webhook alerts when any of those specific entities are mentioned, with entity_id for direct routing into your risk platform.

Portfolio and coverage tracking — PE and VC teams can monitor portfolio companies for product launches, executive changes, litigation filings, and competitive moves — scoped exactly to the companies in the portfolio, with multi-language coverage for international holdings.

M&A target surveillance — Corporate development teams can run deal signal queries across a curated target list and get results only about those companies, not the broader M&A market. Combined with CatchAll's multilingual indexing, this surfaces signals from regional press that deal databases miss — often by several days.

Supply chain watchlists — Upload your tier-1 and tier-2 supplier list and monitor for operational disruptions, financial distress, or regulatory actions.

What Stays the Same

Company Watchlist is an addition to how CatchAll works, not a replacement. Jobs without connected_dataset_ids behave exactly as before. You can run both in parallel: a broad market query for general event discovery alongside a focused query scoped to your watchlist — same API, same result structure.

The recall-first indexing doesn't change either. CatchAll still scans the full open web before applying the entity filter — which matters because the signal for a specific company is just as likely to appear in a regional trade publication or a non-English news outlet as it is in a wire service. Filtering after recall, rather than restricting the search scope upfront, is what makes entity-level monitoring across multilingual sources tractable.

Full documentation here.

Try Company Watchlist with 2,000 free credits at platform.newscatcherapi.com.
For enterprise deployments — large entity lists, custom enrichment pipelines, or dedicated integration support — book a demo or reach us at support@newscatcherapi.com.

Related Reading