Case study
AI mentoring and coaching,
matched and measured
2muchcoffee built an AI mentoring and coaching platform that pairs people on psychosocial fit and then proves the pairing worked, on a Node.js and Moleculer backend where every part scales on its own.
Book a 30-min review
Mentoring software is easy to build and hard to make effective. Two things decide whether it helps anyone: who gets paired with whom, and whether the progress is visible to the people paying for the program.
At a glance
The problem
Mentoring programs fail in three places, and none of them is the video call
The software part of mentoring is not the hard part. Booking a call and storing notes is a weekend. These three are what decide whether a program survives its second year.
The pairing is made on the wrong signals
Most matching is a filter over job titles, departments and stated interests. Those are the facts easiest to collect, not the ones that predict whether two people will work well together, so the match looks defensible on paper and goes quiet after three sessions.
Nobody can show it worked
A program that cannot answer "what did this change" gets cut in the first budget review. Attendance and satisfaction scores are what most platforms can report, and neither of them is an outcome.
The relationship runs out of road
Two people meet, talk well, and then have nothing structured to do between sessions. Without goals, prompts and something to prepare, the calendar invite quietly stops being accepted.
The product
How it works
People are matched on fit, not tags
Psychosocial matching pairs a mentee and a mentor on the factors that predict a productive relationship, rather than on overlapping keywords in two profiles.
The pair sets goals they can be measured against
The relationship starts with KPIs, so from the first session there is something specific to measure progress against rather than a general intention to develop.
The work happens in one place
Scheduling, chat and AI-powered learning sit together, so the time between sessions has structure and neither person has to go looking for what happens next.
Progress becomes something you can read
Movement against the KPIs, plus personalized insights, gives mentees, mentors and the program manager one picture instead of three different impressions of how it is going.
Scope
What we built
Who it serves
What a mentee and mentor get
- A match made on psychosocial fit, not on a list of shared tags
- Goals set at the start, so progress is measured against something specific
- Scheduling and chat in the same place as the rest of the relationship
- AI-powered learning that gives the time between sessions structure
- Personalized insights, so guidance reflects where this pair actually is
- A shared view of progress, so neither person is guessing how it is going
What a coach or program manager gets
- Formal programs and one-to-one relationships running on the same platform
- KPI-based progress tracking across the program, not just attendance
- Accountability and transparency built into the product rather than chased over email
- A view of which relationships are moving and which have gone quiet
- Evidence for a budget review that is an outcome and not a satisfaction score
- Support for coaches working alongside mentors, without a second system
Recognise one of these as your problem? Book a 30-min review
The parts that were not obvious
- Matching on fit means modelling what fit isA tag filter needs no theory of mentoring. Psychosocial matching does: you have to decide which factors actually predict a productive relationship, collect them without turning onboarding into an exam, and keep the pairing explainable to the person it was made for. That work is the product, and it is the part a competitor cannot copy off a screenshot.
- KPIs have to survive contact with a real relationshipMeasurement is easy to add and easy to make useless. Goals set too rigidly go stale by the second month, and goals set too loosely measure nothing. The tracking had to hold a relationship that legitimately changes direction while still producing a defensible answer to whether it moved.
- Service boundaries drawn by growth rate, not by tidinessMatching, tracking and the AI layer grow at completely different rates, and the usual instinct is to split services along the org chart or the database diagram instead. Moleculer services split along the load lines, with Moleculer-web as the gateway, so a spike in one never drags the rest down and each part is deployed on its own.
What this build demonstrates
A confidentiality agreement covers the client and its numbers, so what follows is capability. Every item is something the platform does in production.
- AI applied to a judgement problem, matching people, rather than to a content-generation demo
- A measurement model designed with the product instead of bolted on for a reporting screen
- Microservices boundaries chosen by how each part actually scales in production
- Real-time surfaces, scheduling and chat, sitting alongside the analytical ones
- A managed cloud backend on Google Cloud and Firestore, with CI/CD from the start
- One platform serving four different roles without becoming four different products
Have a matching or measurement problem like this one?
Built with
The stack
Questions
Why can you not name the client?
The engagement is under a confidentiality agreement, so the client, its users and its numbers stay off this page. What is described here is the engineering, which we are free to discuss, and we go through it in more detail on a call.
What does psychosocial matching actually mean?
It means pairing people on the factors that predict a productive working relationship rather than on overlapping keywords in two profiles. A tag filter can tell you that two people both listed leadership as an interest. It cannot tell you whether they will still be meeting in month four, and that is the thing a mentoring program is bought for.
How do you measure whether mentoring is working?
Against KPIs the pair agrees at the start, tracked as the relationship runs. That is deliberately harder than reporting attendance or satisfaction, because neither of those is an outcome, and a program that can only report them tends not to survive its first serious budget review.
Why Moleculer instead of one Node.js service?
Because matching, progress tracking and the AI layer grow at very different rates. As separate Moleculer services behind a Moleculer-web gateway, each is deployed and scaled on its own, so load on the AI layer does not degrade scheduling. A single service would have been faster to start and would have forced us to scale everything to fit the busiest part.
Could you build something like this for us?
The reusable part is the pattern rather than the product: matching that models fit instead of filtering tags, measurement designed alongside the feature it measures, and services split by how they scale. What changes per company is what fit means in your domain, what counts as progress, and which of those you already have data for. That is what a first call is for.






Let's build yours
- Our team contacts you within 24 business hours
- We collect all the key requirements from you
- The team of developers prepares estimation
- We can sign NDA since we respect the confidentiality of our clients