nora
all work
  • in beta
  • Design
  • Full stack
  • ML

TL;DR

Caramel is a job hunt coach. It reads recruiter emails straight from your inbox, learns your pipeline and the roles you’re going after and shows you where you’re falling behind. Then it gives you a few clear actions each week. It only reaches out about a job when it finds one you’d want and could actually land.

I designed, built and shipped it solo. It’s in beta with 17 people on the waitlist, 9 signups and 7 actively applying with it.

My role
Design, full stack, ML
Timeline
2024 to now
Stack
React, Flask, Fly.io, Firebase, DistilBERT, spaCy

Why I built it

The job hunt gives you plenty of data and no answers

As a co-op student, I’ve gone through a hiring cycle almost every term for 5 years and landed 6 internships. Each cycle, the applying was the easy part. Making sense of it was harder. Which applications were still alive? Why did some roles reply and others didn’t? What should I change next time?

My inbox had all the answers, scattered across hundreds of emails. So two years ago, I built the first version of Caramel to read them for me and track everything automatically.

Problem

More applications, more ghosting, no idea what to fix

Most job search tools push you to send hundreds of auto-filled applications and hope something sticks. You get more rejections, more ghosting and no idea what to fix.

Caramel goes the other way: fewer, better applications and a clear read on what’s working.

Evolution

From tracker to workspace to a career coach

  1. 01

    A tracker for myself

    2024

    Caramel started as a side project. I was tired of keeping spreadsheets of where I’d applied, so I built a tool that read my inbox and tracked it for me. You connect Gmail and it pulls the company, role and status out of every email, with no manual entry.

    I built the whole ML pipeline myself instead of calling an outside AI API:

    • Labeled my own dataset of job emails in Label Studio
    • Fine-tuned a DistilBERT classifier to sort emails by stage (applied, interview, rejection, offer)
    • Trained a custom spaCy NER model to extract the company and role
    • Built matching logic so a status change updates the existing application instead of creating a duplicate
    • Shipped it end to end: React front end, Flask backend on Fly.io, Firebase and the models running on my own servers
    The pipeline
    1. Gmailrecruiter emails
    2. DistilBERTstage
    3. spaCy NERcompany, role
    4. Matchingno duplicates
    5. Tracker
  2. 02

    An all-in-one job hunt workspace

    Once tracking worked, I kept adding the other parts of the hunt: a home feed of matching jobs, a dream company watchlist, interview prep and saved jobs. The goal was one place to organize everything.

    What beta users actually did
    1. Waitlist17
    2. Signed up9
    3. Connected Gmail8
    4. Actively applying7
    5. Added dream companies3
    6. Opened interview prep3
  3. 03

    A career coach

    now

    The workspace helped people organize their hunt, but it didn’t help them get better at it. So Caramel is becoming a coach.

    The coaching loop
    1. 01Learnyour pipeline, target roles
    2. 02Diagnosegaps vs. what roles ask for
    3. 03Recommendjobs you’d want and could land
    4. 04Acta few actions each week
    5. 05Trackreplies, stages, progress

    ↻ then back to 01

    Two ways to find jobs. Your feed in Caramel shows every relevant role, for when you want to browse. But Caramel only texts or emails you when it finds one that’s meant for you: the right role, at a company you’d love, that you have a real shot at. Most weeks that’s zero or one. When your phone buzzes, it’s worth opening.

Insight

Tracking isn’t the real problem. Not knowing what to do next is.

Hiring has turned into an AI arms race, a filter war. Recruiters screen with ATS software, candidates fight back with auto-apply bots and nobody trusts the process.

  • 55%of job seekers say not hearing back after applying is their biggest frustration.Resume Genius, 2026
  • 9.3% vs 2.6%Targeting beats volume: interview rates for 11 to 20 applications, compared to 100+.Huntr, Q1 2026

When things go quiet, you can’t tell whether to fix your resume, follow up or move on.

Testing

Testing the coach by hand first

Before I automate the coaching, I want proof people want it. So I’m testing it by hand first: sending 5 beta users a funnel report and seeing if they ask for another.

Hypothesis
Knowing what to do next is worth more to job seekers than another tracker.
Test
A hand-made funnel report for 5 beta users, with a few actions each.
Signal
They ask for another one.

Here’s one of the reports, anonymized. The name, companies, places and numbers are changed, but the structure and the advice are what a tester received.

Maya’s Next Moves · Caramel coachopen ↗

What happened

So far I’ve sent one report, and more are on the way. Here’s what came back from the first one.

I asked the tester three questions: Which sections were useful? Was anything off or wrong? Would you want another one?

“Really useful, nothing wrong with the info, and yes, looking forward to the next one.”
Beta tester, Nov 2026 (paraphrased)

They acted on it. Soon after reading the report, they updated their location and role settings to match what it recommended. One report changed how they use Caramel.

  • Asked for another report✓
  • Found no errors in the read of their pipeline✓
  • Changed their settings based on the advice✓

Vision

Design ideas for the coach

It learns your pipeline and the roles you’re going after, then compares them to the market: what those roles ask for and what the people who hold them look like. From there it shows you where you’re falling behind and gives you a few personalized actions each week. That could be following up with a company that went quiet, building a skill your target roles keep asking for or skipping a kind of role that never replies to you.

Instead of pushing you to apply to more jobs, it only reaches out when it finds one you’d want and could actually land.

The goal is that you stop wondering whether your search is working. Caramel tells you and tells you what to do next.

in progress[coach screen explorations]
in progress[dream job notification: one text or email for one role, with a line on why it matched]

What's next

  1. 01

    Send more reports by hand. One tester is a start. Next I’m sending reports to the rest of the active beta users and tracking two things: do they ask for another one, and do they act on it?

  2. 02

    Automate the part people acted on first. The tester’s first move was changing their settings, the one action they could take right inside Caramel. So that’s where I’d start: advice that turns into a one-tap change, like pausing a role type or narrowing a location.

  3. 03

    Build the coach screens. Today, the Pipeline board with coach hints, Jobs and Your edge, starting with Today, since it’s where the weekly plan lives.

  4. 04

    Texts last. Texting only works if every message is worth opening. I want the recommendations to be right in the app before Caramel starts buzzing anyone’s phone.

Reflections

I built before I watched. I added dream companies and interview prep before checking whether testers were even job hunting, let alone using them. Next time I’d recruit people mid-search and watch their first session before adding anything.

People use what saves them work, not what organizes them. Tracking stuck because it happened on its own. Everything that asked people to do more up front got ignored, even when it was useful. That’s why every coach action comes with a message or plan ready to go.