Skip to content
Back to work

Founder · 2024 to present

Preferr

An iOS app that learns your palate, then finds the specialty roasters worth your time.

Visit Preferr
Preferr icon

What it does — Preferr is an iOS app that recommends specialty coffee beans and roasters based on what each drinker actually likes. Built and operated by a single person using AI agents.

The problem

The problem

Specialty coffee discovery is broken in both directions.

Drinkers stand in front of a wall of beans they've never tried, from roasters they've never heard of, and pick by guessing: bag design, vague tasting notes, or the same brand they had last time. The good stuff stays unfound.

Roasters spend money on Instagram, hope, and Google Ads, then wonder why discovery feels like shouting into a void. The drinkers who would love their coffee don't know they exist.

To compete with that as a solo operator, Preferr needs a continuously-fresh catalog of every roaster's lineup, a way to reach roasters and bring them on board, and a brand presence in the communities where coffee people actually live. Doing all of that manually is a full team. I don't have one.

My approach

I built Preferr on a stack of specialised AI agents. Each one owns a single piece of the operating model, orchestrated together so the business runs on a schedule rather than my attention.

Six agents in production

  1. 01

    Bean catalog agent

    Visits roaster websites, extracts structured bean data (origin, process, varietal, tasting notes, price), and stages it for review before publishing to the app.

  2. 02

    Roaster discovery and outreach agent

    Finds specialty roasters across target markets, gathers contact info, and runs personalised outreach pipelines.

  3. 03

    Community engagement agent

    Monitors coffee discussions on Reddit, identifies threads where Preferr is genuinely useful, and drafts contributor-style responses (never spam).

  4. 04

    Brand voice agent

    Single source of truth for how Preferr sounds across every channel.

  5. 05

    Founder story agent

    Generates personal narrative content for LinkedIn and X.

  6. 06

    Launch campaign agent

    Coordinates messaging across channels for releases and updates.

The architecture choice that matters: agents are scoped, not general. Each one has one job, one prompt, one output format. The bean-catalog agent can't write LinkedIn posts. The community agent can't add roasters to the database. This sounds restrictive. It's why the system is reliable.

Key AI decisions

Key AI decisions

  • Where AI doesn't belong.

    I deliberately did not build an "AI coffee recommendation engine." Recommendations come from explicit user preferences and roaster metadata, not a model. AI runs the operations behind the product, not the product itself. This is the single biggest mistake I see SMBs make: putting AI on the user-facing surface where it adds risk, instead of the back office where it removes work.

  • Stack choice.

    Claude for agentic workflows (better at structured extraction and multi-step planning). LLM-agnostic for one-shot tasks. Supabase as staging layer between agents and the production catalog. Every agent output lands in a review queue before it goes live.

  • Human-in-the-loop, where it counts.

    Bean data is reviewed before publish. Outreach copy is reviewed before send. Community responses are reviewed before posting. The agents handle 95% of the work. The 5% review keeps the brand from blowing up overnight.

  • Cost discipline.

    Bean and outreach pipelines run scheduled, not on-demand. Community monitoring runs cheap (smaller models for triage, larger only for drafted responses). Aggregate AI cost stays under what a single junior hire would have cost in a single week.

Outcomes

  • Catalog at scale.

    Hundreds of roasters indexed and continuously refreshed across multiple countries. Manual data-entry hours per week dropped to near zero.

  • Roaster outreach automated.

    Personalised outreach sequences sent monthly without me writing a single one. Response rate stable enough to keep the catalog growing.

  • Community presence without spam.

    Measurable inbound contacts from Reddit threads where Preferr was a useful answer, not an ad.

  • Cost-per-output low enough to bootstrap.

    All six agents run for roughly the cost of a junior hire's first week per month. The agents kept running. The hire would have left.

  • Quality control held.

    The vast majority of agent outputs pass human review without edits. The review queue catches the rest before publish.

What I'd do differently

What I'd do differently

  • Build the review queue earlier.

    I added the human-in-the-loop staging layer halfway through. The first month of agent output went straight to production, and I burned a weekend re-doing data the bean catalog agent had over-confidently extracted from sites with weird HTML. Lesson: agents are confident and wrong. Build the review surface on day one, not day ten.

  • Pick a smaller first market.

    I started with global roaster coverage and ended up spread thin. Concentrating outreach on one country first would have given me a denser catalog and faster signal on what drinkers actually responded to.

  • Start the community agent later.

    It was the most fun to build and the slowest to pay back. Bean catalog and outreach pay back week one. Community engagement compounds slowly. I should have shipped revenue-adjacent agents first and built community on top of momentum, not in parallel.

The pattern, in your business.

The pattern behind Preferr is portable: scoped agents, a review queue, AI on the back office, not the product. It works in any business with a "five jobs, one person" problem. Specialty coffee was my test case. Yours could be the next.

If this kind of work could run inside your business, that's the conversation to have.

Preferr is one of the patterns I bring into client work. The first 30 minutes are free, no slides.