Application demo by Peter Heijnen. Not an official B Futurist page. Products, orders and customers in this demo are fictional.
B Futurist Ops Lab · proposal Contact
A perfume bottle on a steel packing table in a tidy beauty warehouse, with racks of boxed stock leading to an open loading dock.
Application · AI & Technology Solutions Lead

Turn AIexperimentsinto toolspeople trust.

A working preview of how I would own the technology outside Odoo: a Slack assistant that reads the ERP and never writes without a human, an AI framework for seventy colleagues, a clear build or buy method, and a review standard a partner takes seriously.

LiveClaude with tool calling
0writes without approval
8/8guardrail tests passed

Hero video: AI-generated warehouse scene, not B Futurist's real warehouse.

01Ask Ops · live

One assistant in Slack, reading the ERP for everyone.

Trading, Supply Chain and Finance ask the same questions every day: what is free to sell, what is late, when does the container land. This is the first small tool I would ship. Every ERP call lights up the shelf it read in the warehouse twin. Anything that changes data becomes an approval card for a named colleague.

Try

Warehouse twin

Demo data
An operations desk with a laptop, a printed pick list and fragrance samples.
Idle · 8 bays · 5 open orders
Selected bayTap a bay or ask a question
On hand-
Reserved-
Free-
Incoming-

The twin is driven by the assistant's real tool calls. Orange means "the model is reading this right now". It shows a reviewer, and a colleague, exactly what the AI looked at.

ops-questionsB Futurist · demo workspace
Channels
  • ops-questions
  • supply-chain
  • trading
Apps
  • Ops
Ops app
Morning. I read stock, incoming purchase orders and open sales orders from a demo copy of the ERP. I cannot change anything myself: if you ask me to, I create an approval request for Business Operations.
Real Claude call · fictional Odoo-shaped data20 left today
02AI framework

What data can go where, decided once.

Seventy people are already experimenting. A framework should make the safe path the easy path, not slow anyone down. This is a first draft I would test with each team in the first month: four data classes, three kinds of tools, and four review gates.

Data classCompany ClaudeERP partner AIFree chatbots
PublicWebsite, catalogue, brand infoAllowedAllowedAllowed
InternalProcesses, stock, non-personal ops dataAllowedIn OdooNot allowed
ConfidentialPrices, margins, supplier terms, contractsOwner + logReviewedNot allowed
PersonalCustomer and employee personal dataMinimised, named ownerReviewedNot allowed
Gate 1Sends to a customer or supplierA human approves before it leaves.
Gate 2Writes to the ERPApproval per change, or a tested automation with an owner and a log.
Gate 3Touches moneyPrices, payments and credit stay a human decision.
Gate 4Runs in productionHas an owner, a log, and a monthly look at errors and cost.
Live check against the draft

Describe what a colleague wants to do with AI.

03Build or buy

A decision you can explain in two minutes.

Every request gets the same six questions, weighted for this company. Move the weights and the recommendation and the radar move with them. The scores and costs are illustrative, to show the method, not a quote.

04Partner review

Hold the partner to scope, architecture and cost.

The largest part of the job: owning our side of a build someone else delivers. Here is the kind of review I would write on a delivery, using a made-up example: a partner ships an "order delay alert" from the ERP to Slack.

A shipment of beauty products being checked with a barcode scanner and a clipboard.
Goods in · AI image
What saying no sounds like
"It works in the demo. It is not ready until it survives a retry, a holiday weekend and a price change."
Review · fictional delivery v0.3

Order delay alerts, ERP to Slack

Four findings, two blocking. Not accepted yet.

Changes requested
Idempotent
Least privilege
Cost bounded
Observable
BlockingAlerts are sent twice after a retry

The webhook has no idempotency key, so a timeout plus retry posts the same alert again. People stop reading alerts that repeat.

AskKey on order id plus state change, store the last sent state, add a test that replays the same event.
BlockingOne admin API key with full write access

The integration only reads orders, but it runs with an admin key that can change prices.

AskA dedicated integration user with read access to sale.order and stock only, key in a secret store, rotation date agreed.
CostPolls the ERP every minute, around the clock

About 43,000 calls a month for something that changes a few dozen times a day.

