A slim hospitality-workforce CRM for tracking the bars, restaurants, spas, casinos, hotels, and lodging properties we partner with, plus the people who run them, with AI-drafted outreach, campaigns, reminders, and revenue tracking in a single workspace.
Category: Internal Sales CRM
Tech Stack: TypeScript 5.9, React, Vite, Node.js 24, Express 5, PostgreSQL, Drizzle ORM, Replit Auth (OIDC), OpenAI, Gmail API, Tailwind CSS, shadcn/ui, TanStack Query, react-hook-form, Recharts, Zod, Orval (OpenAPI codegen), pino
TabPref CRM is the internal sales and account-management workspace I built to run our partner pipeline at TabPref. It tracks every venue we work with (bars, restaurants, spas, casinos, hotels, and lodging properties), the people who run them, every touchpoint, every dollar of revenue, and every follow-up. AI drafts the outreach. Campaigns target by industry and lifecycle moment. Reminders surface the next move. Gmail handles the send.
Once TabPref started landing real venues, the spreadsheet broke. Off-the-shelf CRMs are priced and shaped for outbound SaaS sales teams, not for the rhythm of hospitality account management where the contact moves venues, the venue rebrands, and the next conversation is six months away from the last one. I wanted a CRM that understood our world: location-first, with industry-aware templates, AI that drafts in our voice, and a reminders engine that nudges me before partners go quiet. Building it ourselves also kept all of our partner data inside our own stack.