Selected work

A few engagements, told plainly.

Representative engagements across our four practices — what the problem was, what we built, and what it actually changed.

Start a conversation →
representative · anonymised · real references on request
Representative, not theatre

These are representative engagements — anonymised composites that convey the shape and quality of the work, not claims about a specific named client. We name a client, their logo, or their numbers only with their permission, so you won't find a borrowed logo wall here. Every outcome below is something we shipped or made possible; we don't quote ROI percentages we can't stand behind.

01AI Platforms

An agentic fraud-review desk that drafts the decision — and cites why

Fintech · payments · ~120 staff · Nordics/EU

Challenge

Risk analysts were reviewing every flagged transaction from scratch — cross-referencing scattered policy PDFs, sanctions notes, and prior decisions by hand. Backlogs grew faster than headcount, and no one could later prove why a case was approved or declined.

Approach

We built an agentic review workflow that drafts a recommendation for each flagged case — gathering the signals, retrieving the governing policy, and proposing approve, decline, or escalate with its reasoning — while a human analyst stays the decision-maker. A separate copilot answers policy questions grounded only in the firm's own documents. We worked evaluation-first: a graded eval set and guardrails came before the agent, not after.

What we built
  • An agentic case-review pipeline (Node/TypeScript) that gathers signals, retrieves the governing policy, and drafts an approve/decline/escalate recommendation with cited reasoning — every action logged for audit
  • A RAG policy copilot over the firm's policy, sanctions, and onboarding documents (pgvector, hybrid retrieval) with a cite-or-abstain contract — it names the binding clause or says it doesn't know
  • A human-in-the-loop desk where analysts accept, edit, or override each draft; overrides feed back as labelled examples, and the agent never auto-decides high-value or sanctions-adjacent cases
  • A guardrail layer — prompt-injection screening on retrieved text, PII redaction, confidence thresholds that force escalation, and a rule that an uncited claim is treated as an abstention
  • A graded eval harness (golden decision set + an LLM judge on citation faithfulness) wired into CI, so model, prompt, and retrieval changes are scored before they ship
Outcome

Analysts moved from reviewing every case cold to confirming or correcting a cited draft — clearing the standing backlog and leaving each decision with a logged, source-linked rationale a reviewer or auditor can reconstruct. Policy answers now arrive with the binding clause attached, or with silence instead of a confident guess.

TypeScript / NodePython (evals)Postgres + pgvectorClaude (agent + RAG)LLM-as-judge CIPayments integration
02SaaS on Demand

One operations platform for nine clinics across three countries

Veterinary care · ~9 clinics · ~70 staff · DK/SE/NO

Challenge

A growing veterinary group ran nine clinics across three countries on a generic practice tool plus a sprawl of spreadsheets. Patient histories were siloed per site, medicine stock was counted by hand, and each country billed in its own currency — so month-end consolidation took days and never quite reconciled.

Approach

We built a bespoke multi-tenant platform where each clinic is its own tenant, but a patient's record follows them to any branch. Booking, clinical notes, prescriptions, and stock live in one system; invoicing is multi-currency with each country's VAT and rounding handled correctly; and a group dashboard rolls every site up to a single, reconcilable view.

What we built
  • A multi-tenant clinic model — per-site isolation for staff, schedules, and stock, with a shared patient record that follows the animal to any branch
  • Per-clinic medicine and consumables inventory with batch/expiry tracking and low-stock alerts, replacing the manual count spreadsheets
  • Multi-currency, multi-VAT invoicing (DKK/SEK/NOK billing, EUR supplier costs) with country-correct tax and rounding, and a daily FX snapshot stored against each invoice
  • A group operations dashboard consolidating revenue, utilisation, and stock across all nine sites in one reconcilable view
  • Role-scoped access (vet, nurse, front desk, group owner) and a client portal for appointment history, prescriptions, and invoices
Outcome

Month-end group consolidation went from a multi-day spreadsheet reconciliation to a same-day close. A patient arriving at any of the nine clinics now has their full history on screen, rather than a phone call to another site.

Next.jsTypeScriptNodePostgreSQLStripeCaddy / VPS
03Consultancy

EU AI Act readiness — a posture they could act on, not a certificate

HR-tech · ~70 staff · Series A · Nordics + DACH

Challenge

An HR-tech scale-up whose product screens and ranks candidates had quietly become a high-risk AI deployer under the EU AI Act — and a procuring enterprise's security questionnaire had just asked them to prove it. They needed to know exactly where they stood, what to fix in-house versus buy in, and who owned what, before the obligations bit.

Approach

Over a fixed-scope engagement we mapped their actual AI surface against the Act's obligations, separated genuine high-risk uses from lower-risk ones, and turned the gaps into a sequenced, owner-assigned plan. Counsel from an operator who still ships — so every recommendation was build-versus-buy honest and costed against their real roadmap.

