Case study · Yeppe B.V., Netherlands

One platform replaced Yeppe's CRM, spreadsheets and outsourced data team

Yeppe is a Dutch education company that sells programmes to schools and staffs them with its own team of Yeppers. ShiftedLabs built the Yeppe Intelligence Platform, a custom CRM and operations system covering all 8,684 schools in the Netherlands. It keeps contact data fresh on its own, and runs projects from signed deal to payroll. It replaced Teamleader, an invoicing spreadsheet, manual re-typing into accounting, and an outsourced team that checked contacts by hand.

Client
Yeppe B.V., Netherlands
Sector
Education services
What we built
CRM, self-updating school and contact database, campaigns, subsidy tracking, project and workforce management
Replaced
Teamleader CRM, invoicing spreadsheet, manual data entry, outsourced contact research

By the numbers

Dutch schools loaded from government data
8,684 Dutch schools loaded from government data
School boards (stichtingen) covered
1,075 School boards (stichtingen) covered
School website coverage, up from 86%
~98% School website coverage, up from 86%
Contact emails checked by verification service
~14,000 Contact emails checked by verification service
Yeppers migrated from Teamleader
942 Yeppers migrated from Teamleader

The problem

Schools change staff constantly, so Yeppe’s contact list went stale as fast as it was built. The process went like this: an email bounced, the contact went on a list, and an outsourced team worked through the list a few times a year. They checked each school’s website, a government school directory and LinkedIn, then tested emails one at a time in a web tool and typed the result back into Teamleader.

The rest of the business ran on spreadsheets. Invoices were forecast in one, re-typed into the accounting system, and staffing depended on someone remembering who lived near which school.

What we built

A database that starts from the source

Every school and school board in the Netherlands, loaded from government open data (DUO), with pupil numbers, inspection ratings and websites. School website coverage went from 86% to about 98% using automated discovery.

Contacts that find and check themselves

Crawlers read school team pages and directories, with an AI fallback for pages that defeat ordinary parsing. Emails are built from each school’s own address pattern, then checked by our own verification service before anyone sends to them. When an email bounces, the bounce is classified and fed back, so the record gets fixed instead of added to a to-do list.

Selling tools

Filtered lists by sector, region, role and school size; campaign tracking; a sales pipeline; and email capture. Staff BCC a single address and the email is matched to the right contact and project within minutes.

Intelligence

Open subsidy schemes are matched to eligible schools. A weekly digest reviews new documents from the Dutch parliament and education ministry and flags what matters to Yeppe’s sales team.

Before and after

Before After
Contact data fixed a few times a year by an outsourced team Contacts refreshed continuously and verified before sending
"Verified" meant a box someone ticked About 14,000 emails checked by a verification service, with a date on every record
Schools known only if someone had added them All 8,684 Dutch schools and 1,075 school boards, with ~98% website coverage
Invoicing forecast in a spreadsheet, re-typed into accounting Forecast and invoice export from the same system
Staffing from memory Rosters matched by location, skills and availability

Tech

  • Next.js
  • Supabase (Postgres, row-level security)
  • Netlify scheduled functions
  • Anthropic Claude
  • Custom email verification service

Recognise your own business in this?