Paving Marketing: Turn Job Photos Into Local Content With AI

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Paving Marketing: Turn Job Photos Into Local Content With AI.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Paving Marketing: Turn Job Photos Into Local Content With AI.

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.

Follow me on Instagram@sagnikteaches

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.

Connect on LinkedInSagnik Bhattacharya
ShotWhat it showsWhy it earns its place
1 Before, wideThe old surface from a fixed standing point, such as the gatepostBecomes the left half of every before-and-after pair
2 Before, closeThe worst failure: cracking, a pothole or pondingShows the problem the customer actually had
3 Base readyThe milled or graded, compacted base before the surface goes downShows the work that justifies the price and is invisible afterwards
4 LayingThe crew and machines at work, with no faces or customer vehicles in frameProves the work is yours and real
5 After, wideThe finished surface from the same standing point as shot 1Becomes the right half of the pair
6 DetailAn edge, a joint or the place where the surface meets a drain or door thresholdShows 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.

Subscribe on YouTube@sagnikteaches
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 thumbnail

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 now

Permission 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.

SectionWhere the content comes fromIllustration
Heading and one-line summaryJob note, line 1Resurfacing a 12,000 sq ft office car park over one weekend closure
The problemBefore shots and job note, line 2Failed patches at the north end and standing water after rain
What we didBase-ready, laying and detail shotsMilled 2 in., repaired the failed base, placed new surface, repainted 38 bays
How long it tookYour schedule recordFour working days, one weekend closure
Photos with alt textThe captioning runBefore and after from the same standing point
Next stepYour own call to actionA 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.

ReaderWhat they worry aboutCaption angleWhere it goes
HomeownerStreet appeal, water pooling, disruption, a clear priceThe problem you fixed and when they could use the drive againFacebook, profile posts, the driveway page
Property managerTenant disruption, scheduling, documents, a surface that lastsPhasing, closure window and the base workLinkedIn, 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.

SeasonAnglePhoto to pull from the library
SpringWinter damage: cracks, potholes and edges that have broken upBefore-close shots of failures
SummerBusy season: booking window and what a typical job involvesLaying and base-ready shots
AutumnLast slots before the cold, and why asphalt is not laid below a minimum surface temperatureDetail shots and finished jobs
WinterPlanning and quotes for next season, with a gallery of finished workBefore-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.

  1. The call, direction request and website-click counts shown on your business profile.
  2. Views of your project pages, and which pages are visited before a contact form is sent.
  3. 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.
  4. 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

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.

Want your job photos working harder?

On a 1:1 call we'll look at how your crews capture photos now, pick the one or two content formats worth automating, and set up prompts you can run in minutes after each job.

Book a 1:1 call with me