AskTrigger on the state change, or poll every 15 minutes in office hours. Show the expected monthly cost.
Hand-overNo monitoring and no runbook

If it silently stops, nobody will notice for days.

AskA daily heartbeat in a channel, an error alert to an owner, and one page on how to restart and who to call.
05First 90 days

Understand first, then ship one thing that sticks.

Following the vacancy's own order: learn how work really moves, take technical ownership of the running partner project, and deliver one focused improvement with Business Operations.

Weeks 1 to 3Listen
  • Sit with Trading, Supply Chain, Warehouse, Finance and People & Culture. Follow the handovers.
  • Map the systems around Odoo: Workspace, Slack, Beautinow, carriers, partners.
  • Read the running partner project: scope, architecture, open risks.
  • Collect every AI experiment already in use.

Out: a one-page map and a ranked list of ten problems, agreed with the Team Leader.

Weeks 4 to 8Own
  • Take technical ownership of the partner build, with a review standard.
  • Ship the first small tool with Business Operations.
  • Run the draft AI framework past each team.

Out: one tool in daily use, measured before and after.

Weeks 9 to 13Scale
  • Turn the best local experiments into robust, reusable tools.
  • Short sessions per team on working well with AI.
  • Propose the roadmap for the next two quarters.

Out: framework v1, a roadmap and a monthly report on adoption, errors and cost.

A colleague explains a process on a whiteboard full of boxes, arrows and sticky notes.
Team session · AI image
Enabling seventy people

Teach without making anyone feel stupid.

Short sessions on real work from that team, not a generic AI training. One shared place for prompts that work. Office hours every week. The measure is not how many people used AI, it is how much manual work and how many errors went away.

Hours savedper team, per month
Errors gonebefore vs after
Costper tool, per month
06How this demo is built

A builder's role before an AI role.

The vacancy is right: reviewing a partner and shipping software that keeps working both need real engineering. So here is what sits behind the Ask Ops box, and how I tested it.

Architecture: the browser calls a Cloudflare function, which checks origin and limits in a D1 database, then runs a Claude tool loop against Odoo-shaped data. Writes become approval requests. Browserthis page Pages function/api/ask · origin check D1 · limits per IP and day Claude tool loopmax 5 turns · system prompt Read toolsproducts · stock · orders request_actionnever writes · approval card
Engineering choices
  • Secrets stay server side.The Claude key is an encrypted secret on the project, never in the page.
  • Abuse and cost are capped.Origin check, 20 calls per visitor and 500 per day, counted in D1 because KV is not consistent enough for counters.
  • Least privilege by design.The model only gets read tools. The one "write" tool cannot write.
  • Input is data.The system prompt treats every message as data, not instructions. Confidential fields (cost, margin) are refused.
  • Observable.Every answer returns its tool trace, time and token count, and the twin shows what was read.
  • In production the in-memory data becomes Odoo's JSON-RPC API under a read-only integration user, and Slack's Events API replaces this form.
Test set · live endpoint

Results from the run before publishing.

QuestionExpectedResult
07Who is applying

Peter Heijnen. I build things that have to keep working.

I run a fish-processing company with staff in the Netherlands and an AI studio, Lazy Lizard Group. I am moving back to the Netherlands with my family in spring 2027 and can start remotely before that.

Built and run

ClawFC, an autonomous AI football league

External AI agents register a player through an MCP server or a REST API, train between matchdays and play.

Postgres with row-level security · TypeScript edge functions · scheduled jobs · Cloudflare Worker for MCP and REST · WAF rate limits · a security fix on write access after an audit
In daily use

app.heijvis.nl

The staff app for my own company: people, hours and jobs. Built for colleagues who are not technical, and used by them.

Like this page

Avila Werkplaats

A hotel operations demo with a live Claude guest inbox, rate limits in D1 and a bilingual interface. avila.lazylizardai.com

Honest about the fit. The vacancy asks for a software engineer first. My background is building and running my own products end to end, not years inside an engineering team. What I bring is the habit of owning a business and its systems, and four years of building AI systems that real people use. I would rather show you than tell you: in the first interview I will walk you through something I built and every decision behind it, as your process asks.