Content

Content Polish Pass

Fills the excerpts, SEO titles, and descriptions your published content is missing, writes alt text onto images that have none, and logs exactly what it changed.

Run by Elena, SEO Analyst

Audit content, optimize metadata, and track search performance

Elena, SEO Analyst
1 step
Agents run in sequence
Runs weekly
Schedule off until you turn it on
Fits the free plan
Runs inside the Free plan allowance at the weekly default.

What gets installed

  • A Demo Articles type with 3 incomplete articles to work on
  • A Content Audit type to log each run
  • Elena, SEO Analyst as the agent
  • One weekly workflow, schedule off until you enable it

Installs into an existing project. Nothing you already have is overwritten.

Who does the work

Elena, SEO Analyst

Elena is your dedicated SEO analyst. She audits your CMS content for SEO best practices, rewrites meta titles and descriptions at scale, identifies keyword opportunities, and monitors your search performance. She can fix common SEO issues automatically or flag them for review. Schedule her for weekly audits that post directly to Slack.

CMS ReadCMS WriteWeb BrowseNotify Send
View full profile

This agent is added to your project when you install the template, with the prompt and capabilities already set. You can edit it afterwards.

How it works

The prompt

Fill in the supporting fields your published content is missing, then describe the images that have no alt text. Part one: object fields. 1. Find published objects missing any of: excerpt, seo_title, seo_description. 2. Process at most {{max_objects}} objects. Stop when you reach that number, even if more remain. This keeps the run inside the token budget. 3. For each object, read the title and content, then write only the fields that are empty: - excerpt: one or two sentences in the author's voice, saying what the piece covers. Not a truncated first paragraph. - seo_title: under 60 characters, most important keyword first, no trailing brand suffix. - seo_description: under 160 characters, describes what the reader gets, ends with a reason to click. 4. Preserve the author's voice. Do not rewrite body content or titles, and do not touch any field that already has a value. Part two: image alt text. 5. Call get_media with missing_alt_text=true to list images with no description. Handle at most {{max_images}} of them. 6. For each one, look at the image and call update_media with alt text that describes what is in it for someone who cannot see it: specific, under about 125 characters, no "image of" preamble, no keyword stuffing. 7. Alt text goes on the media record, never into an object field. One description on the media record covers every object that references that image. 8. If an image is purely decorative, leave it alone rather than inventing filler. Note it in the summary instead. When finished, create one object in the content-audit type recording: - run_date: today - objects_scanned: how many objects you examined - fields_filled: how many individual object fields you wrote - images_described: how many media records you gave alt text - summary: a short markdown list of what you changed, one line per object or image - details: JSON array of { object_slug or media_id, fields_written } If you found nothing to fill, still create the audit object noting zero changes. A run that reports honestly is more useful than one that invents work.

Where alt text goes

Alt text is written onto the media record, not into a field on the object that happens to use the image. One image described once is then correct everywhere it appears, and stays correct when another object reuses it. This is why the installed content model has no alt text field.

Cost

The object half of the run costs roughly what a metadata pass costs. Describing images adds an image to the prompt for each one, so the per-image cost is higher: keep the image cap low on the Free plan.

cosmic logo
cosmic logo

Start automating with AI workflows

No credit card required • Free forever