All guides

AI Content From Completed Jobs Starts With the Job You Already Finished

Guide · Planning, buying and running AIMcGuire Flanigan · Updated November 4, 2026 · 13 min read

The material for a hundred posts is already filed in your completed job records, your job photos, and the conversations your crew had on site. Nobody has the time to open them. That is the whole content problem, and it was never a writing problem.

The Content Is Not Missing, It Is Filed Under a Customer Name

Ask a service business owner why they do not post, and the answer is almost never that they cannot write. The answer is that at seven in the evening, after the last call and the last invoice, sitting down to think of something to say is the least urgent item on a list that still has payroll on it. So the feed goes quiet for six weeks, a burst of posts goes out in one afternoon, and then it goes quiet again.

The thing worth noticing is what happened in those six weeks. Forty jobs were completed, each with a service type, a property, a machine, a diagnosis, and a photo set. A customer asked a question that four other customers have asked this year. A technician wrote a note explaining why a part failed and what would have happened if it had been left. Two hundred photographs were taken, most of them deliberately, precisely because somebody on site thought the situation was worth recording. All of it is on file. Almost none of it will ever be looked at again.

This is a sourcing problem before it is a production problem, and it is the reason the content tools most businesses try do not stick. A generator that starts from a blank box asks the owner to be a writer, which is the one thing they told you they are not. A system that starts from a closed job asks them to be an approver, which is a role they already play every day. The first draft is not a blank page. It is a job record with eleven photographs attached, and the work is opening it, ordering it, and pulling out only the sentences the record can prove.

That last constraint is what keeps this honest, and it is not negotiable inside the build. The agent drafts only from fields a person at the business actually filled in, and when a claim has no field behind it, the claim comes out of the draft rather than being filled in with something plausible. It arranges and it drafts. The business confirms the facts and owns the claim. A model that has never been in the truck cannot verify that the repair went the way the caption says, and no amount of fluent prose changes that, which is why the approval step is a load-bearing part of the design and not a legal courtesy.

The reframe

Your content problem is not a blank page. It is a completed job record with eleven photographs attached to it that nobody has opened since the truck left.

How Much Publishable Material You Already Closed This Month

Set your own numbers. The model shows how many photographs the business produces against how many it ever publishes, how many story jobs the record can actually support, and what the drafting time is worth.

Photo assets per month

480

about 264 ever reach a public post

Story jobs the record supports

21

42 drafts prepared, 23 published

Annual drafting time recovered

$4,916

10.8 hours per month at $38/hour, assuming 70% of the first-draft work moves off a person

Where the raw material actually comes from

Record: the job as it sits on ServiceTitan, Jobber, Housecall Pro, or AutoLeap after the tech closes it

What was found, what was replaced, which property, which equipment, and who did the work. This is the spine of the post, and it is the field nobody opens once the invoice goes out.

Record: the media attached to that job on the same platform

The before, the access, the failure, the part, the after. Eleven images that mean nothing as a gallery and everything as a sequence, because the story is the order, not the pictures.

Record: call notes, messages, and the service history on the customer record

The question they actually asked and the objection they actually raised. A post that opens on the thing the customer was worried about is a post a stranger recognizes as their own situation.

Record: the invoice and estimate lines in the accounting system

The scope, the material, the options presented, and the work the customer declined. Lines that were written for billing turn out to be well-formed descriptions of what a job actually was.

Record: the free-text job note typed on site, before the truck leaves

The informal remark that never leaves the app: what it turned out to be, what nearly went wrong, what the next guy should know. The most human sentence in the entire record, and the one with the shortest shelf life.

The shares are a distribution of where finished sources draw their material, not a measurement of your business, and they are held here so the five bars always reconcile to one hundred percent. Note that the record and the photos carry more than half of it between them, and both of those are written by someone on site, before the invoice goes out.

Illustrative estimate from the inputs above. The dollar, hour and percentage figures will differ for your business; this is not a measured result or client data.

From a Closed Job to a Published Post, Stage by Stage

