Most service businesses have a social media strategy that goes like this: someone remembers Instagram exists, digs through their camera roll, finds a half-decent photo of a job from three weeks ago, posts it with "Another one done! 💪" and then disappears for six weeks.

That's what happens when you have a schedule to run and payroll to make. Writing captions is nobody's actual job.

Skip the tool that runs your feed for you. Those exist, they run anywhere from single-digit dollars a month for the light ones up to a few hundred a seat for the ones that market themselves at businesses, and what they hand you is the kind of generic filler that makes people scroll past. What actually works is smaller and less exciting: a 15-minute session, once a month, where you turn one real job into four weeks of posts.

Why social media breaks for service businesses

Big companies have content teams. You have a truck and a phone. The advice written for those companies assumes a production pipeline you don't have and never will.

The standard playbook fails in a predictable way. You post nothing for a month, feel guilty, then post five things in one afternoon, then post nothing again. Meanwhile there's nothing on your page for anyone who looks you up to find, and organic reach on a business page is already thin enough that a cold page starts from nothing every time.

In every local account we've watched, the page that posts something mediocre twice a month does better than the page that posts something polished twice a year. A plain photo of a repaired condenser with three specific sentences under it outperforms a designed graphic that says "Beat the Heat This Summer!" Local customers aren't looking for design. They're looking for proof that you work nearby and that you finish what you start.

One job, four posts

Pick a job you finished in the last two weeks. A normal one you have a photo of.

Now gather three things, which shouldn't take you long:

  • A photo or two. Before and after if you have it. A phone shot is fine.
  • What the job actually was: the scope, and whatever made it annoying.
  • What the customer got out of it. Money saved, or just the problem gone.

