The right pitch, to the right owner, at the right time.
Pursuit writes an original outreach message for each lead across email, SMS, call or voicemail, then queues it for a human to approve.
- Every message is written individually for that one lead, never a template.
- Nothing reaches a customer until a human approves the draft.
- Outreach halts the instant a lead replies, converts or opts out.
- Client / status
- MineralView · in production
- Business outcome
- AI-drafted outreach across email, SMS, call and voicemail at production scale
- Risk control
- Read-only boundary to production data · human approves every send · halts on reply/opt-out
- What we delivered
- Architecture, build, integration, operate
A CRM where the AI writes every message, and a human sends it
MineralView's audience spans family owners, landmen, CPAs and investors; one drip can't serve them all. Pursuit drafts each outreach individually for a human to approve.
No canned templates
Every email is drafted fresh from the lead's browsing journey, claim status, portfolio and prior conversations, producing original, on-brand copy per person.
Multi-channel, one queue
Email, SMS, call scripts and voicemail from one decision pipeline, with two-way customer email handled inside the platform.
Human-owned relationships
One owning rep per lead, a 360-degree view with activity heatmap and a suggested next action. Automation assists, people close.
The hard parts were boundaries, not prompts
Read-only production boundary
Lead data lives in the client's live platform database. Pursuit ingests it through a read-only connection pool, and engagement depth is computed from subscription signals at sync time. The source schema is never touched.
Automation vs. humans colliding
A drip firing after a rep has started a real conversation destroys trust. We enforced a strict status pipeline: once a lead is qualified, converted or lost, the automation engine permanently stops drafting for them, checked on every run, not best-effort.
Attribution below the app layer
Audit logs written by application code miss direct database changes. We pushed auditing into a row-level PL/pgSQL trigger and inject the logged-in user's ID into the transaction context, so even trigger-level status changes record who acted and when.
Two decoupled systems, one shared source of truth
A Next.js command center and a nightly automation worker that never call each other; they coordinate only through the CRM's PostgreSQL database, so either side can fail, restart or deploy independently.
| Capability | How it works |
|---|---|
| Job-queue runner & daily cron | the runner pulls recent registrations from the platform's read-only pool, scores each lead's engagement, and drafts the next outreach step for every lead still in play; a daily cron drains the queue and re-engages. |
| Context-fed AI drafting | the prompt carries the lead's browsing journey, claim status, portfolio and conversation history, so the model writes to a person, not a segment. |
| Model fallback & offline bypass | a fallback model chain keeps drafting alive through provider outages; a deterministic heuristic path keeps scoring working with no API at all. |
| Command center approval | queued drafts land in the dashboard where reps inline-edit and hit approve; execution records the edit, the user, and advances the lead's status atomically. |
| Capped, self-halting sequences | onboarding sequences hard-cap at three steps and stop instantly on reply, conversion or opt-out, enforced by the pipeline, not by convention. |
How a registrant becomes an approved conversation
What the marketing team actually sees
What it changed
Pursuit is live with MineralView's marketing team. Reps start their day with a queue of individually written drafts instead of a blank page, and every relationship stays owned by a human.
Every AI decision is traceable, versioned and costed
Every call logged with its cost
Each model call records the prompt sent, tokens in and out, cache hits, latency and a per-call USD cost, so every draft traces back to the source data that produced it.
Versioned, swappable prompts
Outreach prompts are append-only and versioned, editable and revertible from the dashboard with no redeploy, and the exact version is stamped on every message.
Provider-agnostic with fallback
A fallback model chain survives provider outages, and a deterministic heuristic keeps lead scoring working with no API at all.
Everything the team runs the day on
| Capability | What it does |
|---|---|
| Bulk campaigns | send at scale with per-campaign reply, bounce and opt-out reporting for every batch. |
| Open & click tracking | engagement measured through signed links and tracking pixels on every message. |
| Deliverability verification | a real inbound reply counts as proof the mailbox actually works. |
| Timezone-aware scheduling | scheduled sends dispatched in the customer's local timezone, not the server's. |
Have leads you're not working hard enough?
Pursuit runs live in production with the client's team. We can build the same AI outreach engine on your data.
Talk to Sachin