Skip to content
Go back

I Built A Pipeline To Survive My Job Hunt — Then I Realised It Was The Product 💡

I didn’t set out to build anything. I set out to stop drowning. 🛟

Between the first piece in this series and the second, I built a system to get through my own job search. A rules file. A scorecard. Three AIs with strictly limited jobs. One gate with my name on it. I wrote it all up in August, hit publish, and went back to applying.

Then I read it back.

Not as the person who built it — as someone working out what it would take to give the same thing to somebody else.

It read like a specification.

That was it. The pipeline was the product. 🤯


The Part That Wasn’t About Me 🎯

The reason I built any of it sits in the second piece: the stack. ATS, then AI, then a human, if you survive that far.

Nothing about that stack is specific to me. Everyone going for the same role is hitting the same three filters, and most are doing it the way I was — one document rewritten a different way for every listing, each version a slightly different person, none of them quite the real one. 🎭

I built a way out for exactly one candidate. That’s a workaround.

The same way out, available to anyone who wants it, is a product.


What I’m Actually Building 🏗️

It has a name. 🤫 I’m not printing it yet — a name is a great deal easier to publish than to take back, and this thing isn’t finished.

What it is, plainly: a job-search platform that covers the loop end to end:

Four steps. Nothing exotic about any of them.

And that’s as far as I’m going on the specifics. It changes weekly, and I’d rather describe the shape than hand anyone the working drawings. 📐


None Of It Is New To Me 🧩

Here’s the part I keep coming back to. Every one of those already exists in my own setup — built for exactly one candidate, and mostly by hand:

What the platform doesWhat I already run
Profile analysisThe rule that starts with the complete candidate, then applies the vacancy as a lens
Job alertsLinkedIn, Seek and Indeed — set by me, screened into my inbox, rejects shown with the reason attached
ScoringThe scorecard: public data, seven factors, a recommendation I’m free to overrule
CV + cover letter packsCodex writing inside a written rule file, reviewed before it goes anywhere

So I’m not really inventing a product. I’m taking one I already depend on and removing the part where it only works if you happen to be me. 😅

I left the fifth thing off that list on purpose — the gate. Not because it doesn’t matter, but because it isn’t a feature. It’s the one position I’m not willing to trade: nothing leaves because a machine said so.


Why This Isn’t Just Another Resume Generator 🛡️

Anyone can get a resume written in ten seconds now. ⚡ That stopped being the impressive part a while ago.

The unimpressive part is what happens after. A tool that writes fluently will also write confidently — about a role you didn’t hold, a number you can’t back, a gap it has quietly reworded into experience.

So I don’t think the writing is the interesting part. The rules are.

The ones I run on myself — no invented experience, no keyword stuffing, no hidden text, no rewording a gap into a direct role — aren’t a settings panel you switch off when the deadline gets close. They’re the bit I’d defend first, and they came with me out of the rules file and into the build.

Building the thing and then quietly dropping the rules would mean making the tool I already decided I wasn’t willing to use.


The Bill I Didn’t Expect To Solve 💸

There’s a question hiding in everything above, and it’s the one that quietly kills projects like this: who pays for the AI?

Score a vacancy, analyse a profile, generate a pack — every one of those is a call that costs something. So a free tier, done carelessly, isn’t generosity. It’s a bill that grows while you sleep, and a product whose cost line outruns its revenue line is a hobby with invoices.

I didn’t want to build that.

The answer is Puter. Every authenticated user gets their own allocated resources — storage, database, AI credits — and under its user-pays model the developer pays nothing for infrastructure, however many people show up.

How that maps onto a free tier and a paid one is a choice, and mine splits cleanly:

That settles the cost. It doesn’t settle the shape of the free tier — how many packs a month, which features sit behind which line — and I’ll be straight with you: that isn’t decided yet. 🤔

It will carry some limit, because a product nobody can afford to keep running isn’t a product. “Generous” is the only word I’m confident about. What I’m not willing to do is put a paywall in front of somebody standing exactly where I was at the start of this series.

And if the traction comes, and a Buy Me a Coffee ☕ link ends up covering it — I honestly won’t mind keeping it free at all.


Where It Actually Stands 📍

Honestly: not launched 🚧. There is no user but me.

The private repository went up on 24 September 2026, and what went into it first isn’t the application — it’s the rules for shipping the application. The release model, the promotion gate, the portability decisions, written down before a line of product code.

I’d like to say that was a deliberate bit of symmetry with everything in this series. It wasn’t. It’s just the only way I know how to build anything now.

Floot is where the platform actually lives at the moment — runtime, database, tests, the lot. GitHub is deliberately not a second place to edit it; it’s the owned release mirror. A snapshot only moves across when the typecheck is clean, the regression suites pass, the schema changes are documented, security-sensitive changes have been reviewed, and secrets and user data are provably excluded. Then someone reads the diff.

Same sentence I wrote in August — nothing merges without my say-so — except now it’s a release rather than an application.

And I’m not planning to stay in Floot. Another GPT is running the port onto a stack I’ll actually own: Netlify, GitHub, Cloudflare, Neon and Backblaze — hosting, code, edge, database and backups, picked on cost and on not being locked in to whoever happens to be staging it today. When that’s done, Floot can go back to being a staging room rather than a landlord. 🏠


Three Pieces, One Line 🪞

The resume was never the hard part. Admitting that my judgement about my own fit had become the least reliable input in the process — that was.

So I split the two. Let the machine score, sort and argue. Keep the decision.

And the system I built to survive my own job hunt turned out to be the thing worth building.


The honest status is that I don’t know yet whether this works for anybody else. It hasn’t had the chance.

But every part of it already works on me, and I’ve had to explain it often enough lately to notice I keep reaching for the same shrug — it’s obvious, isn’t it? 🤷

It isn’t obvious. That’s rather the point. 😉

You’ve followed this from the document I kept rewriting into different personalities, through three AIs that still aren’t allowed to press send. What would you actually use from it — and what would you side-eye? 👇


Share this post on: