CSEXECUTION TRACE
Ascend Outreach
Signal-triggered re-engagement drafting: external signals decide when to write, AI drafts in the founder's voice from real call context, and a human sends every email.
CONTEXT
Travel concierge firm · internal
ROLE
Solo build
STACK
Python, Claude, HubSpot, Clay, Superhuman
YEAR
2026
01 — The problem
Re-engaging warm, high-value prospects worked like this: after a touchpoint, the founder emailed a reminder to himself. A few times a month the reminders piled up, and he sat down for an hour or two of handwritten follow-ups. The quality was high — but the timing was set by when the batch got processed, not by when an email would actually land well. And chasing cold-gone contacts with revenue at stake carries a cognitive weight out of all proportion to the typing time.
02 — Constraints
- Nothing sends automatically — ever. The system produces drafts; a person reads, edits, and sends each one. That line is architectural, not aspirational.
- The voice has to be the founder's, grounded in what was actually said — real call transcripts and relationship notes, not generic sales prose.
- Relationships need protecting from the system itself: cadence gates cap contact frequency, so an eager signal can't turn into pestering.
- Two prospect types need genuinely different letters: partner organizations get community-value framing, enterprise contacts get personal history tied to a current signal.
- Quality over volume by design — a good week might produce one email.
03 — The approach
Every Monday, a scheduled run walks the prospect list with HubSpot as the single source of truth. A gate layer checks each prospect for external signals — funding rounds, executive-assistant job changes, M&A, conference activity, detected via Clay — and applies the cadence rules before anything else happens.
Only for prospects that clear the gates does the drafting layer run: Claude drafts the email grounded in that prospect's call transcripts (via Fireflies), relationship notes, and the specific signal that fired, using the partner or enterprise framing as appropriate. The draft lands in Superhuman scheduled for the recipient's best send window — where it waits for a human. Gate decisions and draft metadata write back to HubSpot, so the system's memory lives in the CRM the team already uses.
The whole thing runs as an Ascend Flow instance, so every Monday run is inspectable step by step.
04 — The outcome
Follow-ups now arrive as a small Monday batch of researched, signal-timed drafts that take minutes to review instead of hours to write — and they go out when the signal says the moment is right, not when the reminder pile gets processed. Because the prospect list and rules live in the CRM, extending the system to the rest of the team's rolodexes is configuration, not a rebuild.
05 — What I'd do differently
Run the adversarial audit per phase instead of saving it for the end — the post-build audit pass caught issues that earlier spot-checks had missed, and each was cheaper to fix the closer it was caught to the phase that introduced it.