I build PostSider, a publishing tool aimed at agencies and at AI agent workflows, meaning the step at the end of an automated content pipeline where something actually goes live.
The scheduler was the easy half. Getting the platforms to let my app touch their APIs took 6 weeks with Meta, 5 with TikTok, and 6 rejections between them. Here is what actually got me rejected, because I could not find this written down anywhere when I started.
I submitted app.postsider.com, which is the authenticated app. It renders client side, so a reviewer opening it sees a loading state and then a login form. The rejection note said the external website must be fully developed and cannot be a landing or login page.
The fix took ten minutes and cost me two weeks of calendar time: submit the marketing domain, postsider.com, not the app subdomain. Redirect URI stays pointed at the app. If you genuinely have to submit something behind a login, put test credentials in the Apply Reason field, because they will not go looking for them.
One more thing that is easy to miss: the domain in your demo video has to match the Website URL you submitted. If the video opens on the app subdomain and the field says something else, that is another round.
I wanted Community Management API for posting to company pages. The Request Access button was simply disabled, with no explanation anywhere in the portal.
The reason is that Community Management has to be the only product on the application. My app already had Share on LinkedIn and Sign In with LinkedIn using OpenID Connect attached, and that combination silently kills the button. The answer is a second, clean LinkedIn app with nothing else on it. That single product then gives you both w_member_social and w_organization_social, so you are not losing anything.
I lost days assuming it was an account standing issue.
Business verification comes before app review and it is about your company, not your product. I run a sole proprietorship in Poland, and anything that did not match my registered details exactly bounced back.
Then App Review, per permission, each with a screencast where a reviewer watches that specific permission being used from login to result. They are not exploring your product. They are checking one box, and if the video does not show that box, the rest of the video does not matter.
Start the reviews on day one, before the product is finished. The review is the long pole, not the code. I built first and applied second and that ordering is where most of the eleven weeks went.
Read every field description in each portal, slowly. My most expensive rejection came from putting a correct URL in the wrong field.
I also kept a plan B the whole time, which is why I could keep working instead of quietly abandoning it. PostSider is AGPL-3.0, so anyone can self host it with their own developer credentials. If a platform had decided my hosted product was a problem, the code would still exist and the users with their own API access would still have a tool. Smaller business than the SaaS, and worse than plan A, but it turns a rejection into a bad quarter rather than an extinction event.
Anyone else here shipped something gated behind platform review? I am curious whether resubmitting reset your position in the queue or held it, because I could never tell.
The interesting part is that once you have enough data, the problem can actually become harder rather than easier.
There are usually plenty of things you could work on next. The harder question seems to be which signal is strong enough to justify choosing one over the others.
Curious how you're thinking about that distinction in Powsight.