OK, itโs Tuesday, not Sunday (Iโm away on vacation). Last week I let Claude Code (Opus 4.8) loose on an idea thatโs been rattling around my head for ages - a multi-persona RFP Marketplace. It built the thing in ~20 minutes over plane wi-fi. This weekend, coffee in hand, I did the dry run and kept building on it.
๐๐ผ๐ฟ ๐๐ต๐ฒ ๐ฏ๐๐๐ถ๐ป๐ฒ๐๐ ๐ณ๐ผ๐น๐ธ๐
The concept: optimise the procurement loop (think Sourcewell with AI Agent support) . Every procurement runs the same painful pipeline: ๐๐๐๐๐ฒ โ ๐ฅ๐ฒ๐๐ฝ๐ผ๐ป๐ฑ โ ๐๐๐๐ฒ๐๐.
- A buyer issues an RFP.
- Suppliers respond, often days, weeks and sometimes months of writing.
- The buyer assesses every response - again, often days and weeks of reading and scoring.
Slow and effort-heavy on both sides. The marketplace puts all three personas around one central hub and adds agentic support exactly where the grind is - ๐ณ๐ฆ๐ด๐ฑ๐ฐ๐ฏ๐ฅ๐ช๐ฏ๐จ and ๐ข๐ด๐ด๐ฆ๐ด๐ด๐ช๐ฏ๐จ.
In the Marketplace - submitters issue RFPs, defining their own fields and weighted scoring criteria. Responders upload their company knowledge once. An agent vectorises it and drafts responses grounded in their own material which they then edit. Assessors (the buyers) get an automated assessment of each response against their criteria - scored, with a written rationale and evidence quotes pulled straight from the response.
๐๐ผ๐ฟ ๐๐ต๐ฒ ๐๐ฒ๐ฐ๐ต๐ป๐ถ๐ฐ๐ฎ๐น ๐ณ๐ผ๐น๐ธ๐ - ๐ง๐ต๐ฒ ๐ฎ๐ฟ๐ฐ๐ต๐ถ๐๐ฒ๐ฐ๐๐๐ฟ๐ฒ (๐๐ต๐ฒ ๐ณ๐๐ป ๐ฝ๐ฎ๐ฟ๐)
A few principles I handed it up front as Gherkin requirements - and it stuck to them:
- ๐๐ผ๐ฐ๐ฎ๐น ๐๐๐ , by design. Inference runs on a local Ollama model with a Chroma vector store for RAG (๐ฏ๐ฐ๐ต๐ฉ๐ช๐ฏ๐จ ๐ฆ๐ข๐ณ๐ต๐ฉ ๐ด๐ฉ๐ข๐ต๐ต๐ฆ๐ณ๐ช๐ฏ๐จ).
- ๐ ๐ต๐ฎ๐ฟ๐ฑ ๐๐ฝ๐น๐ถ๐ between front and back-ends. Static per-persona front ends talk to a backend API. The backend never calls the agents directly.
- ๐๐ผ๐ฏ + ๐ฎ๐ด๐ฒ๐ป๐ ๐ผ๐ฟ๐ฐ๐ต๐ฒ๐๐๐ฟ๐ฎ๐๐ถ๐ผ๐ป. The integration boundary between the two halves is a single Postgres job queue. The backend just writes a job into the database. A separate job runner polls and safely claims the work; an orchestrator then dispatches it to independent agent services - a vectoriser, a responder agent, an assessor agent - each its own process.
Why bother? Each tier develops, scales and fails independently, every step is auditable, and you can throw more workers at the queue without touching the web app.
Still very much a POC, and the LLM output is a first draft a human refines - but the end-to-end loop works: issue an RFP, generate a grounded response, get a cited assessment on a dashboard (๐ข๐ญ๐ญ ๐ช๐ฏ๐ต๐ฆ๐จ๐ณ๐ข๐ต๐ฆ๐ฅ ๐ต๐ฐ ๐ฐ๐ฑ๐ต๐ช๐ฎ๐ช๐ด๐ฆ ๐ต๐ฉ๐ฆ ๐ฑ๐ณ๐ฐ๐ค๐ฆ๐ด๐ด).
Genuinely impressed with where the tooling is. Still a crazy, awesome world. More to come.
