ASOptimus

free private beta · macOS · local-first

App Store keywords, measured.

Feed it a plain-text description of your app. It returns ranked keywords plus a title, subtitle and keyword field — and every number expands to the raw Apple response it was computed from.

You're on the list. Batches are small — email the author if you want into the first one.

Free during beta. No card. Runs on your Mac — your data stays local.

demo run · habit trackingUS · 2026-07-16
1habit tracker65

P 80 · D 52 · R 3 — surfaces at "habi", rank 2 · crowded top-10

2daily habit tracker63

P 68 · D 44 · R 3 — surfaces at "daily h", rank 3

3streak tracker42

P 61 · D 35 · R 2 — adjacent job: counting streaks, not building habits

4zen habit gardendead brand0

P 77 → zeroed — exact name of an abandoned app, seeded into autocomplete by Apple

5how to build habits0

P 0 — never appears in autocomplete: nobody types questions into store search

illustrative demo · every number follows the formulas below and expands to its raw Apple response
01The store, in numbers
557,000+

new apps shipped to the App Store in 2025.

source: Sensor Tower
+84%

growth in app submissions, quarter over quarter.

source: Sensor Tower
65%

of installs start with an App Store search.

source: Apple
02How it works

One pipeline, five steps —
each signed by who does it.

The AI's role is deliberately narrow: it reads your brief and judges relevance. Everything countable is counted by code, from live Apple data.

1

Brief in

you

A plain-text description of your app: what it does, who it's for, what it is not. Two minutes. That's the only input.

brief.txt
2

Context extraction

AI · judged by you

Jobs-to-be-done, user vocabulary, and anti-semantics: what your app must never rank for. You review and correct before anything runs — the pipeline's only checkpoint.

confirmed context + anti-semantics
3

Crawl of Apple's suggest graph

code

Completions, continuations, alphabet-soup expansion. Every candidate is a phrase Apple itself suggests to users — none are generated by a model.

candidate phrases — every one a real query
4

Measurement

code + AI judge

P from probing live autocomplete, D from the live top-10. R — the only AI-scored value — follows a fixed 0–3 rubric with a written reason, full prompt and response in the log. The AI never produces a number for P or D.

P · D · R per phrase, with raw responses
5

Set-cover layout

code

Words distributed across title, subtitle and the 100-char keyword field with zero repeats. The second indexed localization (es-MX for a US listing) is filled automatically.

 

Ship-ready metadata

Title · subtitle · 100-char keyword field · second localization · full research trail.

03The math, in the open

Audit every number.

The industry sells "popularity scores" without saying where they come from. Below is every formula this tool ships with. Each parameter is measured, logged, and traceable to the request that produced it.

PDemand, from autocomplete probing

The phrase is typed against Apple's live autocomplete character by character. Recorded: the prefix depth where it first appears (earlier = stronger demand) and its rank in the list. It's Apple's own demand signal, read directly.

P = 100 · (0.7·depth + 0.3·rank) # L=4, rank=2 → P=80

DDifficulty, from the live top-10

For every keyword the actual search results are pulled, and each of the ten apps you'd fight is scored for strength — weighted by its position on the page. A top-10 full of dead apps is an open door, and you will see it.

strength = 100 · (0.45·volume + 0.15·quality
              + 0.15·freshness + 0.25·exact-match)

volume — review count; quality — rating; freshness — time since last update; exact-match — the keyword verbatim in a competitor's title.

RRelevance — the only AI-scored value

A language model scores each keyword against your confirmed brief, on this rubric and no other. A written reason is mandatory for every score; the full prompt and raw response are kept in the run log.

3 core — the job your app is hired for
2 adjacent — same user, same context, secondary job
1 tangent — shared vocabulary, different intent
0 excluded — matches your anti-semantics list

ΣOne score per keyword

Demand and ease are combined as powers, not a sum, on purpose: a keyword nobody searches is worth zero no matter how easy it is, and a keyword you can't crack is worth zero no matter how popular. Relevance scales the result linearly.

