Jobs and hiring
Roles filtered by section, venue type, contract, shift pattern and minimum pay, nearest first. Applications, a hiring board with interview, offer and hire, saved candidates and employer notes.
named client case · hospitality hiring
A hiring platform where hospitality workers and venues meet. The original was a Bubble prototype built by someone else. I rebuilt the whole product as a Next.js and Supabase application and took it live, so Bobbie runs the business and never has to think about the stack.
Bobbie owns the product and the business. I own the technology: architecture, every release, the database, security and the hosting.
the original condition
When I came in on 31 July 2026 there was no source, no documentation and no handover. The Bubble app held no real data and had never gone live. I spent three weeks mapping and stabilizing it in the editor, filing and fixing the web defects one batch at a time. Then the decision became clear: a hospitality social product with hiring, messaging, moderation and billing would outgrow Bubble before it had its first hundred users. On 22 August Bubble was frozen and the rebuild started.
what I built
Everything a worker or a venue touches was rebuilt, with the social side and the hiring side designed as one thing.
Roles filtered by section, venue type, contract, shift pattern and minimum pay, nearest first. Applications, a hiring board with interview, offer and hire, saved candidates and employer notes.
Workers get a free profile and a CV that is private by default and opened only for a purpose the worker allowed. Candidates are discoverable only by paying hiring teams, and only if they opt in.
One conversation per pair of people, interview requests inside it, read state, and recipient-scoped notifications with email delivery.
A social feed with media and reactions, Heard discussions that may be started anonymously, follows, venue pages with teams and invitations, and a Founding member badge for the first hundred real accounts.
AI moderation with a human queue, reports and appeals, and account containment: suspended, banned, deactivated and reactivated states that each show the right message and nothing else.
Venues pay one flat monthly subscription through Stripe to post roles, scout, shortlist and send interview invites. No placement fees. Webhooks reconcile entitlement, with a grace period and the customer portal for changes.
by the numbers
how it was built
Three weeks of mapping the editor, recording observed behavior against intended rules, and fixing web defects in authorized batches. The evidence from this phase became the product's first specification.
From 23 August: accounts, roles, jobs, applications, hiring, messaging, notifications, feed, Heard, moderation, admin, CVs, billing and distance search, each with its own specification and tests.
Bobbie approved a social-product brief on 25 August. It became thirteen accepted decisions and a mobile-first identity: serif titles, a dark and a light theme, and the venue as the employer.
Production Supabase from 23 September, signup email delivered, Stripe webhooks fixed and live. Since then: feature releases every few days from client requests, each one migrated, tested and deployed.
in the founder's words
“You have been amazing. You ran with my idea and made it secure, you saved me money, you made me feel confident in what we’re doing. All of the bugs you found, you handled like a champ lol. You give a ton of confidence to the average individual who just has an idea and is looking to bring it to fruition. The way you simplify rather complicated topics was really comforting. As a first time builder the process is already daunting and overwhelming. You really brought me back to earth. Your patience with someone like myself, without technical education is outstanding. I could not have been more glad to be working with you. And I look forward to what we are going to create together in the future.”
the stack
The application and its API in one codebase, server-rendered, installable as a progressive web app with an offline page.
Authorization enforced in three layers: route containment, server helpers and row-level security. UI visibility is never the control.
Subscriptions and the customer portal, transactional email, and browser tests across five viewports with Axe accessibility checks.
what this case does not claim
Tell me what your company runs on and who is holding it together today. In 30 minutes I'll tell you what it takes for me to own it.