Photograph every job in the same six-shot sequence, add a two-line job note with the facts a camera cannot show, then give the photos and note to a chat assistant to write captions, alt text, a Google Business Profile post and a project page. Get the customer's permission first, and check every caption for facts the AI invented.
The AI sees what is in the picture and nothing else. It cannot measure an area, read the date or location from the file, or know what you promised in the contract, and OpenAI's own image guide warns that its descriptions can be wrong and its counts of objects approximate. So the routine below is the opposite of "upload and hope": you supply the facts, the model supplies the wording, and you check the result against the job.
One job, one phone: six shots and a two-line note
The sequence takes about ten minutes on site and works for a driveway or a car park. The aim is to tell the story of the job in the order a customer would care about it, including the layer they never see once the surface is down.
| Shot | What it shows | Why it earns its place |
|---|---|---|
| 1 Before, wide | The old surface from a fixed standing point, such as the gatepost | Becomes the left half of every before-and-after pair |
| 2 Before, close | The worst failure: cracking, a pothole or ponding | Shows the problem the customer actually had |
| 3 Base ready | The milled or graded, compacted base before the surface goes down | Shows the work that justifies the price and is invisible afterwards |
| 4 Laying | The crew and machines at work, with no faces or customer vehicles in frame | Proves the work is yours and real |
| 5 After, wide | The finished surface from the same standing point as shot 1 | Becomes the right half of the pair |
| 6 Detail | An edge, a joint or the place where the surface meets a drain or door threshold | Shows care in the part people inspect |
Commercial jobs add a seventh shot of the new markings. Then comes the part most crews skip: the job note. It is two lines, typed or spoken before you leave the site, because you will have forgotten the details by the evening.
Line 1: job type, area, as-built surface depth, days on site.
Line 2: the one problem solved, and the customer type (residential or commercial).
Example: Resurfaced driveway, about 1,800 sq ft, 2 in. surface course over repaired base, 2 days on site.
Water pooled at the garage apron; regraded so it now drains to the street side. Residential.
If you use CompanyCam, its Quick Caption feature suits the note. CompanyCam's help article says it turns your voice into a photo description, is available on every plan, works only in the mobile app, and is not counted against the AI Action limit on plans that have one. Notice that it transcribes what you say rather than recognising what is in the photo, which is exactly the right division of labour: you state the facts and the software types them.
Name the files as you save them, so that six months from now you can find the job. A pattern such as 2026-11-04_driveway_1800sqft_before-wide.jpg costs three seconds per photo and means the "before, wide" shot from any job is a search away.

