First Envision

Get in touch.

A few lines is enough. Links welcome. You can also write an email.

MyMonday · Firefly Information Management · 2016–2021

Teaching a marketplace what a skill is.

MyMonday matched people to work on what they can do. We built the skills graph, the matching engine and the marketplace around them, years before anyone called this AI, and with no language model anywhere.

  • Product
  • Interface design
  • Graph architecture
  • Matching engine
  • Launch

Overview

Hiring ran on keywords. MyMonday ran on capability.

Most platforms matched people to roles by the words they used. But people call the same ability by different names, and skills sit next to other skills, so a keyword search misses the people a good recruiter would call first.

MyMonday set out to match on what a person can actually do, and to show the reason for every match. We were its product and technology partner from discovery to launch.

For founders whose idea needs something the obvious approach can't do.

What it had to do

  • Find people by what they can do, not the words they chose.
  • Show why every match matched.
  • Answer fast enough to feel instant.
  • Carry the whole marketplace, from first profile to signed contract.

The graph

Skills have neighbours.

We modelled people, skills, roles, projects and companies as one graph on Neo4j, with a layer of our own that decides how close two skills really are.

A graph of our own

People, skills, roles, projects, companies and industries as connected entities, not rows in a table.

Weighted by closeness

Express sits next to Node.js. The layer decides how strongly, and that weight is what matching reads.

A path for every match

The engine keeps the route it took, so every match can explain itself.

The product

Everything that happens after the match.

Profiles that lead with skills. Positions the graph helps define. Shortlists, messages, contracts and payments, LinkedIn import and CV export. And for larger companies, a way to find the right people already inside.

Re-createdThe graph suggests the neighbours a role didn't name.
Re-created matching results: candidates ranked for a position, each with the skills that matched
Ranked by fit, each with the skills that carried it.
Re-created candidate detail: required and neighbouring skills
One candidate, and why they fit.
Re-created project board: the team, open positions and a timeline
A project's team, and the positions still open.
Re-created messages: a position shared in a conversation
Outreach, with the position in the conversation.

Re-createdThe platform is retired, so every screen is re-created; names and figures in them are illustrative.

The hard part

Understanding, without a language model.

MyMonday ran from 2016 to 2021, before anyone reached for a language model to do this. Its sense of meaning was built by hand: modelling the domain, weighting the relationships, walking the graph.

Harder to build. And every match could be explained, which is what a company needs when the decision is about a person.

Impact

Race them.

1M × 1Mpositions and candidates in the benchmark

Graph
≈7 ms
Relational
≈1 s
One match each, at the benchmark's speed.

Approximate · internal benchmark

At a second a match, matching is a batch job. At milliseconds, it runs while the role is still being written.

Where it landed

Launched publicly. Validated with a business pilot client.

Who we were. Our founder was MyMonday's CTO, and the studio was its product and technology partner from discovery to deployment. The platform has since been retired.

If this is your problem

Your idea needs something the obvious approach can't do.

We would start with a diagnostic: about a week testing the idea against the hardest version of the problem, and a written verdict on what to build first, and what not to build at all.

Next case · SaunaCentral

Opening the door the ads were paying for. →

For a business whose ads are working, and whose website isn't there when the customer arrives.