Home

How I’ve used AI

I use AI for repetitive work like data pulls, research and first drafts. I handle anything that involves talking to a person. This page shows the workflows I use, where they’ve gone wrong and where I don’t use AI.

How I think about it

If I know what I’m looking for and how the output should look every time, that work doesn’t need me. I was spending a lot of my week doing repeatable tasks by hand, so I started handing them off.

I set up AI the same way I would train a new hire. I write down how the job is done, give it the inputs, check a sample of its work and then let it run on a schedule. When the work involves a customer or a candidate, AI can help with a draft, but I make the decisions and I send the message.

Building and coding

Claude Code and scripts for pulling and reshaping data. I’m not a developer. I describe the job, check the output, and fix what’s wrong.

  • The CRM message pull. Export every conversation from GoHighLevel (about 35,000 messages across 7,000 contacts), classify each one as warm, cold, or don’t include, and produce a follow-up list. Full write-up: What 35,000 customer conversations showed me about where leads die.
  • The permit pull. SQL against the public short-term-rental permit records to build the Airbnb host list that feeds our annual cold text campaign.
  • Resume scoring. A small script that checks a tailored resume against a job posting for keyword coverage and for words that sound like a machine wrote them, before I ever look at it.

How I work with it:

  • Write the spec first: what goes in, what comes out, what “correct” looks like. If I can’t write that down, I’m not ready to automate it.
  • Start with a sample. I test on ten rows before running it on 35,000.
  • Make it tell me what it did and why, so I can catch the step that’s wrong instead of a wrong answer at the end.
  • Keep each piece small, with one pull, one classification and one output at a time. Mistakes are much easier to find in small steps.

The first version of anything I build with it is usually a little wrong in a way that looks right. So I check a sample every time, and when I find one error, I look for the same error in the rest of the output.

Automation: workflows that run without me

The things that run on a schedule or a trigger without me at MaidThis. Every one of them has a human checkpoint before anything reaches a customer or a candidate.

WorkflowTriggerWhat it doesWhat I still do
Hiring chatbotNew cleaner applicantSchedules the interview, sends reminders, collects paperwork, moves them through the pipeline in GoHighLevelThe interview itself, the onboarding call, the decision
Cold text campaignsI launch themTwo-text sequence to a list built from public permit records. Replies land in the CRM for a person.Write the offer, approve the list, handle every reply
Weekly KPI engine (n8n)One click before the Monday meetingPulls the week from bookings, calls and texts, the CRM, payments, email and recruiting into one sheet. A Looker Studio scorecard shows every number against its goal, and the Claude API reviews every new-lead sales call against our scripts and posts coaching to Slack.Enter the two numbers with no clean source, run the meeting, coach from the review
Ops botEvery 10 minutes, plus questions in SlackSuggests the top three teams for each booking without one, posts tomorrow’s uncovered jobs at 4pm, and lists the day’s customer check-ins and the week’s at-risk customersAssign the team, make the calls
Pay botMonday morningDrafts each team’s weekly pay from our bookings, Operto emails and #accounting messages, and asks about anything unclearAnswer its questions, approve the pay, send the statements
Live sales coachEvery 5 minutesCoaches the real sales call with each new lead in Slack and learns from my correctionsCorrect it when it’s wrong, coach the rep
Thumbtack to CRMDaily at 5:30pmAdds new Thumbtack leads to GoHighLevel and matches each one to its phone numberCall the leads
Host sign-up alertAn Airbnb host signs the agreement formPosts the details to Slack so the team can onboard them that dayThe onboarding call
End-of-day lead text4:30 pmTexts every lead we haven’t heard back from that day, before the office closesEverything after they reply

Hiring is the biggest job in this business and most of it is logistics: getting a candidate to show up to an interview, chasing paperwork, reminding them about the onboarding call. I moved all of that into GoHighLevel with an AI chatbot that handles scheduling, reminders, and documents. It saves the team about 10 hours a week and more applicants make it to the interview, because nobody falls through a gap waiting on a human to text them back.

What it does not do is interview anyone. Attitude and work ethic are what I’m hiring for, and I can’t read that from a form.

Rules I follow:

  • A person reads anything before it reaches a customer or a candidate. The automation gets people to the conversation, and a person handles the conversation itself.
  • Every automation logs what it did. If I can’t see what ran, I can’t trust it.
  • If it fails twice, I rebuild it rather than patch it.
  • I only automate a step after I’ve done it by hand enough times to know what good looks like.

