YardLink Labs

Where we
experiment.

Some of these became products. Some power the products. Some exist because we wanted to know whether we could build them. All of them run, and all of them were built here.

Screenshots on this page are from our own internal tools. Anything showing private business information, contacts or credentials has been left out rather than blurred.

Data engine · Powers YardLink Eats

Anansi

Anansi does three jobs. It collects restaurant data from Google Places across dozens of neighbourhood specific targets. It gives a human an editorial review surface to decide what actually ships to the apps. And it answers questions about that data with citations, using a local model, so asking costs nothing.

The architecture uses two stores deliberately. A canonical Postgres record for truth and lineage, and the published store the apps read from. Neither replaces the other, and only Anansi can move something between them.

The editorial dashboard is the part worth stealing. Seven review queues, the working queue in the middle, and a review panel that shows Anansi's proposed badges and placements with a confidence score and her reasoning. A person approves, edits or rejects. Nothing reaches the app without passing through there.

Python Flask PostgreSQL Local embeddings Google Places Firestore Claude API
The Anansi editorial review dashboard with queues and a review panel
Editorial reviewThe human gate every listing passes through
The Anansi pipeline control room with a live activity log and counters
PipelineLive activity, counters and the controls that run it

Outreach engine · Internal

Winston

An outreach command centre built for the studio. Winston discovers local business leads across the five boroughs, Nassau and Suffolk, scrapes their sites for contact information, and drafts personalised outreach through a provider layer that tries the free local path first and only spends when it has to.

The interesting work here is the safety design. An earlier follow up sender was permanently removed because it delivered mail directly from a JSON file, bypassing suppression, idempotency, atomic claiming and human confirmation. There is now exactly one production send path and it runs the full state machine.

Controls that can cost money are labelled as billable in the interface. The default workflow is the one that spends nothing. Sending always requires a human confirmation after approval, every time.

Python Flask SQLite Local model first Claude API Suppression list State machine
The Winston console showing agent activity
ConsolePipeline state and the controls that drive it
The Winston AI cost tracking view
Cost controlSpend tracked per provider, free path preferred

Career engine · Runs locally

Susan

Give Susan a resume once. She finds relevant postings, scores how well the profile fits each one using semantic search, and drafts a tailored resume and cover letter for the ones worth applying to, with tracking for everything already sent.

Susan runs on a local model, on your own machine. That was the whole point. A job search is one of the most sensitive things a person does online, and it did not need to leave the laptop to work.

It is also the clearest demonstration of a principle we apply to client work: when a local model is good enough for the task, using it is both cheaper and better for privacy than sending everything to an API.

Python Flask Local LLM Semantic search Privacy first Zero data uploaded
What it does
  • Reads a resume once, then works from it
  • Finds relevant postings across sources
  • Scores fit with semantic search rather than keyword matching
  • Drafts a tailored resume and cover letter per role
  • Tracks what was sent, and what came back
Why it matters here

Susan is the clearest proof of a principle we bring to client work: when a local model is good enough for the task, running it locally is cheaper and better for privacy than sending everything to an API.

Screenshots of Susan are deliberately not published. Its interface shows real personal job search data, and no portfolio is worth putting that on the internet.

Also in the lab

Smaller experiments.

Assistant

Errol

The Caribbean food guide inside YardLink Eats. A grounded assistant with a character, a voice and a hard limit on what it is allowed to claim. The template for every client assistant we build.

How it works
Delivery tool

Website Builder

An internal workspace that turns business details into a live website. We collect everything from a client once, shape the story and publish from one place, which is how small business sites get delivered fast without cutting corners.

Browser game

Avenue Run

A neon side scrolling endless runner that plays in the browser or installs to a phone. Dodge the rush, grab coins, ride power ups and build combos down four avenues. Built as a progressive web app.

We build these for businesses too.

Data pipelines, review tools, internal dashboards and grounded assistants. If your team is doing something by hand that a system should be doing, tell us about it.