Back to blog
Blog PostMar 22, 2026

From ASO Research to Review Submission with ASC CLI and Astro MCP

Rudrank Riyam
@rudrank
From ASO Research to Review Submission with ASC CLI and Astro MCP

I was improving the ASO of my beloved game Chroma today. It is a color matching puzzle game for RGB, HSB and CMYK. I have had it on the App Store for years, but I never really sat down and looked at the keyword data properly.

So I pulled the metadata locally using my asc cli:

asc metadata pull --app "1500196580" --version "2.1.0" --dir "./metadata"

This gave me the canonical JSON files for every locale, keywords, description, subtitle and what's new. The en-US keywords looked fine at first glance.

Then I opened Astro MCP in Cursor and actually checked the popularity scores.

"Color match game" with popularity 22 in US. "Color matching" with 18 and "Colortone" with 24. I was ranking well for keywords but down enough where folks barely scroll down to.

Meanwhile, "color match" without "game" had a popularity of 49 and I was sitting at rank 63. "Color game:" was at 46 popularity and I was at 140. The words people actually type into the App Store were the ones I was nowhere near the top for.

Popularity in Astro goes from 5 to 100. Below 20 is kind of what I consider noise. I had a bunch of keywords in that range where I was in the top 40, and it felt great until I realized it did not matter much.

Looking at the Competition

I ran the competitor keyword extraction in Astro:

extract_competitors_keywords → keyword: "color match", store: "us"

There is a game in this space that has been around for years. 4.9 rating, nearly 50K reviews. They rank #2 for "color match game" and completely own their branded keyword.

Out of 167 keyword combinations Astro extracted from all the apps ranking for "color match," a few hit me. "Hue" at 58. My competitor owns that word and I was not even using it. I also pulled keyword suggestions:

get_keyword_suggestions → appName: "Chroma", store: "us"

"Wavelength game" at popularity 46. "Color block jam" at 55. "Colorful" at 53. I had none of these tracked or in my metadata.

The ASO Audit Skill

The asc skill repo has a Skill called asc-aso-audit, thanks to @yoloabdo. It does all of this in one go. You point it at your local metadata directory and it runs offline checks first. Keyword waste (tokens duplicated between subtitle and keywords), underutilized character limits, bad separators like spaces after commas, cross-locale gaps where your Korean keywords are just a copy of the English ones.

Then if Astro MCP is connected, it runs the keyword gap analysis: pulls your tracked keywords, extracts competitor keywords, gets suggestions, checks rankings, and diffs everything against what you have in your metadata files. The output is a single report that tells you what is wrong and what to do about it.

The part that caught me was the keyword waste check. "Match" was in my subtitle and also in my keywords. Apple indexes both fields, so having it in keywords was just burning characters. Same with "color". It was already in my app name, no need to repeat it in the keyword field.

After the audit I had a list of what to drop and what to add. The keyword workflow in ASC CLI handles the rest:

asc metadata keywords diff --app "1500196580" --version "2.1.0" --dir "./metadata"

asc metadata keywords apply --app "1500196580" --version "2.1.0" --dir "./metadata" --confirm

diff shows what would change. apply pushes it. I dropped the low-popularity words, added "hue", "puzzle", "wavelength", cleaned up the duplicates with the subtitle, and got my keyword field closer to the 100 character limit.

Localizing the Keywords

Chroma already had a review from South Korea with a 4-star rating, but the Korean store metadata was all in English. I have been meaning to fix that.

The keywords part is the tricky one. You do not just translate "color match game" into Korean. You need to figure out what Korean users actually search for in the App Store, which is a completely different set of words.

I downloaded the localizations, translated the description, adapted the subtitle to fit the characters in Korean, and researched Korean search terms for the keyword field instead of running the English ones through a translator. Then uploaded everything:

asc localizations upload --version "VERSION_ID" --path "./localizations"

asc localizations upload --app "1500196580" --type app-info --app-info "APP_INFO_ID" --path "./app-info-localizations"

One command for version fields and one for app-info fields like subtitle. Finally, I verified it with asc localizations list --version "VERSION_ID" --output table.

Submitting the New Keywords

With keywords updated and localization in place, I ran the preflight check:

asc submit preflight --app "1500196580" --version "2.1.0"

This tells you if anything is missing before you actually submit. Review notes, screenshots, etc. Once it looked clean:

asc submit create --app "1500196580" --version "2.1.0" --build "BUILD_ID" --platform IOS --confirm

And with this flow, you can easily fetch the metadata, do ASO research with Astro MCP, optimize the keywords, localize them, and submit the new version. Easily with the help of your AI agent.

Happy optimizing!


My X friend @matteo_spada has been kind enough to help with 20% off on @TryAstroApp for the first year using the code ASCCLI!

Enjoy the power of Astro MCP for ASO, together with asccli.sh! tryastro.app/?aff=6NqZ6 (affiliate link; I get a % of it)