Related projects: An ops bot that suggests the right team for every booking, A pay bot that drafts weekly team pay for me to approve, An AI sales coach that reviews our sales calls as they happen, Getting every Thumbtack lead into our CRM the same day and A weekly KPI engine: n8n, Looker Studio and AI sales-call review.

Working alongside it

The longer tasks I hand off and then review: quoting commercial jobs, analyzing a dataset, researching a company before I reach out, first drafts of SOPs and job posts.

  • Commercial quotes. A business sends photos and fills out an intake form. AI turns that into a draft quote using our pricing rules and minimums. I check it and send it. We quote same day instead of scheduling a walkthrough, which matters when the first good quote usually wins.
  • Big-dataset analysis. The 35,000-message CRM pull. The hiring funnel numbers from our sprint. Anything where the question is clear and the data is too big to read.
  • Company research. Before I email someone at a startup, I want to know what they built, what they’ve written, and what they’re hiring for. That’s 20 minutes of reading per company I don’t have to do.
  • First drafts. SOPs, job posts, client emails, the operating cadence doc. It gets the structure right, and then I fix the voice and the details.

I don’t live in Phoenix anymore, so I can’t walk a building before quoting it, and I don’t have someone there who can do it consistently. The old process was a walkthrough, a spreadsheet, and a quote a few days later. Now the lead fills out a short intake form with photos of each area and the schedule they want. AI drafts the quote against our hourly rates, visit minimum, and target margin, and flags anything in the photos that would change the labor estimate. I review it, adjust if something looks off, and send. The whole thing takes minutes. If the job is unusual, I still send a person.

How I review its work:

  • Spot-check a sample against the source before trusting the whole output.
  • Ask it to show its reasoning along with the answer. It’s easier to catch a wrong step than to work backward from a wrong total.
  • Numbers get traced. If I can’t follow a figure back to where it came from, it doesn’t go in.

What it’s bad at:

  • Knowing what it doesn’t know. It will fill a gap with something plausible unless I tell it to flag the gap.
  • Reading a room. It can draft the email to an upset client, but it can’t tell me whether to send it or call.
  • Sounding like me. Even after studying my writing, its first draft is usually too polished, so I rewrite parts of it in my own words.

Thinking and writing

Chat as a sparring partner and a tutor. Pressure-testing a decision, cutting a memo to one page, and learning a new field fast enough to be useful in it.

  • Arguing the other side. Before I make a call (an offer for a campaign, a hire, a price change), I have it make the best case against me. It often finds a gap I missed.
  • Editing down. A memo that’s two pages becomes one without losing the point. I write the first draft, and it tells me what’s padding.
  • Learning on purpose. When I decided to move from running my own business into startup operations, I had it read about 50 current job posts and a stack of hiring guides and tell me where my gaps actually were, in order. That turned into a learning plan measured in finished work instead of hours: a book summary and quiz per book, a study guide with free resources first, and a project at the end of each step. Most of this portfolio is those projects.

I know my own numbers cold: budget vs actuals, a 13-week cash forecast, team pay as a percent of revenue. I didn’t know the startup words for them, or how a runway model, an investor update, and a board deck fit together. So I had it build a study guide: the free sources to read (a SaaS financial plan template, a metrics guide), summaries and quizzes for the books I’d finished, and a glossary in plain English. Then I put it to use by restating my own business in gross margin, CAC, payback and LTV, which is in the project list.

I make the recommendation, the judgment call and the final wording. AI can lay out the options and the risks of each, but I make the choice and I speak for myself.

My toolkit

ToolWhat I use it forSince
Claude (chat, scheduled tasks, Claude Code)Analysis, drafts, data pulls and scripts, study guides2024
GoHighLevel automationsCRM, recruiting bot, cold text campaigns, lead follow-up sequencesFeb 2024
ZapierConnecting tools, like sending form sign-ups to SlackFeb 2024
NotionOps manual, SOPs and trackersFeb 2024
n8nSelf-hosted weekly KPI workflow that pulls bookings, calls, leads, payments and recruiting into one sheet, reviews sales calls with the Claude API and posts to SlackOct 2026

Where I draw the line

  • Nothing goes to a customer or a candidate without me reading it first. AI drafts in my voice, but I edit it and I send it.
  • I trace every number back to its source before it goes in a document.
  • I don’t automate conversations. Interviews, upset clients and founders I want to work for hear from me directly.
  • If the model gets something wrong once, I check the rest of its work for the same mistake.