What we built
  • A scored readiness assessment across six governance dimensions, mapped article-by-article to the Act's provider and deployer obligations (Art. 26, Art. 50), citing binding text and flagging where the Digital Omnibus moved the dates
  • A risk register classifying each AI use — candidate ranking as high-risk; resume parsing and chat assistance as lower-risk — so effort went where the law actually lands
  • A build-versus-buy decision memo: build human-oversight and logging controls in-house, buy a model-monitoring layer, defer a full governance suite until volume justified it
  • A RACI for AI governance naming a single accountable owner, plus a lightweight model inventory and incident-logging process that fit their existing workflow
  • A sequenced 90-day remediation roadmap tied to the real deadlines — Art. 50 transparency (Dec 2026) ahead of the deferred high-risk deployer obligations (now Dec 2027)
Outcome

They walked away with a defensible, evidenced answer for the enterprise procurement questionnaire and an owned remediation backlog already in their sprint board. The biggest single change was operational: AI governance moved from an anxious open question to a named owner with a dated plan.

EU AI Act mappingRisk classificationBuild-vs-buy memoGovernance RACIModel inventory90-day roadmap
04Marketing Strategy

Making a good product legible: positioning and an owned-channel engine

B2B SaaS · ~25 staff · Nordics/EU

Challenge

The product was genuinely good and the team knew their domain cold — but the market couldn't tell. Growth leaned entirely on founder networks and paid ads that stopped the moment spend paused, and the site read as a feature list rather than a point of view.

Approach

We started with positioning — naming the specific problem the product solves and the buyer it serves — then turned that narrative into an SEO and content system built as infrastructure, not a campaign. Editorial, technical SEO, internal linking, and conversion paths were treated as one connected machine the team could run without us.

What we built
  • A positioning document and messaging hierarchy: a one-line category claim, three proof pillars, and objection-handling copy reused across site, sales decks, and onboarding
  • A topic-cluster content architecture (pillar pages plus supporting articles) mapped to real buyer search intent, with an editorial brief template the in-house team writes against
  • A technical SEO foundation: clean information architecture, internal-linking rules, structured data, fixed crawl/index issues, and Core Web Vitals brought into the green
  • A conversion redesign of the highest-intent pages — clearer hierarchy, honest social proof, one primary call to action per page
  • A lightweight measurement setup and a quarterly content-ops playbook so the engine keeps running in-house
Outcome

The company shipped a coherent narrative and a content engine it now runs itself, publishing on a steady cadence against a clear topic map — with a growing library of pages ranking for buyer-intent terms, a measurable share of demo requests arriving through organic search rather than paid, and positioning the sales and product teams reuse verbatim.

Next.jsTypeScriptSchema.orgSearch ConsolePlausibleHeadless CMS
05SaaS on Demand

A quieter donation flow, and a board pack that drafts itself

Charity / non-profit · ~25 staff + volunteers · Nordics

Challenge

Donations ran through a dated hosted form that dropped roughly one in seven gifts at the payment step. And every quarter, two people lost most of a week hand-assembling the board and funder impact pack from four exported spreadsheets.

Approach

We rebuilt the giving flow as a fast, accessible, multi-currency checkout on Stripe, then put a small reporting pipeline behind it that turns the same donation and programme data into a board-ready pack — with a light AI assist that drafts the narrative and always cites the figure it is summarising. The point was leverage, not headcount.

What we built
  • A rebuilt one-page donation checkout (one-off and recurring) on Stripe — Apple/Google Pay, SEPA, proper card retries, fully keyboard- and screen-reader-accessible
  • A multi-currency reconciliation layer that ties every gift, refund, and Gift-Aid-style uplift back to the programme it funded
  • An automated quarterly pipeline that compiles donations, programme spend, and reach into a single versioned board and funder pack
  • A cite-or-abstain drafting step that writes the narrative summary and footnotes the exact figure behind every claim, leaving a human to approve before send
  • A lightweight admin console: donor receipts, recurring-gift management, and one-click pack export to PDF
Outcome

The new checkout recovers gifts the old form was silently dropping at the payment step, and the quarterly board and funder pack now arrives as an approved first draft the same day the quarter closes — turning close to a person-week of spreadsheet assembly into a review-and-sign task.

Next.jsTypeScriptStripePostgresPython (reporting)Caddy / VPS
Also ours

Software we build and run ourselves.

Not a client's — so we can show you the whole thing. Two you can open right now.

01

The client platform

live

The system this very site runs on

Private client portals, time-tracked to the hour, multi-currency invoicing, threaded conversations and day-accurate subscription billing — the same platform every engagement above is delivered through.

Live · runs every GrowBeyond engagement
02

GrowBeyond Studio

live · public

Compliance · EU AI Act · live & public

A free 15-minute EU AI Act readiness diagnostic — a six-dimension posture score against the deployer obligations, with a guided path to close the gaps. Open to anyone today.

03

Klariad

in development

EU compliance cockpit · AI Act · GDPR · NIS2

Know where you stand across the regulations that touch you, with an advisor that cites the binding article and abstains when it can't. Where the design language you're reading began.

References

Named, when permissioned.

The cleanest signal a vendor can send is restraint about other people's names.

Ask for an introductionThe strongest proof is a conversation with someone we've worked for — ask, and where a client has agreed, we'll introduce you directly.
Start a conversation →