longdash

AI engineering studio · Netherlands

Bring us the problem, not the AI solution.

We automate manual work, improve the systems you already use, and work out where AI genuinely pays off.

Thirty minutes, no obligation.

What people arrive with
  • Too much in Excel
  • Retyping by hand
  • Systems that don't talk
  • Reporting eats a day

01What we build

  • Workflow automation
  • CRM & internal software
  • AI assistants
  • Agents & documents
  • Data, dashboards & forecasting
  • Training & handover
See what we build

03Working together

You speak to the people who build it

  • Roy VeenboerData scientist · AI engineer
  • Laurens BosSoftware engineer · AI engineer
Book a call

Prefer email? info@longdash.nl

01What we build

What you arrive with, and what it becomes

Most projects combine two or three of these.

  • Automate repetitive work that travels between email, documents and your other software.

    Email & ordersReading documentsChecksIntegrations
  • Custom software for processes that have outgrown spreadsheets and off-the-shelf tools.

    Custom CRMQuote toolsCustomer portals
  • Answers drawn from your own documents and data, with the source attached.

    Internal searchKnowledge baseSource citations
  • Software that reads incoming documents, checks them and prepares the work that follows.

    InvoicesCase filesFirst drafts
  • Reporting, forecasts and operational figures in one place, on one set of definitions.

    One set of definitionsLive dashboardsForecasting
  • Part of every project: short sessions with a team's own real work on screen, tailored per role.

    Real taskWalked through togetherOn their own
Not sure what you need yet?
See an exampleWorkflow automation01 / 06
Mail
Read
Check
System
Handled

How we build it

A fixed price per phase. You commit one phase at a time, and after the first you decide about the rest.

011-2 weeks

Understand

We sit with the people doing the work and write down how the process runs today.

You give us a day of your team.

021 week

Decide

We pick the part with the clearest gain and a realistic path to building it, and put a price on that phase.

You decide whether we carry on.

034-10 weeks · ongoing

Build & embed

We build and test around the systems already in place. Along the way we train the team and document how everything works.

You get a working version every week.

What we work withPick one
01 / 07

Prototyping. Something runs in week one, even if it is wired to nothing yet.

What we hold to
  • AI where it earns its place

  • As few moving parts as possible

  • We build around your systems

  • Maintainable without us

  • Privacy from the first design decision

  • Handover is written while we build

  • A problem sometimes turns out to be an agreement between two departments, or a setting in software you already pay for. We would rather tell you that than start a project.

  • Every extra component is a thing that can fall over and a thing somebody has to understand. The simplest arrangement that does the work wins.

  • Replacing what a company already runs is rarely worth it, so most of the work is in the integrations around them.

  • Ordinary language, ordinary libraries, and nothing only we understand. Your team or the next builder has to be able to carry on with it.

  • The GDPR and the EU AI Act decide where data sits and which model gets to see it. That is a design choice at the start, not a check at the end.

  • Code, accounts and environment are in your name from day one, and the documentation comes about along the way. Not in the last week.

02Work

Four systems, running

Two products of our own, and two systems running inside other companies.

GkazasInternal

Internal system · Orders, sales and purchasing

An order that prepares itself

The situationGkazas imports olive oil and sells it to wholesalers and shops. Orders arrived as email with an attachment and were retyped into Salesforce by hand, and purchasing was planned on instinct and a pivot table. We turned that into two things running on the same data: an order desk that prepares the work, and a monthly forecast per article that purchasing steers on.

Document processingSalesforce integrationPricing logicMachine learningForecasting
One model call per email
Classify and extract, with the sentence every figure came from attached. That is the whole of the language model in it.
Money is ordinary code
Prices come from the live price list, discounts from the promotion calendar per wholesaler per week, and the carrier from the rule table. The model touches none of it.
Nothing leaves without a person
Salesforce is shown a prepared transaction and the customer gets a draft in the existing thread. Someone reads it over and presses send.
Doubt is an outcome
An unknown article, a customer that cannot be matched, a complaint rather than an order: anything uncertain goes to a separate pile for a person.
A model per article
For every article a machine-learning model is weighed against a handful of simpler statistical ones, on a test that walks forward a month at a time. Whichever predicted that article best wins. For articles that only move now and then, that is often the simple one.
A range, not a number
Every forecast comes with a low and a high, calibrated against the months that have since been and gone. So you can see per article which are worth steering on and which need buying wide.
Promotions are in the model
The same promotion calendar the order desk prices from goes into the model as a feature. A planned promo week changes the forecast before it happens.
It lands where they already work
Retrained every month and pushed back into Salesforce, so purchasing sees the numbers in the system they already have open.
  1. 01

    The email arrives

    Attachment and all, exactly as the customer sent it.

    Inbox

    purchasing@example.com

    Order week 38

    Hi, here is the order for week 38.

    Delivery to the depot as usual.

    order-4471.pdf
  2. 02

    The lines are read

    Article numbers and quantities out of the attachment.

    order-4471.pdf
    • EVOO-500120
    • SOW-2540
    • TAP-18015
  3. 03

    The customer is matched

    Joined to the account that exists, with two years of history.

    Customer recordMatched

    Example Company

    Account
    Wholesale
    Standing terms
    Tier B
    Last order
    9 Sep
  4. 04

    The price follows the agreement

    From the price list, with this week's promotion applied.

    Price list
    Tier B, promo week

    € 4,318.50

  5. 05

    The draft is waiting

    Confirmation written, nothing sent yet.

    Order confirmationDraft

    Example Company

    Order 4471

    • EVOO-500120
    • SOW-2540
    • TAP-18015

    € 4,318.50

    Check and send
  6. 06

    Purchasing works ahead

    A trained model per article, with a range around it, retrained every month.

    Purchasing forecast
    EVOO-500Per article, per month
    HistoryForecastRange
