The mechanism that actually moves these is the note to the reviewer, and almost nobody uses it properly.
It is a free-text field attached to the build. Most people leave it empty or put a test login in it. What works is treating it as a short argument addressed to a person who has ninety seconds and no context:
- One sentence on what the app does
- Two or three specific things it does that the apps they are comparing it to do not — named features, not adjectives
- If you have a real user base, a number
- If something looks generic and is not, say why
The reason this works is structural: the reviewer is comparing your binary against a mental model of a class of apps. The note is the only place you get to say "here is why I am not that class", and if you leave it empty you have declined to make the argument.
Two more things that help:
Change something real between submissions. Resubmitting the same binary with new screenshots reads as an appeal, and appeals are handled by the same standard that rejected you.
Use the formal appeal route if you genuinely believe it is wrong, rather than resubmitting repeatedly. That goes to a different process and it is where you can actually argue the decision. Resubmit loops do not escalate on their own — they just accumulate.