## TL;DR
Wire the ESP's complaint notifications and feedback loops straight into the suppression list so a spam complaint suppresses the address automatically within minutes. Every additional send to someone who flagged you as spam multiplies the damage to your domain reputation. Backfill past complaints, then verify with a test complaint.

## The error
```text
Agent kept emailing candidates who marked it as spam - the complaint webhook was never wired to the suppression list
```

## Steps
1. In the ESP, enable complaint notifications and feedback loops for the sending domain and point them at an endpoint or list that suppresses automatically.
   Expected: a spam complaint lands in the suppression list without human action.
2. Pull the complaint history from the ESP and add every past complainer to the suppression list.
   Expected: zero past complainers remain mailable.
3. Add a one-click unsubscribe header to every outreach email and honor unsubscribes promptly.
   Expected: recipients have a clean exit that does not require marking you as spam.
4. Send a test complaint (most ESPs provide a seed address or simulator) and confirm the address is suppressed.
   Expected: the test address is blocked from future sends within minutes.
5. Add a pre-send check in the agent: never send to a suppressed address, even if a new campaign list includes it.
   Expected: a dry run against an old list skips every suppressed address.

## Use this when
- An agent runs candidate email sequences of any kind
- Recipients reply asking to stop and still get more mail
- You are setting up outreach infrastructure for the first time

## Not for this skill when
- The complaints are about a different sender on a shared domain (isolate senders per subdomain)
- You have no ESP feedback loop available (switch to an ESP that provides complaint webhooks)
- The issue is bounces, not complaints (suppression lists need both, but the wiring differs)

## Variant phrasings
- spam complaints not suppressing email addresses
- complaint webhook not connected to suppression list
- agent emailed someone who marked us as spam
- how to auto-suppress spam complaints in outreach

## Why it happens
Mailbox providers send spam complaints back through feedback loops, but those notifications only help if something listens. The agent had no listener: complaints arrived at the ESP and died there while the agent's list stayed unchanged. Each subsequent send to a complainer is strong negative signal, so the reputation damage compounds with every ignored complaint.

## Edge cases
- List-Unsubscribe has mailto and URL forms: support both, since some providers only use one.
- Complaint data is per-domain: feedback loops must be registered for each sending domain.
- Suppression is forever by default; only remove an address with explicit re-consent.
- Monitor the complaint rate: sustained rates above about 0.1% mean the targeting or content needs work, not just the plumbing.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_wRNUCWWpWKN-AvqdodEFoQ
