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 pending → enriching → ready.
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
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
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.































































