The problem
Local service businesses can lose good leads when the first response is slow or when follow-up depends on somebody manually reading every message.
What I built
PoolPulse is a demo workflow for capturing a lead, sending first outreach, processing email replies, extracting sales signals, and moving the lead through explicit stages:
NEW -> CONTACTED -> QUALIFYING -> QUALIFIED -> BOOKED
The demo includes an operator view for inbox threads, pipeline movement, workflow events, and conversion analytics.
Engineering choices
- Inbound replies are idempotent and resolve back to a lead through email thread headers, an explicit lead reference, or sender fallback.
- AI extracts schema-bound qualification fields and drafts natural replies.
- Deterministic rules decide workflow state, unsupported project screening, opt-outs, follow-up timing, and when to hand the conversation to a person.
- Taxonomy normalizers and fallback extraction keep the workflow usable when a model provider is unavailable.
- The model registry supports multiple AI providers.
- The service flow is covered with in-memory database tests for intake, qualification, booking, follow-ups, and email threading behavior.
Current boundary
This is a product demo, not a finished sales system. Deliverability, domain-specific qualification rules, and the booking integration would need a deeper production pass.