Our Work
Fifteen automations and applications in service: invoicing, accounting, content, compliance. What was built, for whom, and what changed.
What we have
Fifteen projects in service. For each one: what was built, what it replaces, and what it saves. The figures come from execution logs, not from a brochure.
Thirty minutes to talk it through — no commitment
How it works
Three steps, and you decide at each one whether we carry on.
And in your business, what takes an hour too many?
Thirty minutes is enough to know whether there is anything to be done in your business. If there is, the Diagnostic draws up the list of what can be automated, with figures. If there is not, I will say so.
The technical detail — open it if that interests you.
Automated monthly invoicing
A month of invoicing: from one hour to thirteen seconds.
At the end of every month, a full month of work had to be invoiced by hand. Open the calendar, find each engagement, apply the right rate depending on whether it fell on a weekday or a weekend, account for multi-day engagements, travel and administrative fees, then copy it all into a spreadsheet and write the invoice.
An hour of repetitive work, every month, on pricing rules you know by heart but can still misapply on a tired evening. And a pricing mistake only surfaces when the client spots it.
The calendar is read automatically. Each engagement is priced by the real rules — weekday or weekend, duration, travel, fees. The result is written to the tracking spreadsheet, the invoice goes out as HTML by email, and a comparison table projects the current month against the previous one.
A full month of invoicing runs in thirteen seconds, from calendar to sent email. No more re-entry: the pricing rules are written once and applied identically every month.
An n8n workflow triggered at the start of the month. The agenda is read through the Google Calendar API, rates are computed in a code node — that is where the business rules live, not in a language model — results are written to Google Sheets through the API, then the invoice HTML is generated and sent over SMTP. The current-month projection is computed in the same pass and attached to the email.
Any business that invoices per engagement is concerned: a practice billing hours, a tradesperson billing jobs, an agency billing interventions. The principle is the same — your pricing rules already exist, they simply live in your head rather than in a machine. The work is writing them down, once.
Till reconciliation for restaurants
An hour of reconciliation per trading day, removed.
Every trading day, till reports have to be reconciled against the accounting summary: Z number, gross takings, VAT breakdown, and the split between cash, card and transfer payments.
An hour per trading day spent copying figures from one document into another. It adds nothing, and it is exactly the kind of task where a misaligned row goes unnoticed until the year-end accounts.
Two tools, deliberately different, because the two restaurants do not supply the same material. The first only has scanned thermal receipts: its PDFs are read by a vision model, and the extracted amounts feed three workbooks. The second has digital exports: everything is processed in the browser, so no accounting data ever leaves the machine.
Re-entry disappears. Cells that already hold a value are never overwritten, and discrepancies are flagged rather than silently corrected — we remove the re-entry, not the vigilance.
The first tool is a Flask application: PDFs converted to 300 DPI images, read by Claude as OCR, results written to the workbooks with openpyxl. The second is a React application running entirely in the browser: XLSX exports read with exceljs, and surgical editing of the destination file — only the targeted cells are changed in the sheet XML, so formulas and formatting survive untouched.
The same reasoning applies wherever two systems ought to talk to each other and do not: till and accounts, rota and payroll, orders and stock. And the lesson is worth keeping: we pick the technology to match the material you supply. If your data is already digital, there is no reason to pay a model to read it again.
Supplier price consolidation
646 references, 25 invoice formats, a single table.
A restaurant buys from around thirty suppliers. Each one sends invoices in its own PDF format, and prices move between deliveries. Knowing what you actually pay today for a given item means reopening the invoices one by one.
Nobody does it, because it is two days of data entry. The result: you cannot see when a price went up, and you cannot compare two suppliers on the same item.
A script walks through every PDF invoice, extracts the product lines and consolidates them into a single workbook, one tab per supplier. For each reference, the most recent invoice wins — so the table is a current price list, not an archive.
646 references consolidated across 25 suppliers, where manual entry would have taken two days. The workbook regenerates as new invoices arrive.
Python, pdfplumber for extraction, openpyxl for output. Twenty-five distinct parsers, one per invoice format — two formats coexist at a single supplier. Deduplication by product code, VAT read from the invoices with reverse charge for exporting suppliers, and categories derived from the code prefix.
This is the most transferable case of all: any business buying from several suppliers has the same blind spot. The limitation is honest and worth knowing — a scanned invoice with no extractable text does not go through this path. That is precisely where reading by vision model takes over.
The AI chat on this site
Answering your questions right now, bottom right.
A visitor with a question at 10 p.m. does not wait until tomorrow: they close the tab. A site that sells automation and leaves its own visitors unanswered has a credibility problem before it has a conversion problem.
Questions arrive outside office hours, and they are often the serious ones — from someone comparing suppliers in the evening.
A conversational agent connected to the site's content, with memory of the conversation in progress. It answers common questions, points to the right page, and offers to book a call when the intent is clear.
It answers at night and at weekends. That is the advantage here: not time saved, but availability.
An n8n webhook receives the message, a code node prepares the context, a LangChain agent with a memory window queries a model through OpenRouter, and the answer returns through the webhook. Nothing is stored beyond the conversation.
You are testing it right now — the most direct demonstration on this page. The same setup connects to your catalogue, your opening hours, your delivery terms. The rule we apply to ourselves applies to you too: an assistant that does not know says so, and hands over.
Audityo — compliance with the EU AI Act
Classify your AI systems and produce your compliance file.
The European regulation on artificial intelligence applies. The question is no longer when to get compliant, but where you stand.
Most small businesses do not know which AI systems they already use. The site chatbot, the CV screening tool, the customer scoring, the assistant a colleague plugged in alone: it is an inventory before it is a compliance exercise.
Software that lists an organisation's AI systems, classifies them against the categories in the regulation, and produces the matching documentation. It keeps the inventory current rather than producing a frozen report.
A Distr'Action product, in service. A tool helps you classify and document — it does not make anyone compliant, and we do not promise that.
Next.js, Prisma on PostgreSQL, Auth.js authentication, Stripe payments, classification and document generation by Claude, PDF export. Multi-tenant isolation: one organisation's data is never visible from another.
If you use an AI tool in your business — and you probably do without having formalised it — the first step is knowing which one, for what, and with which data. For questions that go beyond the inventory you need a lawyer: we do not replace one.
CommunityOS — community management with human approval
Write, approve and schedule social media posts. Nothing goes out without human approval.
Posting regularly on social networks means writing, getting a review, then publishing at the planned time. For a small team, those three steps scatter across a word processor, a messaging app and the network’s own interface.
Tools that automate publishing publish. A draft sent too early, a time shifted by a daylight-saving change, an access token copied into a file: risks a small organisation cannot afford to discover after the fact.
An internal tool that brings writing, approval and scheduling together. Nothing is published without human approval: four-eyes review by default, the author never approves their own content. Scheduling in Brussels time, daylight-saving changes included. Chained audit log, two-factor authentication for managers, encrypted network tokens, emergency stop for all publications. Media library with usage rights and alt text. AI-suggested drafts are always reviewed before they are sent.
First real use: the post for the guide “Ten questions before you automate”, published from CommunityOS on 29 September 2026 on Laurent Marechal’s LinkedIn profile. Available today: publishing to a LinkedIn profile. In progress: LinkedIn company pages, access requested from LinkedIn on 28 September 2026. Planned: Facebook and Instagram, inbox, statistics. No usage figures: the tool has only just entered service.
Next.js and PostgreSQL, a separate worker for scheduled sends, Docker containers behind Traefik, hosted on a Hostinger VPS in the European Union. Public page: communityos.srv767464.hstgr.cloud.
If someone in your organisation posts on its behalf, the question is not the publishing tool: it is who reviews before sending, and what trace is left. CommunityOS is an internal tool, used first for our own publications.
Personalised playlists for radio listeners
An hour of curation per listener, down to seventy seconds.
A radio station offers its listeners a personalised playlist, built from their answers to a questionnaire: their age, the artists they name, the memories they share.
Genuinely curating those twenty-five tracks takes an hour: you have to respect the category quotas, the balance across decades, the share of French-language tracks, and exclude everything aired in the last three weeks. An hour per listener, Monday to Friday.
The selection is made by the code, from the catalogue, the quotas and the blocklist of recently aired tracks. The model only steps in afterwards, to write the reasoning behind each choice — and if its answer breaks the constraints, a second call corrects it.
An hour of curation down to seventy seconds, for one listener served every weekday. The email that arrives justifies each of the twenty-five tracks.
A sixteen-node n8n workflow: catalogue and blocklist loaded from Google Sheets, merged, deterministic selection by crossed language × decade quotas, a call to Claude through OpenRouter for the justifications, a validity test, a corrective call if needed, blocklist update, and the HTML email. A full GDPR pack ships with the delivery.
This is the demonstration that reassures managers who fear an AI will "make things up": the business rules decide, the AI explains. Wherever you have non-negotiable constraints — a chart of accounts, a nomenclature, a regulation — that is the division of labour to aim for.
SEO automation for three brands
Keywords, content and backlinks: SEO for three brands, unattended.
Doing SEO properly means tracking the keywords that matter, producing optimised content on a steady rhythm, and building links to the site — three different jobs, which each of Distr'Action's three brands has to cover.
Taken separately, each of those tasks is expensive in time or in outside help: keyword research and link building are rarely done in-house, and steady writing is the first thing to slip once the calendar fills up.
A single engine, connected to the three sites. It identifies the keywords to target, writes an article after checking the topic has not already been covered, publishes straight into the relevant site's database, and tracks average position and backlinks on a shared dashboard.
Fifty articles published on just one of the three sites between May and August 2026, with no human intervention. Keyword and backlink tracking runs alongside it, brand by brand.
One n8n hub drives keyword research, article generation and publishing, link building and rank tracking; a separate publishing workflow per brand, with a shared register of publications that stops two sites covering the same topic — the safeguard the early versions lacked, which kept looping over the same list.
The gain goes beyond content: it is the whole SEO workload — keywords, writing, link building, tracking — running without an agency or a full-time hire behind it. Few small businesses can afford sustained SEO; this is exactly what makes it possible.
Weekly show preparation
From two hours of preparation to three minutes.
Every show needs preparation: gathering the material, shaping it, structuring it against a running order.
Two hours per show, every week, on collection and formatting work that is largely mechanical.
A workflow gathers the material, shapes it to the show's format, and delivers the preparation document ready to use.
Two hours down to three minutes, measured on the automatic morning run.
A sixteen-node n8n workflow on a weekly schedule, with multiple sources and final formatting. A global error workflow raises an alert if the scheduled run fails.
Any recurring meeting that needs a briefing pack follows the same principle: leadership meetings, sales reviews, production stand-ups. The material already exists; gathering it is mechanical.
DreamOracle — consumer platform
A product carried end to end: design, build, acquisition.
A consumer platform for dream interpretation, with a personal journal and an app installable on a phone.
Carrying a consumer product all the way takes more than code: a visual identity, a mobile experience, an acquisition channel.
Design, development, a complete visual identity, an installable web app, and an acquisition campaign. The product exists and runs.
Live, installable on a phone, open to the public.
Next.js, Prisma on PostgreSQL, a progressive web app installable on iOS and Android, an SVG identity suite, and a visual generator.
If your project needs a product and not just an internal tool, this is the full chain you need: design, brand, build, go to market. The last three are the ones people underestimate.
L'Artpéro — events platform
Ticketing, payment and registrations, all online.
A cultural events organiser handled registrations and payments outside their own website.
Registrations scattered across a form, emails and manual transfers: lost time, and seats sold twice.
A complete platform: event listings, online registration, payment, and a management area for the organiser.
A single chain, from discovering the event to paying online.
React and Supabase for data and authentication, Stripe for payments.
Anything that is booked or signed up for follows the same pattern: workshops, training, consultations, rentals. The main gain is not online payment, it is the end of double entry.
TL Services — showcase website
A complete site, designed and live in four days.
A tradesperson with no online presence, whose potential customers nonetheless search for their services before picking up the phone.
Without a site, you do not exist in a local search. And quotes get requested by phone, at the hours when the tradesperson is on site.
A complete showcase site: services, a request form wired to email, legal pages, search optimisation and social sharing images, and a mobile call-to-action button.
Delivered in four days, from the first line of code to going live.
Next.js and React, sharing images generated on the fly, form wired to SMTP, Docker container behind a proxy with automatic certificates.
Four days is the order of magnitude for a tradesperson or freelancer starting from nothing. What takes time afterwards is not the site: it is deciding what you want to say on it.
Spotify playlist generator
No more hours spent building playlists track by track: in one sentence, let the tool build your personalised playlist.
Building a themed playlist means searching for every track, one at a time.
The time is not spent choosing the tracks, it is spent searching for and adding each one.
You describe the playlist in a sentence. The tracks are proposed, looked up in the catalogue, and the playlist is created directly in the user's account.
Between twenty-five and forty seconds from sentence to usable playlist.
An n8n webhook with access control at the entrance — a public endpoint without a safeguard is an open invoice. Tracks proposed by Claude, looked up through the Spotify API, playlist created and filled in batches. A fallback branch re-runs a title-only search for tracks missed on the first pass.
This is the most immediately understandable demonstration: from intent expressed in one sentence to a usable result, inside a tool everyone knows. The same pattern applies to any bulk creation inside a third-party tool.
A searchable historical library
Eight books of local history, searchable in one question.
Eight books on the history of one town, from 1876 to 2007, brought together into a single searchable library. You ask a question in plain language, the system finds the relevant passages across the corpus and answers citing its sources, book by book. The collection includes works still in copyright, used with the rights holders' agreement.
Automated video monitoring
The videos that matter, transcribed and filed hourly.
Following what is being said on a subject means watching hours of video, or not following it at all.
Nobody has time to watch. And a video you have not watched is information you do not have.
New videos from the channels you follow are spotted automatically, transcribed, cleaned and filed into a table you search by keyword. You read in two minutes what took forty.
Discovery call · Automation · AI solutions · Training · Blog · Contact