The Complete Excel Course with AI Integration
From formulas and pivot tables to Power Query, DAX, VBA and AI with Copilot, ChatGPT and Claude — hands-on from the first lesson.
By Sagnik Bhattacharya and Virginia Thorn, Primetime Emmy Award winner
Buy nowPermission and privacy before a photo goes public
A finished driveway is also a picture of someone's home, and a finished car park is a picture of a business with tenants, staff and customers. Ask before you publish, and ask in a way that is easy to say yes or no to. The best place is a separate tick-box in the contract or proposal, not a sentence buried in the terms. The tutorial on paving contract clauses shows where such a box can sit alongside the payment and warranty terms.
Photo permission (tick any you agree to)
[ ] You may photograph our work and use the photos on your website and social pages, without showing house numbers, vehicle plates or people.
[ ] You may name our neighbourhood, but not our street.
[ ] You may quote a short extract from our review.
We can withdraw permission at any time by emailing [address]. You will remove the photos from your own channels within [14] days.
Three notes on that wording. It is a starting point, so ask an adviser whether privacy rules where you work call for more. The withdrawal promise is only worth making if you keep a record of which jobs were published where, so a simple sheet with job, date, permissions ticked and places posted is part of the system. And a commercial site needs a different conversation: ask the property manager, because some properties restrict photography or need tenant approval, and get the answer in writing.
Before any photo is published, crop out the things that identify or endanger people: house numbers, vehicle plates, faces (especially children), neighbouring properties and any gate keypad or alarm panel. Then deal with the location data. Phone cameras can save the shooting location inside the photo file when camera location access is on, and the setting's name varies by phone. A precise location on a photo of a customer's driveway identifies their home. Switch location tagging off in the camera settings, or remove it from the copies you publish. The AI tool does not see this data, because OpenAI's image guide says the model does not process original file names or metadata. Your website, though, may publish whatever file you upload, so the habit has to be yours.
The captioning prompt, with a sample result and what to fix
ChatGPT, Claude and Gemini all accept photos. Send the four to six photos from one job together with the job note, not one photo at a time, so the model sees the whole story. Large originals may be resized before analysis, and Claude's vision documentation shows a limit of 10 MB per image on claude.ai, so check your tool's limits and export smaller copies if an upload fails.
You write marketing copy for a small paving company. I am attaching six photos from one finished job and my job note.
Job note (these facts are true; use only these): [paste the two lines]
Write:
(1) a caption for each photo, under 25 words, describing only what is visible plus facts from the job note;
(2) alt text for each photo, under 15 words, a plain description for screen readers;
(3) one Google Business Profile post, under 120 words;
(4) one social post for homeowners, under 80 words, with no more than five hashtags.
Rules: do not state a price, a warranty, a guarantee, a number of years or a lifespan; do not name a street, a customer or a vehicle; do not use "best", "premium" or "guaranteed"; if a caption would need a fact I have not given, write [FACT NEEDED]; British English.
Here is an illustrative extract of what comes back for the profile post.
Another driveway finished this week: about 1,800 sq ft resurfaced over a repaired gravel base. The old surface pooled water at the garage apron, so we regraded it to drain towards the street side before laying 2 in. of new surface. Two days on site and no mess left behind. Planning work for next season? Ask us for a free site visit.
It reads well, which is the danger. Four things need fixing. "No mess left behind" is a claim the job note never made. "Free site visit" is an offer you may not give. "Gravel base" is the model guessing the material from a photo, and the note says only "repaired base". And the post gives no sign of the closure period, which homeowners often ask about, so add the number from your supplier's guidance rather than letting the model invent one. The five-hashtag limit in the prompt matches Instagram's cap on hashtags per post, which has applied since December 2025. The photo captions in the same run need the same pass: check each one against the picture and the note, and treat a caption that describes something you cannot see in the photo as a guess.
Alt text deserves a line of its own. It is the description a screen reader speaks, so it should say what the picture shows in plain words, such as "Roller compacting the prepared base at the end of a driveway", not repeat keywords. It helps people who use screen readers and it is a good habit, but writing it is a minute's work for the model and a minute's check for you.
Project pages that earn their place in local search
A finished job of any size can become a short page on your website. The page works because it is specific: a real problem, a real area, real dates and a fix. A page like that says more to a nearby searcher than a paragraph of general claims, and it gives your service pages something concrete to link to.
| Section | Where the content comes from | Illustration |
|---|---|---|
| Heading and one-line summary | Job note, line 1 | Resurfacing a 12,000 sq ft office car park over one weekend closure |
| The problem | Before shots and job note, line 2 | Failed patches at the north end and standing water after rain |
| What we did | Base-ready, laying and detail shots | Milled 2 in., repaired the failed base, placed new surface, repainted 38 bays |
| How long it took | Your schedule record | Four working days, one weekend closure |
| Photos with alt text | The captioning run | Before and after from the same standing point |
| Next step | Your own call to action | A link to your commercial paving page and a phone number |
Ask the AI for 250 to 350 words from the job note and the captions, and tell it the page's audience: a property manager for a car park, a homeowner for a driveway. Then run the claims check from the previous section. The risk with pages is repetition. If two pages could swap photos and still make sense, you have written the same page twice, and a site full of near-copies gives searchers and search engines little reason to prefer any one of them. Every page needs one fact that no other page has. The tutorial on ChatGPT service-area pages without duplicate content covers that discipline in detail, and the remodelling company project-page tutorial shows the same idea in another trade.
Name the neighbourhood or town only if the customer agreed, as in the permission box above. If they did not, describe the service area in general terms. A page that says "a residential street in our service area" is less pretty than one with a place name, but it is safer, and the specific problem and fix carry the page anyway.
Google Business Profile: what to upload and how often
Google's help page on profile photos sets out the technical limits: files must be JPG or PNG, between 10 KB and 5 MB, with a minimum resolution of 250 by 250 pixels and a recommended 720 by 720. It asks for photos that are in focus and well lit, and it says there should be no significant alterations or excessive use of filters, so the image shows the business as it actually looks. Photos that break the content policy are marked "Not approved" and do not appear in Search or Maps.
Two practical rules follow. First, export smaller copies of your phone's originals, because they are often larger than 5 MB. Second, do not use AI to "improve" a finished surface. Making asphalt look smoother or darker than it is breaks Google's own guidance, and it promises a finish the real surface cannot deliver.
For rhythm, I would put three to five photos from each job into the photo gallery and publish one profile post a week from the library, rotating between a finished job, a before-and-after pair and a seasonal reminder. The AI draft from the captioning run is the first version of that post, and the tutorial on writing Google Business Profile posts with AI every week covers the weekly routine in more detail.
Residential and commercial: one photo, two captions
The same finished car park photo can serve two different readers, and the caption has to change with the reader. A homeowner worries about street appeal, cost and how soon the family can use the drive. A property manager worries about downtime, tenants and paperwork. Ask the AI for both versions in one run and keep them in separate channels.
| Reader | What they worry about | Caption angle | Where it goes |
|---|---|---|---|
| Homeowner | Street appeal, water pooling, disruption, a clear price | The problem you fixed and when they could use the drive again | Facebook, profile posts, the driveway page |
| Property manager | Tenant disruption, scheduling, documents, a surface that lasts | Phasing, closure window and the base work | LinkedIn, the commercial page, email |
Here are two illustrative captions from one photo of the resurfaced office car park. The homeowner-style version would read: "Fresh surface, clear new bay lines and no more puddle by the entrance. This one took four working days." The version for a property manager would read: "A 12,000 sq ft car park milled, repaired and resurfaced across one weekend closure, with all 38 bays repainted before Monday. Base repairs at the north end are documented with photos." The facts are identical. What changes is the question each one answers.
The commercial caption is also where the base-ready photo pays off. A property manager choosing between bids has to judge work they cannot see, and a dated photo of the compacted base is evidence that a finished-surface shot cannot give.
Seasonal posts from the same photo library
Once a dozen jobs are in the library, seasonal posts are an exercise in picking the right photo, not shooting a new one. The table assumes a climate with a cold winter. If yours has a wet or hot season instead of frost, swap the angle but keep the method.
| Season | Angle | Photo to pull from the library |
|---|---|---|
| Spring | Winter damage: cracks, potholes and edges that have broken up | Before-close shots of failures |
| Summer | Busy season: booking window and what a typical job involves | Laying and base-ready shots |
| Autumn | Last slots before the cold, and why asphalt is not laid below a minimum surface temperature | Detail shots and finished jobs |
| Winter | Planning and quotes for next season, with a gallery of finished work | Before-and-after pairs |
The autumn row has a bonus. Explaining that paving stops when the surface is too cold for the mix is honest and educational, and it is a reason a customer should book early rather than a sales pitch. The weather section of the paving contract tutorial gives the real mechanism, and it is worth quoting your own supplier's figure rather than a generic number.
Here are captions and job notes for twelve finished jobs. Choose the four photos that best suit a [season] post for [residential/commercial] customers. For each, write a post under 80 words that uses only facts in the job note. Do not mention prices, warranties or lifespans. Put [FACT NEEDED] wherever a detail is missing.
Run that prompt once a quarter and you have the next three months of posts in a single sitting, each tied to a real job and a real photo.
CompanyCam or a shared folder: where the photos live
The photos need a home that survives staff changes. There are two realistic options for a small paving firm, and I would start with the cheaper one.
A phone album plus a shared drive folder. One folder per job, named with the date, job type and area, holding the six shots, the job note and a text file recording the permissions. It costs nothing beyond storage, and it is enough for one crew doing a handful of jobs a month. Its weakness is discipline: the folder only works if every crew follows the naming pattern.
CompanyCam. It is built for this job, with photos tied to projects and timelines. When I checked its pricing page, Core was $63 a month billed annually, for one included user (two at most), with additional users at $29 each, and Crew and Scale were priced higher. CompanyCam's own pages disagree on AI access: the plan table lists 10 AI credits on Core, while an FAQ says AI features are included in Crew, Scale and Enterprise, so test the AI features on a trial before you rely on them. The page also lists an AI social media content add-on in its marketing suite. Quick Caption, described above, is available on every plan according to its help article.
My rule of thumb: stay with a folder while one crew takes the photos, and price an app when two or more crews need the same system or customers ask to see progress as it happens. The tutorial on construction photo documentation apps and what AI adds compares the plans in more depth.
A realistic slip: the caption that promised more than the contract
Consider an illustrative slip. A crew posts a driveway job with an AI-written caption reading "built to last 25 years, fully guaranteed". Nobody reads it closely because the photos look good. Eighteen months later the customer's driveway has a crack along the edge, and they quote the caption back. The contract promised 12 months of workmanship warranty with listed exclusions. The caption is not the contract, but it is in public, it is dated, and it makes the conversation far harder.
The fix is a forbidden-claims list in the prompt, as in the example above, plus a read-aloud check before anything is published: read each caption as if the customer were reading it over your shoulder and ask whether every claim in it appears in the job note or the contract. Warranty, lifespan, price and "guaranteed" never come from an AI. If you want the wording for what you do promise, the warranty section of the paving contract tutorial covers it.
A second illustrative slip is quieter. A well-meaning crew member runs the finished photo through an AI "enhance" tool, which sharpens the surface and evens out the colour. The result looks better than the real driveway, which now disappoints the customer who drives past it and the neighbour who asks for the same finish. Google's profile guidance against significant alterations exists for this reason.
Eight weeks later: what to measure
Decide in advance what would tell you the routine is working, because "we post more" is not a result. Track four things for eight weeks and compare them with the eight weeks before you started.
- The call, direction request and website-click counts shown on your business profile.
- Views of your project pages, and which pages are visited before a contact form is sent.
- Enquiries that mention a post, a photo or a project page, which means asking every new customer how they found you and recording the answer.
- Time spent per job on content, because a routine that takes an hour a job will not survive a busy summer.
A time budget helps you hold the line. Shooting the six photos and the note takes about 10 minutes. Naming and saving the files takes 3, running the prompt takes 3, checking the captions against the note takes 7, and publishing takes 2. That is 25 minutes a job. At 12 jobs a month it comes to five hours, and it produces 12 profile posts, 24 social captions, 72 captioned photos and a project page for each larger job.
If the numbers do not move after eight weeks, look at the weakest link before changing the tools. Usually it is one of three things: the photos are not specific enough to say anything, the job notes are missing so the captions are generic, or the posts go out without a clear next step for the reader. Fix the input and the output follows. Skip the routine on a job where the customer said no to photos, and log the refusal so nobody posts by accident.
Further reads
- Landscaping Business AI: Review Requests Built From Job Photos — Build review requests from the same job photos.
- AI Marketing for Contractors: Reviews, Case Studies and Local Posts — Reviews, case studies and local posts for contractors.
- Painting Contractor Marketing: Seasonal Campaigns With AI Content — Another trade's seasonal campaign plan, for comparison.
- Insulation Contractor Marketing: Autumn Campaigns and Local Pages With AI — Autumn campaigns and local pages for a related trade.
- How to Optimise Your Google Business Profile With AI — Get the rest of the profile working beyond photos.
- Paving Leads: Answer Commercial and Residential Enquiries With AI — Answer the enquiries this content brings in.
- Solar Installer Marketing: Local Pages and Case Studies Written With AI — Local pages and case studies written from job data.
- Asphalt Paving Estimating Software: What AI Adds and What It Costs — AI in paving estimating means measuring and takeoff, not bidding. Four setups priced from vendor pages, plus a tonnage sum and a five-lot test.
- Architect Website: Project Descriptions and Service Pages Written With AI — A copy workflow for architects: project descriptions from verified facts, service pages by project type, honest area pages and an FAQ on fees and process.
- Asphalt Paving Proposal Template: Scope, Exclusions and Weather Terms — A copy-ready asphalt paving proposal: scope, base condition assumptions, exclusions, weather terms and payment, drafted with AI and checked by you.
- Bathroom Fitter Marketing: Before-and-After Posts From Job Photos With AI — A bathroom fitter's routine for matched photos, customer permission, AI-written captions, Google Business Profile updates and a one-month posting calendar.
- Pressure Washing Marketing Ideas: Neighbour Offers and Posts With AI — Five neighbour offers with wording and sums, a 13-minute photo-to-post routine, Google Business Profile rules, and how to get permission for job photos.
- Welding Marketing: Website, Google Profile and Posts Drafted With AI — A welding marketing kit: five job-type pages, a Google Business Profile for a mobile or workshop welder, and weekly posts from real before-and-after photos.
- AI Tools and AI Development: The Complete 2026 Guide — the AI hub, including every tutorial in the AI-for-business series.
Sources: Google Business Profile help page on photo requirements; OpenAI's developer guide on image inputs (accuracy, counting, metadata and resizing); Claude's vision documentation; CompanyCam pricing page and its help article on Quick Caption; Instagram's five-hashtag cap, in place since December 2025.