Auto-tag new Cloudinary uploads every hour

By General Input

Every hour, find fresh Cloudinary uploads missing tags or alt text, draft SEO-friendly metadata, apply it, and post a Slack recap of what got enriched.

Integrations

  • Cloudinary
  • Slack Bot

Type

Agentic Task

Categories

  • Marketing
  • Operations

Every hour, sweep my Cloudinary media library for freshly uploaded images that are missing tags or descriptive metadata and enrich them automatically.

Trigger: cron, every hour on the hour.

Step 1 — find candidates. Use Cloudinary's Search Assets to list images created in the last hour that either have no tags or have no meaningful alt text stored in their context metadata. Scope the search to resource_type=image, filter by created_at within the last 60 minutes, and return the public_id, secure_url, folder, existing tags, and context. Skip anything that already has both tags and alt text; skip anything the workflow has already enriched on a previous run.

Step 2 — enrich each image. For each candidate, look at the Cloudinary delivery URL directly, then draft: a short set of 3-7 descriptive tags (lowercase, no punctuation, brand-appropriate), an SEO-friendly alt text sentence describing the subject and any obvious context, and a single category label that fits our folder structure. If the image is ambiguous, decorative, or looks unsafe to auto-label, mark it as 'needs review' and do not write anything back.

Step 3 — write the metadata back. Apply the tags with Cloudinary's Manage Tags operation (add mode, not replace). Store the alt text and category using Update Resource by Public ID, setting context to include alt and caption keys plus the category. If either write fails for an asset, capture the error and continue with the next image so one failure does not stop the run.

Step 4 — post a Slack recap. Use Slack Bot's Send a Message to post a short summary to #media-ops (or whatever channel I configure). Include: total images scanned this hour, how many were enriched, up to 3 sample thumbnails or delivery URLs of enriched assets with the tags applied, and a clearly labelled 'needs review' section listing any images the agent could not confidently label, each with its public_id and delivery URL so a human can open and fix it. Use Slack mrkdwn formatting, keep it tight, and skip the message entirely on runs where zero new assets were found.

Notes: Cloudinary is not a poll provider on this platform, so cron plus Search Assets scoped to the last hour is the correct pattern rather than a poll trigger. Never overwrite existing tags or alt text — additive only. Cap the run at a reasonable batch size (e.g. 50 assets) and stop early if Cloudinary rate-limits, then pick up the rest on the next hourly run.

Related prompts

Explore more prompts
A brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasonLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsLinkedIn Ads budget pacing dashboard for every client accountGive your team Looker numbers without buying more seatsPause marketing emails to escalated customers, then restore them