Skip to the content

seasonal-aso

Build an app Product's seasonal calendar and, per moment, the keyword, promotional text and screenshot changes with submission and revert dates.

Written by Kwern, after the skill of the same name in Eronred's aso-skills, MIT. Updated 2026-09-25.

The file, as Kwern runs it

Nothing below is rewritten or cut. The description a model routes on comes first, then the file itself. The whole thing, frontmatter included, is at /skills/seasonal-aso.md.

description

Build an app Product's seasonal calendar and, per moment, the keyword, promotional text and screenshot changes with submission and revert dates. Use for "seasonal", "holiday", "Christmas", "New Year", "back to school", "Black Friday", "trending right now". For the full metadata rewrite use metadata-optimization; for the event cards tied to a moment use in-app-events.

Seasonal rankings are crowded and short: metadata indexes in 1–3 days, so changes go in two weeks before the peak and come out 3–5 days after it. Output is a seasonal calendar with, per moment, the metadata, promotional text and screenshot changes and their timing; the User submits in App Store Connect and in-app-events covers the matching event card.

Gather

  1. read_context — positioning, ICP, target keywords, the moments the Product already owns (launches, anniversaries).
  2. connector_asc_localizations when the ASC Connector exists — the subtitle, the promotional text and the keywords field of every Locale: the evergreen baseline every seasonal swap must return to, read in the Locale of the storefront the moment belongs to (the calendar is storefront-specific). Without it, treat those fields as unknown and write each seasonal value without its current one.
  3. connector_asc_screenshots when the ASC Connector exists — the first two slots of the primary locale's sets; look at them with view_image before deciding on a seasonal frame. Without it, the public screenshotUrls from iTunes Lookup through fetch_url (https://itunes.apple.com/lookup?id=<App Store id>&country=<storefront>).
  4. connector_apple_ads_search_terms when the Apple Ads Connector exists — seasonal terms with observed taps and installs, and Apple's suggestions. Without it, take the reference calendar's terms and the competitors' seasonal listings through fetch_url on iTunes Search.
  5. connector_asc_analytics when the ASC Connector exists — last year's impressions and downloads by week, which show which moments moved the Product.

Plan

The moment calendar, the T-minus timeline, the seasonal-vs-evergreen trade-off and the trending-moment variant are in references/seasonal-calendar.md; read it to select moments. Field limits and indexing rules are those of metadata-optimization's field-rules.md.

  1. Select moments — a moment fits when its terms touch the Product's core use; skip the rest.
  2. Keywords — 2–4 seasonal terms per moment, swapped for the weakest evergreen terms in the keywords field. A term ranking well today stays.
  3. Subtitle — a seasonal hook only when the current subtitle is not keyword-critical; otherwise keep.
  4. Promotional text — always, 170 chars, no review: the seasonal call to action or limited-time feature.
  5. Screenshots — a seasonal frame or theme on the first two slots when the moment justifies the production (screenshot-optimization).
  6. Timing — submit and revert dates counted back from the peak, using the reference timeline.

Output: seasonal calendar

The year's selected moments in date order. Per moment: peak window, seasonal terms with source (search terms, suggestions, inference), keywords field current → proposed with chars/100, subtitle keep or change, promotional text chars/170, screenshot decision, and dates: brief creative, submit metadata, submit promotional text, monitor, revert metadata, revert promotional text. Trending moments get promotional text only, within 24–48 hours, reverted after 3–7 days.

Done when every selected moment has a submit date at least 5 days before peak and a revert date, every proposed field is within its limit, no evergreen term that ranks is swapped, and the Output names the data it lacked (keywords field, search terms, last year's trend) when a Connector was absent.

  • metadata-optimization — field rules and the evergreen package the calendar departs from and returns to.
  • in-app-events — the event card for each moment.
  • screenshot-optimization — seasonal screenshot themes.
  • localization — the calendar for other storefronts.

What it discloses

The Skill reads these files only when it needs them, so the model spends nothing on them the rest of the time.

  • references/seasonal-calendar.md

From your accounts to a proposal

  1. 01

    Connect what it reads

    Give the ASO agent the accounts it works on. Kwern never asks for a password, and an agent missing a connection says so instead of guessing.

  2. 02

    The loop runs weekly

    Before it writes a word it reads the foundation doc, which holds the positioning, the audience and the voice, and whatever its connectors return that day.

  3. 03

    The seasonal-aso skill runs

    The agent activates it when the run calls for it, and what the model then reads is the file on this page, word for word.

  4. 04

    A proposal waits for you

    Nothing is published and nothing is spent until you approve it. Approve and Kwern posts it where it holds the keys; where it does not, it hands you the text and the link.

The file, the agency, and the agent

On your ownAn agencyKwern
The methodWhatever you remember to do that weekTheirs, and you never get to read itThis file, open on this page
Who runs itYou, when there is timeAn account manager, between other accountsThe ASO agent, weekly
What it readsWhat you can pull by handWhat you remembered to send themYour connected accounts and your foundation doc
What comes outA draft, sometimesA deck, and a report at the end of the monthA proposal you approve or throw away
What it costsYour eveningsA retainerOne subscription, and the model on your own key

Questions about seasonal-aso

Pair it with

The other skills the same agents reach for during a run.

aso
When the user wants to audit or optimize an App Store or Google Play listing.
competitor-profiling
When the user wants to research, profile, or analyze competitors from their URLs.
copywriting
When the user wants to write, rewrite, or improve marketing copy for any page, including homepage, landing pages,…
app-icon-optimization
Brief and evaluate an app Product's App Store icon for tap-through in search and browse.
app-preview-video
Storyboard an app Product's App Store preview video — the 15–30 s autoplay clip in search and on the product page —…
category-positioning
Recommend the App Store primary and secondary category for an app Product, scoring truth fit, competitive density,…
custom-product-pages
Plan an app Product's Custom Product Pages — one brief per audience with the ad groups it serves, screenshot plan and…
in-app-events
Plan an app Product's App Store In-App Events — one brief per event (name, descriptions, badge, dates, purpose) plus…
localization
Write an app Product's App Store metadata for its priority storefronts — title, subtitle, keywords field, description…
metadata-optimization
Rewrite an app Product's App Store metadata — title, subtitle, keywords field, description, promotional text.
rating-prompt-strategy
Design when and to whom an app Product asks for a rating so the volume of 4–5 star ratings rises.
review-management
Analyze an app Product's App Store reviews into themes and draft replies as "Reply to review" Proposals.
screenshot-optimization
Plan an app Product's App Store screenshot set — per-slot message, caption copy, order, device sizes — plus A/B…

Someone is asking for what you built today.

On Reddit, on X, in ChatGPT's answers. Kwern finds them every morning and drafts the reply in your voice; you decide what goes out.