Open ChatGPT or Claude, whichever you already pay for (we compared the three of them for small business work if you're still deciding), and give it all of that in plain language. Type like you're texting a coworker. Don't try to write it well, that's the machine's job. Tell it your voice while you're at it: "Write like a 20-year plumber talking to a neighbor, not a marketing agency" changes the output more than any other instruction you can give it, and it's the fastest cure for copy that reads like a robot wrote it. Then ask for four specific outputs:

  • Four Facebook posts working four different angles on the same job: the finished result, the problem that caused the call, one thing you had to explain to the customer, and one mistake homeowners make with this kind of system. 80 to 120 words each, conversational, no hashtags.
  • Instagram versions of two of those. Shorter, five relevant hashtags, no emoji walls.
  • A Google Business Profile update, under 100 words, with the first 40 words carrying the whole point.
  • Three story or short-video ideas from the same job.

The word limit on that third one matters more than it looks. The field takes 1,500 characters, but Google cuts the post off with a Read more link somewhere around 250 characters on desktop and closer to 200 on a phone. Everything past that only gets read by someone who taps, and most people don't.

That's a month of Facebook posts, two Instagram captions, a Google update and a shot list, out of one job and one prompt. Total time including the photo hunt: about 15 minutes. What you get back is drafts. You read each one in the week you publish it.

The part AI genuinely cannot do

Feed a generic prompt into any model and you get generic output. "We recently completed an HVAC installation for a satisfied customer" is technically a sentence, and it is worth exactly nothing. Better prompts are most of the difference.

Specificity is the whole game, and specificity has to come from you. The model wasn't at the job site.

Compare these two inputs. First: "Replaced an AC unit for a customer." Second: "Replaced a 22-year-old 3-ton unit in a 1978 ranch house off Hayden in Scottsdale. Original ductwork, undersized returns, so we resized two of them while we were in the attic. Their July bill dropped about $80. Job took a day and a half because the attic access was 18 inches wide. Homeowner okayed using the street and the number before any of it went up."

Same job. The second one produces posts a local customer recognizes as real, because someone in that neighborhood has the same house with the same duct problem. The first one produces content that could belong to any HVAC company in the valley.

That last line of the second input isn't decoration. A street name plus a build year plus a house type gets close to identifying one specific person's home, so ask before you name a street or publish what somebody saved. Same for pictures: get an okay before you post a photo of a customer's house, particularly one showing a house number, a plate, or the inside. Plenty of trades already have a photo release clause sitting in their contract. Worth finding out whether yours does.

Keep dollar figures to what you actually saw on a bill, too, phrased as "about $80" rather than a hard number, and say plainly that it's what one house saved rather than what everyone saves. A savings claim is a performance claim. The FTC's substantiation rules expect you to have the bill in hand before you post the number, and its endorsement guides treat an unqualified result as a claim about the typical customer.

If you run a medical, dental or legal practice, treat the job-specific part as off limits. Writing up a real patient or a real client with the scope and the outcome is a disclosure before it's anything else. Both HIPAA and the confidentiality rules do allow marketing use with permission, but the generic photo release in your intake packet is not a HIPAA authorization: that's a separate document with its own required elements, and a lawyer needs informed consent on the record before a matter shows up in a caption. Run the same 15 minutes on something that isn't one person's file: a service you offer, the seasonal question you answer twelve times a week, what actually happens at a first appointment. Everything below about specificity still applies. You're just being specific about the work instead of about a patient.

Names of neighborhoods, ages of houses, actual dollar figures, what went wrong: that's the raw material, and AI is a formatter for it. Every fact in the post has to come from you, and every time you let the model invent a detail to fill a gap, you're publishing something you can't stand behind.

So never let it invent a customer quote, and read every post before it goes out. Models still occasionally produce claims like "licensed in all 50 states" that you did not authorize and cannot back up.

That read-through is also where you catch a missing license number. Arizona requires licensed contractors to include the ROC number in advertising (A.R.S. § 32-1124), with a carve-out at subsection (B)(4) for internet, broadcast and outdoor ads if you show a website URL and that site's homepage displays your licensed name and number prominently, not buried in the footer. The carve-out stops at advertising, though. Bids, contracts, estimates, print ads, letterhead and anything else you hand a customer still need the number on them outright, and the ROC's own write-up is worth five minutes if you're unsure. A post promoting a job you did is advertising. Arizona real estate agents have the parallel version of the same rule, brokerage name and license status on the ad, under A.A.C. R4-28-502. Look up your own state's disclosure rule once, then bake the license number or the compliant URL into your prompt template so every draft comes out already carrying it.

Build the bank, then just pull from it

Do this once a month with a different job and you'll finish the year with 48 Facebook posts, 24 Instagram captions and 12 Google updates sitting in a folder. What you're building is a calendar you fill once a month instead of scrambling at once a week. Be clear with yourself about what that is: twelve jobs, each written up several ways. Pick twelve genuinely different jobs or the feed starts to sound repetitive by spring.

Keep the storage simple. A Google Sheet with five columns: date drafted, job reference, platform, the post text, posted yes/no. Or a folder of text files if spreadsheets annoy you. The tool doesn't matter. Having the drafts written before the week you need them does.

Then your weekly job shrinks to something you can do while your coffee is still hot: open the sheet, grab the next post, read it once, fix anything that sounds off, publish. Two minutes. You can schedule a week ahead in Meta Business Suite for free if you'd rather batch it.

You're front-loading the thinking so the execution stops requiring any. The creative work happens once a month when you have 15 minutes and a photo. The rest is copy and paste.

One warning about going further: resist the urge to connect this to an auto-poster with no human in the loop. The failure mode is ugly. A scheduled post about a beautiful backyard remodel that fires the same morning a storm floods half the valley reads as tone-deaf, and nobody's watching to kill it. Thirty seconds of human eyes before publishing prevents every version of that problem.

What to expect

This won't make you go viral. Local service businesses don't go viral, and the ones that do usually regret it.

What it does is keep your page alive and put your name in front of the neighbors of people you've already worked for. It compounds slowly. Six months of steady posting is worth more than any single clever campaign.

The same split applies everywhere you point AI at marketing work: it formats, you supply the facts. We drew the same line for local SEO content, where getting it wrong costs you rankings instead of just a dull caption.

And it costs you a quarter of an hour a month, which is roughly the amount of time you currently spend feeling bad about not posting.

If you want a hand setting up the prompts and the content bank so it runs without you thinking about it, we'll do a free content audit and send back the actual posts your last few jobs could have produced, whether or not you hire us. Send us a note.