by
longdash
BrandclickInternal

Internal system · Marketing intelligence

Eight sources, one work list

The situationBrandclick is a marketing agency running client sites. The numbers they steer on sat in as many dashboards as there are integrations, and both the weighing and the fixing happened by hand. Now the system decides what comes first on Monday, and an agent writes the fix for it.

IntegrationsAgentsDashboardsQuality gate
Everything lands in one database
Search performance, advertising, two search engines, product listings, visitor figures, a crawl of the site itself and a manual ranking export. A client is a folder, so a second brand is one more folder.
Every figure comes from ordinary code
The work list and the score come out of Python, not out of a model. The same data gives the same list today and in two weeks, and every item carries the reason it is there.
An agent solves the item
For an item on the work list an agent writes the fix: it reads the brief, the house voice and the fact base, and produces the text. Several run alongside each other, one per item.
And checks its own work
Every draft goes through the quality gate: invented figures, prohibited health claims, missing sources. If it fails, the agent gets the error list back and tries again, three times at most. If it still cannot, it delivers nothing and reports what was wrong.
Two models, one of them a critic
For the interpretation on the dashboard one model writes and the other reads it back, and Python checks every figure in the text against the database. If that fails, the dashboard shows no interpretation and says why.
It never publishes
Everything ends as a draft. The marketer reads it over to check the item is really solved, and puts it live.
Sources
  • Search performance
  • Advertising
  • Bing
  • Product listings
  • Visitor figures
  • Rankings
  • Follow-up questions
  • The site itself
One database

Scored deterministically

The agent
  1. Item off the work list
  2. Agent writes the fix
  3. Quality gate
  4. A person signs it off
Work list

With the reason per item

  • Landing page competes with the shop pageOpen
  • Four pages with no description of their ownDraft ready
  • Claim without a source on a product pageSigned off
by
longdash
DealLens
Pitch deck
  • ARRp.11
  • EBITDAp.14
  • ARRp.22
  • Teaser
  • Model
  • CRM record
  • Draft email
ContradictionARR is € 5.2M on p.11 and € 4.8M on p.22.
DealLensLive

Our own product · Deal screening

A pitch deck that comes apart into usable work

The situationInvestment funds get decks faster than anyone can read them. The first pass is the same work every time: retype the figures, write a teaser, fill a model, create a CRM record, mail back. DealLens does that round in advance, in the fund's own templates.

Every figure keeps its page
An amount that appears on three pages is recorded three times, with the sentence and the page number attached. Nothing is merged.
Which is how contradictions surface
Two amounts for the same period that differ by more than a couple of percent are flagged for a person. That is exactly the sort of thing a deal falls over.
One call per deck
Reading the deck is one model call. The teaser, the check and the score are ordinary Python, so the same deck gives the same result.
No API key anywhere
Access runs on the cloud's own managed credentials, so there is no key sitting in a file to leak or rotate.
Document processingSource citationsReporting
Agent 1.01Live

Our own product · Agentic AI

A site that keeps itself current

The situationAgent 1.01 collects what appears about agentic AI. The site is the example itself: eight agents find, judge and write, and the only thing a person does is press the last button.

Eight agents, one job each
Finding, hunting video, summarising, auditing the collection for dead links, findability, dependencies, reviewing code and building.
Proposals, not publications
A find becomes a pull request. A second agent reviews it, a person merges it, and only then is it on the site.
It runs on its own
The chain hangs off scheduled jobs, not off somebody starting it. New resources appear without a CMS being opened.
AgentsContent pipelineAutomation
Agent 1.01
The roster8
  • ContentScoutsearches daily
  • VideoHunterfinds video
  • ContentWritersummarises
  • ContentDoctoraudits the collection
  • SEOOptimizerfindability
  • DependencyBotkeeps code current
  • QualityGuardreviews
  • SiteBuilderbuilds
From find to page
  1. Source found
  2. Proposal opened
  3. Reviewed
  4. MergedHuman
  5. Live

Stack

What we build with every day

Chosen per project, on what fits your situation and what your team can maintain.

  • OpenAI
  • Claude
  • Gemini
  • Microsoft Copilot
  • Next.js
  • React
  • TypeScript
  • Python
  • PostgreSQL
  • Supabase
  • Azure
  • Google Cloud
  • Vercel
  • Proton
  • n8n
  • Power BI

03Working together

You speak to the people who build it

Longdash is the two of us. There is nobody between you and the people writing the code, so a question gets an answer the same day and a change is in by the end of the week.

Roy Veenboer

Roy Veenboer

Data scientist · AI engineer

Data science, forecasting and AI engineering. Worked in consultancy and in-house before we started Longdash.

LinkedIn
Laurens Bos

Laurens Bos

Software engineer · AI engineer

Full-stack from first sketch to production, on a heavy data background.

LinkedIn
First conversation
Today 10:24

We do everything in spreadsheets and it falls over when we get busy.

Where does most of the time go? One thing, not five.

Quotes. Everything gets retyped out of email.

Then that's where we'd start. Could we sit in for a day and watch it happen?

Roughly how a first call starts.

Your turn

Tell us what's grinding right now.

  • Bring one process that costs more time than it should.
  • We ask questions for half an hour and look at what is involved.
  • You get an honest read on whether it is worth building, plus a sense of the size.
“Half an hour costs nothing and nearly always turns up one thing you can fix yourself.”
Roy Veenboer