Skip to content

Home › Instagram media pipeline

Case study

From Site Photos to Published Instagram Posts — Without a Marketing Team

The company had thousands of genuinely good project photographs sitting in Google Drive and an Instagram account that had not been posted to in months. The bottleneck was never content. It was the twenty minutes per post that nobody had.

The problem

Every project generated hundreds of photos. Site engineers uploaded them to Drive because that was the habit. Nothing else happened to them.

Publishing one post meant: open the folder, scroll a few hundred near-identical images, pick one, crop it, write a caption, remember the hashtags, schedule it. Twenty minutes for something with no deadline — so it never happened, and an account that should have been the company's strongest proof of work sat empty.

An agency quote solved it for a monthly retainer. The client wanted to know whether the same result could be a system instead.

The pipeline

  1. Drive ingest. Watches the project folders. New images are pulled with their folder context, which is what lets the system know which project a photo belongs to without anyone tagging it.
  2. AI analysis and scoring. Each image is assessed for what it shows, technical quality (blur, exposure, framing) and publication suitability. Duplicates and near-duplicates are collapsed to the best frame in the burst. Most photos are correctly rejected here — that is the point.
  3. Caption generation. A caption is drafted from what is actually in the image plus the project's context, in the brand's voice, with sensible hashtags — not a generic template with a project name substituted in.
  4. Cloudinary render. Crops to the right aspect ratios, applies consistent treatment and any branding overlay, and produces the exact asset that will be posted.
  5. Producer review queue. A human sees the rendered image and the drafted caption side by side and approves, edits or rejects. This is the only manual step and it takes seconds.
  6. Scheduler. Approved posts are spaced across a publishing calendar so the feed looks maintained rather than dumped.
  7. Auto-publish. Posted through the Instagram Graph API at the scheduled time, then verified.

Why a human still approves

We could have removed the review step. We did not, for reasons that are commercial rather than philosophical.

A photo can be technically perfect and still unpublishable: a client's confidential drawing on a wall, an unfinished area that misrepresents the work, a safety violation visible in the background, a competitor's branding in frame. No scoring model reliably catches all of that, and the cost of one bad post is much larger than the seconds the review costs.

So the pipeline is built so that approving is trivially fast — one screen, one tap — rather than built so that approval can be skipped.

Failure modes we had to handle

Bad crops

Automatic centre-cropping to square routinely destroyed the subject. Fix: subject-aware cropping driven by the analysis step, plus a rule that an image whose subject cannot be preserved in the target ratio is skipped rather than mangled.

Duplicates and bursts

Engineers shoot fifteen near-identical frames. Early runs queued all fifteen. Fix: perceptual hashing to group visually similar images, then score within the group and keep one.

API quotas and rate limits

Drive listing, model calls and the Instagram Graph API all have limits, and a large backlog hit every one of them on the first full run. Fix: batching with backoff, a persistent job queue so a run can resume where it stopped, and a hard ceiling on posts per day that the scheduler cannot exceed.

Publish verification

The subtle one. A post can report success while the image that actually appears differs from the one that was approved — a stale cache, a wrong version, a transformation applied twice. Fix: after publishing, the pipeline fetches the live post and compares the published asset against the approved render. A mismatch alerts a human instead of sitting on the feed unnoticed.

Token expiry

Instagram and Google tokens expire, and the first symptom of that is silence. Fix: proactive refresh plus an alert when a token is approaching expiry, because a pipeline that stops quietly is worse than one that fails loudly.

Results

The account posts consistently. The photographs that were already being taken are now doing commercial work instead of sitting in a folder. Producer time per published post fell from roughly twenty minutes of manual selection, cropping and captioning to a few seconds of approving or rejecting a finished draft — and the per-post running cost, model calls and rendering included, is a small fraction of the agency retainer the client was quoted for the same output.

The honest caveat: the pipeline did not make the photography better. It made publishing cost nothing, which turned out to be the actual constraint.

Detailed performance figures available on request.

Stack

Google Drive API for ingest · vision-capable LLM for analysis, scoring and captioning · perceptual hashing for duplicate detection · Cloudinary for transformation and rendering · a review dashboard for approvals · job queue and scheduler · Instagram Graph API for publishing · post-publish verification against the approved render.

Frequently asked questions

Does this work for other platforms?

The ingest, analysis, rendering and review stages are platform-neutral. Publishing is the only platform-specific part, and LinkedIn, Facebook and TikTok are all routine additions once the pipeline exists.

Can it post without any human involvement?

Technically yes. We advise against it and build the review step to take seconds instead. The risk is not a bad caption — it is publishing something confidential or embarrassing that was visible in the frame.

What does it cost to run?

Per-post running cost is dominated by model calls and image transformation, and it is small relative to an agency retainer for the same output. Exact figures for this deployment are available on request.

Sitting on a folder of photos nobody publishes?

Tell us where the media lives and where it should end up. We will map the pipeline and tell you honestly whether it is worth automating for your posting volume.