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

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.
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.
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.
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.
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.
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.
Customs data
Shipment records
Enrichment
HS code · lanes
Fit score
0–100
WhatsApp
RFQ intake
LLM layer
Parse + draft
Pipeline
9 trade stages
- 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.