I Built My Own CRM to Run a One Person Agency. Here Is What It Does
I run Landon Scales by myself. I build the websites, run the ads, set up the AI systems and answer my own phone. For a long time the one thing I did not have was a system that kept up with me, so in October 2026 I built one. This post is what it does, what I deliberately left in human hands, what it cost me in time, and the parts I think any business owner should copy.
Why I Stopped Using Off the Shelf CRMs
I tried the normal options first. Every one of them had the same three problems. Too many fields, so logging a call took longer than the call. Nothing happened automatically, so the software was really a prettier spreadsheet. And the follow up was still on me, which was the exact problem I was trying to solve.
The pattern with a one person business is that leads arrive while you are busy. I am on a client call when a Meta lead comes in. I am building a site when a website form lands. By the time I open the CRM to type it in, two more things have happened. A tool that waits for me to type is not helping. I needed one that did the work and handed me the decision.
What Lands in It by Itself
Every Meta lead, every website form and every Cal.com booking lands in the CRM without me touching anything. Meta sends the lead the moment someone submits the form. My site posts the form straight into the database. Cal.com fires a webhook when a call gets booked, so the booking shows up on the person's record with the time already on my calendar.
That one change removed the most common failure in my old process, which was a lead sitting in an email I had not opened yet. There is no inbox step anymore. If someone raised their hand, they are in the system before I know about it.
The CRM also writes a lean mockup brief for every new lead on its own. I offer a free working mockup within 48 hours, and the brief is the starting point for that build, so by the time I open the record the first draft of what I would make for them is already sitting there.
One Tap Call Outcomes
After every call, I log the outcome with one tap. Held, didn't answer, booked, won, lost. No form, no dropdowns, no notes field I feel obligated to fill in.
The tap that matters most is didn't answer. Those go into their own pile, and the CRM writes the reschedule email for me, asking what day and time work better. It gives me a 15 second undo in case I tapped the wrong person, then it goes out. One tap turned a chore I used to put off into something that happens while I walk to the car.
The Manager That Runs Every 30 Minutes
This is the part I am proudest of. Every 30 minutes a process I call the manager runs through every lead and looks for calls that never happened. A booking that passed with no outcome logged. A lead with no first touch. A reschedule email with no reply after a few days.
For each one it finds, it queues a follow up, written and ready. Then it stops. The follow ups sit in a list and wait for me to click Send all. That one click is the entire human part of the job, and it is the part I refuse to give up. More on that below.
New leads get the same treatment on the way in. The moment one lands, the CRM drafts a hello email and a first text in my voice. I read them, fix anything that sounds off, and send. The draft is usually right, and even when it is not, editing a draft is faster than starting from a blank screen.
Everything About a Person on One Screen
Each lead has a timeline. My Granola meeting notes land on it after a call. Gmail threads with that person show up on it. Google Calendar events sit on it in order. Before any call I open one screen and I can see every conversation we have had, which is the thing I used to spend five minutes reconstructing across four apps.
There is also a Money page. It pulls Stripe payments and the manual ones, like a check or a transfer, onto one view so I know who has paid, who is due and what the month looks like. I used to find this out from my bank app. Now I find it out from the same place I find everything else.
Teaching the Ads What a Good Lead Looks Like
This is the piece most businesses never connect. When a lead becomes a held call, and later when a lead becomes a won client, the CRM tells Meta's Conversions API. Meta stops optimizing for whoever fills out a form and starts optimizing for whoever actually shows up and pays.
Form fills are cheap and often junk. Held calls and won clients are the real thing. Sending those back to the ad platform means every week of ad spend teaches the system a little more about who my actual customers are. It is the same idea I use on client automation work: close the loop so the expensive thing gets smarter.
What I Deliberately Leave to a Human Click
The CRM never sends anything on its own. It drafts, it queues, it reminds, and then it waits. The hello email, the first text, the reschedule, the follow ups the manager finds, all of them wait for me.
I built it that way on purpose. A message with my name on it is a promise, and I want to have read it. The draft gets me most of the way, and the click keeps me honest. It also catches the edge cases software cannot see, like a lead who already texted me on a different number, or a client I know is dealing with something and should not get a chirpy follow up today.
The cost of that choice is one click, a few times a day. The benefit is that nobody has ever gotten an email from me that I did not mean to send. I think that trade is right for almost every small business, and it is the first thing I would tell anyone copying this.
What It Cost Me
About two days of focused work. I used AI coding tools for most of the typing, and I keep improving it weekly, usually a small change after I notice something annoying during the day.
I want to be honest about what that means. I use AI the way a carpenter uses power tools. It made me faster, but it did not decide what to build. The plan for every piece came from running the business the slow way for a long time, knowing exactly where leads fell through, and knowing which clicks I was willing to keep. I tested it on real leads and real calls, and I support it myself. If it breaks, I fix it, which is also how I support the systems I build for clients.
The stack, for anyone curious: Next.js on Vercel, Supabase Postgres for the database, the Gmail and Google Calendar APIs, Cal.com webhooks and Stripe. Nothing exotic. The value is in the rules, not the tools.
What You Should Copy
You do not need my CRM. You need the ideas in it, and most of them work with whatever tool you already have.
- Leads land by themselves. If any lead source still requires someone to type, fix that first. It is the step that quietly loses the most money.
- Outcomes take one tap. If logging a call is work, people stop logging calls, and then your data is fiction.
- Missed calls get their own pile with a drafted follow up. The reschedule message should already exist when you look at the pile.
- Something checks for what fell through. A scheduled process, a daily report, even a recurring alarm. The point is that a forgotten lead gets found by the system, not by luck.
- A human clicks send. Draft everything, send nothing automatically. You keep your voice and you keep control.
- Feed real outcomes back to your ads. Held calls and won clients, not form fills. This is the one most people skip, and it is the one that makes the ads cheaper over time.
I put the same rules into the booking system I built for a law firm, which answers the phone, collects payment and books the consultation, and has booked over $20,000 for them. Different business, same shape: the system does the work, the owner makes the decisions. The AI receptionist that answers their line is the front door, and the CRM logic behind it is what turns the call into money.
If you want something like this built around how your business actually runs, book a call or text me at (805) 433 4465. I will walk you through mine on screen and tell you which parts are worth building for you.
Want Help Implementing These Strategies?
Book a free strategy call to discuss how we can apply these strategies to your specific business.
Book Your Free Call