Daily sweep of competitors where status='active' AND (lastAnalyzedAt IS NULL OR lastAnalyzedAt < NOW() - 7 days). For each eligible competitor, fires a 'pipeline/competitor-monitor' event to re-scrape and diff against the last known state.
Type: nightly_batch Trigger: Scheduled: 0 6 * * * Entities: competitors,projects Recommendation: