I Accidentally Built a CRM This Week

Three whole days into running my own little data and AI shop on the South Shore, I hit the first problem almost every new business hits: I have a top-of-funnel problem. I need leads. Ideally local ones. Maybe some friendlies to build out a portfolio with.

So, you know, naturally, I built a CRM. I didn't mean to, I swear. It just sort of... happened.

I called it GeoOutbound. Here's the thing it actually does, and then I'll tell you why I think the whole story matters more than the tool.

What it is and How I built it:

It pulled 447 businesses across Scituate, Cohasset, Hingham and the towns around them, then scored every one on how badly they need the thing I can sell them: a clean, fast website. Roughly 114 of them have no live website at all. Not a sad website. None. Dead domain, parked page, or a Facebook profile doing the heavy lifting. 99 scored hot.

Each row hands me what I need to decide whether to pick up the phone or stop into their store. I have their business name and what kind it is. The town, the address. I even have the drive time from my front door, which matters because I've done my time on the commute into Boston and I'm not going back. I pulled their Google rating and how many reviews back it up, so I can tell a beloved 30-year institution from a brand-new shop nobody's found yet. I grab their social footprint, which reads 0 of 4 more often than not. And I added a little "+ note" button so future-me remembers I already left a voicemail, and what we talked about.

So, you know, naturally, I built a CRM. I didn’t mean to, I swear. It just sort of... happened.
— Me

That's about it so far. Eight columns. It does exactly what my fledgling business needs today and not one thing more.

It took me longer to design my business cards. Hmm. Maybe I need to do design work, too. Anywho…

Should I have bought one instead?

Maybe my first instinct should have been to go shopping, because there's a CRM for this. There are forty CRMs for this. HubSpot will hand you a free tier and Salesforce will happily sell you a whole cathedral.

I’ve used both. Happily, well, maybe not happily. I appreciate a good system of record as much as the next fella. I've even helped Seagate Technology run on an account object with a hundred and sixty custom fields, half required, fully a quarter duplicative, and likely none filled in right. I've inherited the workflow automation nobody remembers switching on, quietly emailing the wrong people for two years. I know what that bloat costs, and it doesn't show up on the invoice.

I didn't need any of that. I needed eight columns and a notes field. No CRM on Earth is going to sell me just that, because just-that isn't a pricing tier. So I built it.

How a guy who rarely codes built a CRM

Truth be told, I'm pretty fucking slow at writing code. I’ve done it so rarely the rust never fully comes off. I came up through the data world thinking in living process flow diagrams a la Alteryx and building dashboards in Tableau, not hand-coding React components. For most of my career I’ve stayed in the kiddie pool side of technology while living on the business rules side far more consistently.

I don’t need to do that any more, and that's the whole point of this post.

Total cost: a domain that runs me about ten bucks a year, plus my Claude Code Max license
— Also me

I built GeoOutbound with Claude Code across a couple of evenings. I described what I wanted in plain English, the same way I just described it to you, and we worked through it together. Pulling the list, scoring it, computing the drive times, wiring up the filters and the notes, getting it hosted, working through bugs and features as I went. It felt less like programming and more like having a very fast, very literal junior engineer who doesn't get tired and doesn't mind that I changed my mind about the scoring four separate times.

Total cost: a domain that runs me about ten bucks a year, plus my Claude Code Max license, which, admittedly, ain't exactly cheap, but it’s less than an hour of consulting time a month in cost. That said, the Max license also writes pipelines, debugs my website, and helps me think through client work, so I'm able to spread that cost across everything I do.

Some admissions and caveats

This is not enterprise software and I'd never pretend it is. It's a single-user tool sized for exactly where I am right now. The data goes stale, so I refresh it. The score is a heuristic I made up over coffee and keep tweaking, which is a polite way of saying it's opinionated and not even slightly scientific. There's no multi-user anything, no permissions, no audit trail, because there's one user and it's me waving at the screen.

The day I have a team, or a thousand leads, or a partner who needs in, I'll rebuild it, maybe I’ll even call up Marc and shell out for all the things. And that's fine. In the meantime, I built the version for the business I have today. Sooo fucking cool! When the bigger business shows up, I'll build the bigger tool, probably over another weekend. Today, I couldn’t even have had a sales cycle in the time it took me to build my own thing, tailored for me!

Why this makes me optimistic for the future:

This is where I get genuinely hopeful about AI and where we're headed, and I don't say that lightly because I spend a lot of my day working around gaps in the tooling’s context.

Overall, the tooling is so damned good now that a curious person with a bit of aptitude can build the exact thing their situation calls for, instead of renting a bloated version of it from someone who priced it for a company a hundred times their size. That's new. A couple of years ago, the gap between "I have an idea for a tool" and "I have the tool" was a developer you couldn't afford or a weekend you didn't have. That gap is mostly gone.

And look at where it points me. I get to build cool stuff for a living. The barber shop down the road gets a website that helps keep his chairs full. The hardware store with a 4.7 across 300-some reviews and a dead domain gets put back online for the price of a nice dinner. Nobody loses in that trade. The growth-hacker crowd was never going to call these places, the agencies want a retainer, and the big platforms want a sixty-year-old shop owner to learn a content management system on a Tuesday night after close. I can just... fix it. Locally. For a fair price. And drive home in under ten minutes.

That's the whole pitch, really. Fortune 500 data skills, scaled down for the corner store. Turns out the tools to run that pitch scale right down with it.

A few takeaways, the way I like to end these:

  1. Build the tool for the business you have today, not the one you're daydreaming about. The small version ships this weekend, buy the enterprise thing when its absolutely necessary. The big one can wait until the revenue actually exists to support it.

  2. True, most folks can’t just do what I did. There was a lot of lingo in the Cloudflare setup. Those twenty years of living in tech are worth something still.

  3. There’s a real gap in my own community. I’m really excited to go find them, to serve them. That’s probably true for your community, too.

  4. If you're sitting on a couple decades of hard-won skills and wondering whether you can do this on your own terms, from your own town: I bet you can.

  5. I can’t wait for those business cards to arrive.

If you run one of these businesses, or you know one, or you just want to talk shop about how any of this got built, reach out. I'm over at josephschafer.com and I'm always happy to have a chat. We win together or not at all.

Next
Next

Overcoming Adversity - Anthropic Edition