Outreach triage
Review the pending outreach queue end to end — pull drafts, approve the strong ones, regenerate or reject the rest — on the vruum CLI and via MCP.
Outreach triage is the daily loop of clearing the pending outreach queue: pull
the draft messages, read each against its research, approve the ones that are
ready to send, and regenerate or reject the rest. This recipe shows the flow on
both surfaces; the outreach-triage skill automates the same motion with
parallel review.
CLI flow
Pull the queue, inspect a draft, then act on it. Approve a single message by id, or batch-approve several once you've reviewed them.
# 1. Pull everything still awaiting review.
vruum message queue --status draft
# 2. Approve one message once you've read it against its research.
vruum message approve <message_id>
# 3. Tighten a draft in place, or regenerate it from scratch.
vruum message edit <message_id> --body "<revised copy>"
vruum message regenerate <message_id>
# 4. Reject anything off-base.
vruum message reject <message_id>
# 5. Batch-approve a reviewed set (ids as args, or piped on stdin).
vruum message bulk-approve <message_id_a> <message_id_b> <message_id_c>
MCP flow
The same loop from the AI chat. get_outreach_review returns the queue with the
research context attached; manage_message acts on a single draft; and
bulk_manage_messages approves or rejects a reviewed batch in one call.
get_outreach_review() → the pending queue + context
manage_message(message_id=…, action="approve")
manage_message(message_id=…, action="reject")
bulk_manage_messages(message_ids=[…], action="approve")
All three are default-loaded MCP tools, so no tool search is needed. For
anything outside the message surface, reach for vruum_exec.
Use the skill
The outreach-triage skill runs this whole loop with parallel subagent review —
it pulls the queue, reviews each draft against its research, and surfaces a
ranked approve/edit/reject recommendation instead of you pulling items one by
one.
# CLI: read the packaged playbook.
vruum skills list
vruum skills show outreach-triage
# MCP: invoke it inline.
invoke_skill(skill_id_or_name="outreach-triage")