Six stages. Each names the system it reads or writes, the payload it leaves behind, and the one place a plausible build breaks. Note that the first four stages publish nothing, and the fifth is a person.

Target System

The job record on the field service platform you already run

A Completed Job Is Read, Not Remembered

The starting point is not a content calendar. It is a closed job. The record already carries the address and the service area, the equipment or the property, what was found on arrival, what was replaced, what was declined, and who did the work. Everything a post needs to be specific rather than generic is sitting in that record. The reason no post gets written is not that nobody can write, it is that opening the record is a separate task that no one owns, and it always loses to the next call. The agent reads the job at close, while the details are still true.

The jobs are read a month later in one content batch, and by then the technician who remembered the odd detail has moved on, leaving the record as the only witness.

Stage payload

The Systems the Raw Material Is Already Sitting In

None of this requires a new system of record, and that is the point. The job, its photos, its invoice, and its customer already live in the platforms a service business runs: ServiceTitan, Jobber, Housecall Pro, AutoLeap, Tekmetric, Shopmonkey, CCC ONE, and QuickBooks. Those stay the immutable truth. The agent reads them, and where a platform exposes an integration path, connects to it. Where one does not, the material arrives by the export the business already has, and the page says so rather than implying a live feed that does not exist.

What gets built is a thin layer above all of it: a candidate list of recently closed jobs, an ordered photo set per job, a draft with every sentence tied to a source field, an approval queue, and a small log of what shipped. The layer holds no facts of its own. If the layer is deleted tomorrow, the systems of record are untouched, which is the property that makes this safe to run next to a business's actual operations.

The publishing side is equally unremarkable. A caption goes to a social channel, a longer case note goes on the website, a short version goes to the Business Profile, and a structural version of the same job can carry ImageObject markup on the page so the image is associated with the page it appears on. Nothing there is exotic, and nothing there needs a promise about reach. See how the reads connect on the integrations page.

One technical note worth stating plainly, because it is where a naive build breaks. Media on a Business Profile location carries a documented minimum: except for the profile and cover categories, all photos must measure a minimum of 250 pixels on the short edge with a file size of at least 10240 bytes, and the business media guidelines list JPG or PNG between 10 KB and 5 MB with a recommended 720 by 720. A phone photo from a job site is usually fine and occasionally is not, so the sizing check belongs in the pipeline before anything is submitted, not in a rejection notice afterwards.

What the System Does Alone, With You, and Never

Reading a completed job and writing to a customer-facing channel are very different actions, so the boundary is drawn per action rather than per feature. The tie-breaker is always the same: if the claim cannot be traced to a field somebody filled in, and a person has not confirmed it, it does not ship.

Autonomous

  • Read a closed job at close and pull its structured fields
  • Order the attached photo set into a before, access, failure, part, after sequence
  • Extract the service, the property, the equipment, and the scope from the record
  • Match every draft sentence to the field that supports it and drop the ones that do not
  • Check a draft back against the record before a person ever sees it
  • Log which job was used and which customer asked not to be featured

Supervised

  • Draft the caption, the case note, and the profile post for a person to approve
  • Propose which frame opens the photo set
  • Propose the next service line so the feed does not repeat itself
  • Flag any draft carrying a warranty term, a price, or a customer name for a closer read
  • Draft the consent request before a photo set is reused

Never

  • Invent a job, a repair, or a detail the record does not support
  • Publish job photos of work the business did not do
  • Use stock imagery as though it were this business's own work
  • Fabricate a review, a testimonial, or a customer quote
  • Attribute a quote to a customer who never said it
  • Publish a photo of a customer's property without consent
  • Auto-publish a draft before the business confirms the claim

Three Things We Will Tell You Not to Buy

A content mill that invents jobs

If the drafts arrive fully formed and describe work nobody in the business remembers performing, you have bought fiction with your name on it. The tell is that the posts are interchangeable: swap the town and the equipment and the same paragraph fits yesterday's job and next week's. Content drawn from a real record is specific in a way that is hard to fake, because the specificity comes from the record and not from the model's imagination about what a roofing job is like.

A generator that publishes photos of work you did not do

