Skip to main content
Back to work
02VERTICAL AI CRMLive

Denver Trades

A vertical CRM for spice and agri exporters built on real customs records. It surfaces buyers who provably import what you sell, scores them, and drafts the first outreach.

The hard part

Turning messy customs filings into a buyer score an exporter will actually act on — the model is only useful if they trust the number.

  • Next.js
  • Supabase
  • Vector search
  • Customs shipment data
  • Gemini
  • WhatsApp Business API
denver-trades.vercel.appDenver Trades pipeline showing scored importers, shipment volumes, and the demand feed
The deal pipeline. Scored importers with shipment volume and HS-code match, alongside the inbound demand feed.

01 / What it does

A CRM that already knows who buys what.

An exporter’s hardest problem is not managing deals, it is finding the right buyer in the first place. The default workflow is buying a cold list, emailing a few hundred companies, and hoping. Meanwhile the answer is sitting in public customs records: every shipment, every importer, every commodity, every lane.

Denver Trades starts from that data. Search a commodity and it returns importers with verified volumes, source countries, and the suppliers they already buy from, each scored on how well they fit your book. Outreach is drafted against their real import history, which is why it reads as informed rather than as a template.

The second half of the product is intake. Trade negotiation happens on WhatsApp, so inbound RFQs are parsed into structured demand cards rather than left to be re-typed into a CRM nobody updates.

02 / Features

Five layers between a commodity and a signed deal.

01

Customs intelligence, not estimated intent

Most B2B prospecting tools sell you inferred interest. This one pulls actual shipment history, HS codes, port data, and existing supplier relationships for importers worldwide. The difference between a buyer who might want black pepper and a buyer who provably imported forty tonnes of it last quarter is the entire product.

02

AI buyer-fit scoring

Every company in the pipeline gets a 0 to 100 fit score computed from commodity match, import frequency, volume band, and trade-lane alignment. Scores enrich automatically on import and update as new shipment data arrives, so the exporter works the best leads first instead of the newest ones.

03

WhatsApp demand capture

Commodity trade runs on WhatsApp. Inbound RFQs are parsed into structured demand cards carrying product, quantity, incoterm, port, and deadline, then surfaced in the pipeline with a one-tap quote action. No manual CRM data entry, which is the reason most trade CRMs go stale within a month.

04

Trade Copilot

An agentic assistant grounded in the customs data rather than general knowledge. Ask it to find US buyers for a commodity and it returns real importers, scored. Ask about a market and it returns demand by destination with benchmark prices. Ask it to draft outreach and the opener cites the buyer's actual import history.

05

Nine-stage trade pipeline with document audit

Generic CRM stages do not describe a commodity deal. This pipeline runs from new lead to shipped across nine trade-specific stages, with document audit built in for bill of lading against letter of credit compliance. The taxonomy came out of the domain, not out of a template.

03 / Architecture

The data is the moat. The AI is the interface.

  1. Customs data

    Shipment records

  2. Enrichment

    HS code · lanes

  3. Fit score

    0–100

  4. WhatsApp

    RFQ intake

  5. LLM layer

    Parse + draft

  6. Pipeline

    9 trade stages

Customs shipment records are enriched and scored on import. Inbound WhatsApp RFQs are parsed into the same pipeline, so outbound discovery and inbound demand converge on one deal record.
Data layer
Customs shipment records normalised by importer, commodity, HS code, and trade lane. This is the asset the product is built around; everything else is a way of getting at it faster.
Search
Vector similarity over company and commodity descriptions so a search for a commodity surfaces adjacent products and buyer profiles that a keyword match would miss. Results are enriched with shipment history on import.
Scoring
A 0 to 100 fit score combining commodity match, import frequency, volume band, and lane alignment. Recomputed as new shipment data lands, so the pipeline reorders itself rather than going stale.
LLM layer
Inbound WhatsApp RFQs are parsed into structured demand cards (product, quantity, incoterm, port, deadline). Outreach drafting cites the buyer's real import history and renders in the buyer's language, with English, Spanish, and Arabic supported.

04 / Why this matters

Vertical AI, built the way it should be.

Denver Trades is the clearest example of the pattern I would recommend to anyone building in a vertical: find the proprietary or under-used data in your domain, build the workflow around that data, and use the model as the interface rather than the product. A generic chatbot bolted onto a CRM would have been faster to build and worth nothing.

It also demonstrates the analyst half of the work. The nine-stage pipeline taxonomy, the scoring inputs, and the decision to make WhatsApp the intake surface are all domain research decisions, made before any code. That is the same discipline I bring to a client engagement.

If your business has data nobody has built a workflow around yet, that is the conversation worth having.

Next

This is the kind of vertical AI product I build.

If there is data in your industry that nobody has turned into a workflow yet, that is worth an email.