---
title: "Competitor Blog Watch"
description: "Scheduled monitoring of competitor blogs, what a signal is, and how one becomes a Topic."
updated: "2026-08-18"
verifiedAgainst:
  - packages/shared/src/competitor-watch.ts
---

Competitor Blog Watch checks the blogs of the competitors you approved and tells you
what they published.

## Enabling it

Off by default. Turn it on per Project in settings, once you have approved
competitors. Its states are `not_enabled`, `enabled`, `paused` and `error`.

## Cadence

Watch runs weekly. Manual checks are available and rate limited: a full check
across all competitors has a longer cooldown than a check of a single
competitor, because a full check is a great deal more work on other people's
sites.

## Signals

Each competitor post found is a **signal**, and each signal has a status:

| Status | Meaning |
| --- | --- |
| `new` | Found, not yet triaged |
| `watching` | Interesting, no action yet |
| `ignored` | Not worth responding to |
| `topic_created` | Turned into a Topic |
| `drafted` | A post exists for it |

## Suggested angles

A signal comes with a suggested angle, which is the useful part:

| Angle | Meaning |
| --- | --- |
| `insight` | There is something to add they did not say |
| `similar` | Worth covering the same ground for your audience |
| `different` | Worth arguing the other side |
| `response` | Worth answering directly |

## Turning a signal into a Topic

Triage a signal into a Topic and it joins the normal queue. It can belong to a
Content Direction, or to none: a competitor response often does not fit an
existing lane, and general content is a real answer rather than a placeholder.

## Limits and manners

Watch is bounded: a cap on tracked competitors per Project, a cap on posts read
per competitor per run, a response size limit and a request timeout. Blogged
identifies itself as [BloggedBot](/reference/crawler) when it reads.
