The short version

From under $4K to a record $37.8K month of collections within 90 days.

Key decision

Retrieve product facts, validate generated claims, and require human approval for inbound quotes.

Verification

Style checks plus a separate claim-validation pass. The result is business collections, not an isolated causal estimate of the AI service.

two-layer validation · before any send
Generated draftClaude · modular prompt
Layer 1 · stylebanned phrasing · format
Layer 2 · claimseach fact vs retrieved data
Sendwarmup · caps · hours
RAG knowledge basecatalog · nightly sync
Blocked → redraftclaim not in retrieved data

Architecture model. Scroll horizontally on smaller screens →

Product facts can only come from retrieval. If a claim is not in the retrieved data, the draft is blocked and redrafted.

Problem

A new wholesale business with one person running it needed prospect research, outreach, quoting, and support. I built an AI service for the repetitive work, with retrieved product facts, validation before send, and explicit approval for inbound quotes. The design separates drafting, validation, and permission to send.

Architecture

pipeline · outbound, replies, inbound RFQ
Prospect researchwebsite context
Draft outreachretrieved product facts
Validate claimsstyle checks + evidence
Outbound sendwarmup, caps, hours
Reply receivedcancel follow-ups
Classify replybuying signal or escalation
Operator handoffintent + thread context
Inbound RFQauthenticated webhook
Draft quoteretrieve + validate
Human approvalapprove, edit, reject
Approved sendotherwise stays a draft

Architecture model. Scroll horizontally on smaller screens →

Illustrative paths for outbound, replies, and inbound quotes. Sends pass validation; inbound quotes require human approval.
  1. Prospect ingestion and researchEach prospect gets an AI research pass over its website before any outreach is drafted.
  2. Personalized first touchInbox round-robin across warmed sending accounts, a warmup ramp, per-day frequency caps, sending-hours windows, and bounce-rate auto-pause.
  3. Reply detection and classificationReplies are classified by the Claude API as interested, buying signal, knowledge wall, not interested, or hostile, and routed accordingly.
  4. Draft-first responses and sequencingMulti-touch follow-ups with distinct angles, auto-cancelled the moment a prospect replies. Scheduled sends re-draft themselves if the thread has moved.
  5. Buying-signal handoffProspects showing intent are handed to me with the thread, and a daily digest summarizes everything else.
  6. Inbound quote requestsStorefront form to HMAC-verified webhook to spam filter to a Claude-drafted quote to a Telegram approve, edit, or reject prompt to a delayed send. Unapproved quotes save to drafts instead of sending.

Scheduled jobs operate over explicit status machines, suppression lists, protected contacts, and a RAG knowledge base synced nightly from the product catalog.

Controls that let an AI write to customers

inbound RFQ · approval path
RFQ formstorefront · HMAC webhook
Spam filter
Draft quotepricing · lead time
Telegram approvalapprove · edit · reject
Delayed sendscheduled delivery
Saved to draftsunapproved → draft

Architecture model. Scroll horizontally on smaller screens →

A quote never leaves without a human tap. Silence is a safe default.
telegram · inbound quote approval
sales engine · inbound RFQ New quote request from the storefront. Spam score: clean. Draft below, claims checked against the catalog.
To: prospect@example-buyer.com Subject: Re: bulk pricing request Thanks for reaching out. For the quantity you listed we can offer tiered pricing on a volume ladder. Lead time is quoted from stock on hand. Spec sheet and COA attached. [2 claims verified against retrieved product data]
ApproveEditReject
operatorApprove
sales engineScheduled. Sending with a human-like delay. Thread linked to the CRM account.
Rendering of the approval loop as it appears on my phone.
  • Two-layer validation before any send. Programmatic style checks for banned phrasing and formatting, then a second model pass that verifies every product claim against the retrieved knowledge base.
  • Knowledge-wall escalation. When the model cannot answer a question from retrieved data, it sends a short holding reply and pings me on Telegram with the conversation. I answer in Telegram, the answer flows back, and the engine composes the final email. It escalates instead of bluffing.
  • Approval at defined send boundaries. Inbound quotes go through Telegram approval. Helpdesk and mail integrations are draft-only by design with recipient allowlists. The only way an outbound customer message leaves the helpdesk is a human pressing send.
  • Structural leak prevention. Supplier names and internal cost basis are tagged at the field level and excluded from customer-facing retrieval.
  • Prompt architecture designed for caching. Modular layers for identity, task, style guardrails, company knowledge, and voice examples are ordered to make use of prompt caching.
  • Incident-derived controls. Pre-send guards are covered by unit tests. Append-only correction logs feed a set of codified writing rules.

Numbers

Monthly collectionsunder $4K to a record $37.8K, within 90 days
Gross margin38%
Active pipeline35 companies, quotes up to $218K
Infrastructure cost~$34/month
Operational stack replacing CRM, ERP, helpdesk, SDR~25,000 lines of code
Revenue and margin figures appear on my resume. Collections are cash received, not bookings.

The operational stack around it

Procurement, storefront, compliance, and document tooling

The engine is one service in a set of tools I built so the business could run without CRM, ERP, helpdesk, or SDR software:

  • Procurement analytics over $7.5M of purchase history, 2,715 purchase orders, and 95 suppliers: price trends per material, lead times per supplier, spend rollups, open-order tracking, and supplier reliability.
  • B2B storefront of 1,200 products with 80+ SEO ingredient guides, co-built on Astro with Cloudflare Pages and a Cloudflare Worker routing over an existing Shopify store, its quote forms wired directly into the engine.
  • Organic growth as a controlled experiment. 87 treated pages against a 45-page holdout, scored on quote requests rather than clicks, with a kill rule for any lever that failed to separate. Treated pages reached 17.9 impressions per page against 6.3, and site-wide clicks rose 81% in 28 days.
  • Compliance tooling that reads the PDF text of purchase order, supplier invoice, packing list, and certificate-of-analysis chains and mechanically cross-checks numbers, dates, batches, and organic claims for USDA Organic audits. Now a mandatory pre-ship gate.
  • Document generation for invoices, purchase orders, and a self-contained e-signature NDA flow with consent capture and an audit trail.
  • Packaging mockup generator that renders all 1,200 catalog products as photoreal pouch mockups in about 30 minutes, using displacement mapping and a custom post-process to restore lighting in dark label regions.

Explore the portfolio

Selected workFour systems and their outcomesAds optimization engineClassification, evaluation, verified mutationsAI sales engineRetrieval, claim validation, human approvalAttribution platformTenant isolation and client economicsAgent orchestration platformIsolated worktrees, guardian policy, durable jobsWebsite re-platformMigration, visual verification, rollbackHow I workBackground and engineering principlesStart a conversationandreasengelbertson@gmail.com
↑↓ navigate ↵ openSearch stays in your browser