score = 100 · (P/100)^0.6 · ((100−D)/100)^0.4 · (R/3)

If a number can't be traced to a raw Apple response, it doesn't ship.

04Measured findings

We measured what others assume.

The engine's rules come from live App Store data, not habit. Three findings that shaped it — each one checkable from your own keyboard.

0.7–2.6%vs90–99%

Share of keyword candidates that turn out to be real user queries: phrases invented by an LLM versus phrases harvested from Apple's suggest graph. Measured on 828 probed keywords across two niches. This is why the crawler supplies candidates and the AI only judges them.

LLM-invented phrases
0.7–2.6%
suggest-graph harvest
90–99%
probe any LLM-written keyword list against Apple autocomplete and count the hits
The dead-brand trap

Apple seeds app names into autocomplete — including apps with zero ratings. So the name of a dead app looks exactly like a high-demand keyword. Every phrase is cross-checked against its own top-10: an exact name match on a weak app gets its score zeroed, with the evidence attached to the row.

type the name of any abandoned app into store search — it still autocompletes
0 / 102

Question-style and four-plus-word phrases from our probes that turned out to be real queries: zero out of 102. People do not type questions into App Store search. Your character budget goes only to queries that exist.

type any "how do i…" phrase into store search and watch the suggestions stay empty
05What a run produces

Ship-ready metadata, with receipts.

Title and subtitle from real queries

Assembled from whole top-scoring phrases, so they read like people talk. Your best phrase goes into the title verbatim.

YourApp — Daily Habit Tracker Streaks, Routines & Reminders

A packed keyword field

Set-cover optimized: no word repeated across any field, coverage report showing which queries each field wins.

streak,routine,planner,goal,reminder,… 98/100 chars · coverage report attached

The second indexed localization

Apple indexes one extra locale per storefront. Most listings leave it empty; a run fills it, guaranteed non-overlapping.

es-MX for US · +160 indexed chars zero word overlap with the primary set

Full research trail

Every probed keyword with P, D, R and score — sortable, filterable, exportable, re-runnable from cache.

every keyword · P/D/R/score + raw responses export: .md / .json
06Beta terms

The deal, plainly.

You get

  • Full runs, free, for the whole beta period
  • Local-first: briefs and research never leave your Mac
  • Founding price locked when paid launch happens
  • A direct line to the author — fixes ship in days

We ask

  • Run it on a real app you ship
  • 15 minutes of honest feedback after the first run
  • Optional: a before/after case with numbers

devs with a live app in the store get onboarded first

07FAQ
Is it actually free?

During the beta — yes, fully. After launch it becomes pay-per-run credits, not a subscription: ASO is episodic work, and a subscription would mostly bill you for the months you don't touch it. Beta testers keep founding pricing.

Where does my data live?

On your Mac. Your brief, your runs and your keyword research never reach our servers — there are no servers in the loop. Requests to Apple go directly from your machine.

What exactly does the AI do — and not do?

It extracts product context from your brief (which you confirm) and scores keyword relevance on a fixed 0–3 rubric, with a written reason each time, logged in full. It never produces demand or difficulty numbers — those are computed by deterministic code from Apple responses you can open.

Why trust your scores over the big tools?

Don't trust them — check them. The formulas are printed on this page, and every number in a run expands to the raw Apple response it came from: the exact prefix and rank for P, the ten apps behind D, the full model call behind R.

Which storefronts?

20 storefronts at beta start, US included, each with the correct extra-locale pair. The semantic language is configured separately — for example Spanish-language semantics for the US store.

When do I get in?

Onboarding goes in small batches so every tester gets real attention. Earlier signups go first; devs with a live app in the store skip the queue.

Metadata you can audit.

Free during the beta. Small batches, live apps first.

You're on the list. Batches are small — email the author if you want into the first one.

Free during beta. No card required.