Stock photography in a service business feed is a quiet lie, and it is a common one. Google's own media guidelines for Business Profiles ask that a photo represent reality and be in focus and well lit with no significant alterations or excessive use of filters, and separately prohibit content that is not based on a real experience or does not accurately represent the location or product. Your own job photos are the asset here. If the pipeline cannot reach them, the answer is to fix the pipeline, not to fill the gap with a stranger's photograph of a furnace.

Anything that fabricates a review or a testimonial

A caption is the business describing its own work. A testimonial is a customer describing their experience, and the two are governed differently. The FTC's rule on consumer reviews and testimonials, which took effect on October 21, 2024, prohibits writing, creating, or selling a fake or false consumer review and reaches conduct that misrepresents that a reviewer used or had experience with the product. Google's structured data guidance says the same thing from the other direction, excluding reviews the business controls about itself and prohibiting fake or undisclosed incentivized reviews. If a content tool ever offers to write the customer's part, close the tab.

Questions About Turning Completed Jobs Into Content

Where This Fits in Marketing and Reputation

This page owns the sourcing of content from completed jobs: the job record as the source, the photo set as the story, and the rule that the business confirms the facts. It hands the publishing cadence to the social posts page, the reviews to the reputation family, and the local surfaces to the local SEO page, rather than re-arguing any of them here.

Find Out How Much Finished Work Is Sitting Unpublished

Bring us the platforms you run and a rough count of completed jobs per month. In thirty minutes we will show you how much publishable material those jobs already contain, where the record is too thin to support a post, and what it would take to close the gap. You keep the read whether or not you hire us.

Questions operators ask

Where does the content actually come from?

From the job you already finished. The completed job record holds the service, the property, the equipment, the diagnosis, the work performed, and the technician. The media attached to that job holds the before and after. The invoice holds the scope. The customer record holds the question the customer asked. Nothing in that list has to be created, which is why the bottleneck was never writing ability. It was that opening a closed job is an unowned task, and unowned tasks do not happen.

What if my technicians barely write job notes?

Then the house is smaller, not empty. A job with a service type, a property, an equipment field, and a photo set still supports an honest post about what makes that kind of call difficult. What it cannot support is the specific detail, and the system will not invent one to cover the gap. The honest move is to fix the note, because the same note that feeds content also feeds the next technician who walks into that property. If a business wants better content, the highest-leverage change is usually a shorter, structured job note form rather than a better content tool.

Can the agent publish the photos on its own?

No, and the reason is not squeamishness. The photo of a customer's basement belongs to a customer. Reusing it in a public post is a decision about someone else's property, and it is the business that has to make it, not a model that has never met them. Structurally, the agent identifies the candidate set, orders it, and drafts around it, and the business approves. That single gate also happens to be the gate that catches the address in the frame, the licence plate on the street, and the neighbour's house behind the fence.

Is this the kind of AI content Google penalizes?

Google's spam policy on scaled content abuse describes it as generating many pages for the primary purpose of manipulating search rankings and not helping users, and Google's guidance on generative AI names using generative tools to generate many pages without adding value as an example of exactly that. The distinguishing question is not whether AI was involved. It is whether the page carries something a reader cannot get from a generic page. A post built from a specific completed job, with that job's photographs and that customer's actual problem, carries first-hand experience, which is the thing Google's own guidance says it looks for. A hundred paraphrased paragraphs about why maintenance matters carries none, however cleanly it is written.

Does this replace asking customers for reviews?

No, and confusing the two is expensive. A job photo caption is the business describing its own work. A review is a customer describing their experience, and the two carry different weight for exactly that reason: one is the business's own account of work it performed, the other is a third person's account of being served. A caption written in the first person of a customer is a fabricated testimonial, not a caption, and no amount of accurate job photography makes it anything else. They are separate systems and they are built by separate processes. This page builds the first and never the second.

See where AI fits in your operation

Thirty minutes on how the work actually moves. No pack of agents. No obligation to build. If we can help, we will show you the first paths. If we cannot, we will say so.

Book a free audit

No credit card. No obligation to build.