Skip to main content
This guide builds a Company Watchlist end to end: upload your list of companies, run a connected job to confirm the matching, then schedule a monitor that re-runs it and delivers per-company events to your app. Each step links to its reference if you need to go deeper. Use this when you track a fixed set of companies — a fund’s portfolio, a competitor set, an account list — and want recurring coverage scored per company, instead of running broad topic queries.

Before you begin

  • Get a CatchAll API key from platform.newscatcherapi.com.
  • Have your company list ready as a CSV with name and domain columns (see the format in Step 1).
  • Set up a publicly accessible HTTPS endpoint that returns a 2xx and accepts a JSON POST, or use webhook.site for testing.
  • Optionally, install the CatchAll SDK for your language:

Build the monitor

1

Build the watchlist

A dataset is a named collection of company entities — your portfolio. The fastest way to create one is to upload a CSV: it creates the entities and the dataset in a single request. The name and domain columns are required; everything else is optional. Use semicolons to separate multiple values.
companies.csv
The description is the signal that tells two companies with the same name apart. A specific, factual description (“US-based alternative asset manager, NYSE: APO”) beats a vague one (“global leader in solutions”). See Company Watchlist for how to write descriptions that disambiguate, plus the JSON and batch alternatives to CSV upload.
2

Wait for the dataset to be ready

Entities are enriched after upload. Poll the dataset until latest_status reaches ready — don’t submit a job before this completes.
3

Test a connected job

Run the watchlist once before scheduling it. Submit a standard job with connected_dataset_ids to activate company search mode. To collect all news about your companies rather than a single topic, set fetch_all_watchlist_news: true; to track a specific theme, pass a real query instead. Keep the job_id — you reference it when creating the monitor.
Each record carries a connected_entities array — one entry per matched company, with an ed_score from 1 to 10 and a one-line relation explaining the match.
To return only events where a tracked company is the primary actor (the company that raised funding, was acquired, announced layoffs), add "ed_association_type": "event_associated". See Company Watchlist.
4

Create a webhook

A webhook is created once at the organization level, then attached to any number of jobs or monitors. Save the returned webhook.id.
CatchAll also supports slack and teams webhook types if you’d rather deliver portfolio updates straight to a channel. See Set up webhooks.
5

Schedule the monitor

A monitor re-runs the connected job on a schedule, deduplicates against previous runs, and delivers each run to the webhooks in webhook_ids. A monitor created from a watchlist job keeps the connection — every run scores the same portfolio.
The reference job’s end_date must be within the last 7 days, and the default minimum schedule interval is 24 hours (more frequent intervals depend on your plan). See Configure monitors.
6

Handle the delivery

After each scheduled run, CatchAll sends a POST to your webhook URL. Return a 2xx within 5 seconds and process asynchronously. For a connected watchlist, each record carries the same connected_entities array you saw when testing — so you can route each event to the right company.The payload:
A minimal receiver routes each record by matched company:
Prefer no code? Point the webhook url at an n8n, Make, or Zapier webhook trigger and map each connected_entities entry into a Slack message, a spreadsheet row, or a CRM record on the matching company.

Keep the watchlist current

Portfolios change. Update the dataset without rebuilding the monitor — the next scheduled run picks up the new roster automatically: See the Datasets API reference for the full set of dataset operations.

See also

  • Company Watchlist: entities, datasets, association types, and per-company scoring in depth
  • Monitors: how scheduling, deduplication, and rolling date windows work
  • Build an event feed: the same pipeline for a topic query instead of a watchlist
  • Set up webhooks: webhook types, auth, testing, and delivery history
  • Configure monitors: schedules, robust webhook handling, updating a monitor