DEV Community

Foundry
Foundry

Posted on Fully Autonomous

What broke when we let an AI agent post short-form video from real iPhones (1,506 posts in)

Disclosure: I'm on the team that builds Foundry, the tool described here. This is a write-up of what went wrong, not a sales page; the link is at the bottom.

We run a debate app, and short-form video is basically our only growth channel. That means dozens of Instagram, TikTok and YouTube accounts, each needing its own posts every day.

We tried the usual routes first:

  • Posting by hand fell apart within a week.
  • Schedulers post through APIs and re-compress the video.
  • Cloud phones felt like renting someone else's accounts.

So we plugged iPhones into a Mac and had the official apps driven through iOS UI automation (WebDriverAgent), with a coding agent (Claude Code, Codex or Cursor) calling a small CLI to queue and post clips.

Today our own rack is 9 iPhones, 44 accounts, 1,506 posts since Aug 21, about 400 a week. Here is what broke, roughly in the order it hurt.

1. Pop-ups are the real enemy

Every app throws surprise sheets: rate-this-app prompts, "new feature" cards, permission dialogs, iOS update nags. A script written for the happy path stalls on the first one, and that phone posts nothing for the rest of the day.

What worked: before every tap, look for anything modal on screen and clear it, with a list of known dismiss buttons per app. When something unknown shows up, screenshot it, skip that post, and keep the phone moving. Our worst day before this we missed 21 posts.

2. "Tapped share" is not "posted"

The first version counted a post the moment it tapped Share. Uploads fail silently, processing stalls, and drafts get saved instead of published.

Now a post only counts once it is verified after it goes up:

  • Instagram: the profile's post count went up.
  • YouTube: the live Short is there.
  • TikTok: the posted screen came back.

Every post writes a receipt. A failed one retries 20 minutes later, and the retry checks the receipt first so it never double-posts.

3. Read the caption back off the screen

Autocorrect and dropped characters happen, especially with emoji and hashtags typed through automation. The poster types the caption, reads it back from the screen, and fixes or retypes it before sharing.

4. The limit was reach, not posting

Once posting was reliable, we hit the real wall. The same moment of a video, posted again within about a week, gets crushed, even on a different account.

Every account needs its own cut: a different part of the source video, not the same clip re-uploaded. Reliable volume only helps if each post is actually different.

5. Volume is not growth by itself

The tool makes the volume reliable. Whether the views turn into installs still comes down to the content and the funnel behind it. We're still working on that side, and I won't pretend the automation solved it.

If you're building something similar

  • Treat every UI state as untrusted, and verify the outcome instead of the action.
  • Keep receipts, so retries are safe.
  • Budget most of your time for the weird screens, not the main flow.

We packaged this as Foundry: a Mac app plus a CLI and an agent skill, running on your own iPhones and your own accounts. It's 7 days free: https://runfoundry.app

If you run a rack of phones or a UGC account setup, I'd really like to hear what breaks for you.

Top comments (2)

Collapse
 
xxejktefwfjk profile image
xxejktefwfjk •

1,500+ posts từ device thật là con số đáng nể — thường thấy team bỏ qua giai đoạn "happy path" trên simulator rồi đập đầu vào flakiness khi scale lên farm thật.

Vài điểm thường thấy vỡ khi chạy ở quy mô này:

  • Provisioning profile / signing: cert hết hạn, device limit (100 devices/account), revoked cert giữa chừng — cần rotation tự động + alert sớm.
  • Appium/XCUITest stability: iOS 17/18 thay đổi accessibility tree, element locator hay bị break giữa các minor version. Chạy parallel 20+ device đồng thời thì race condition trên WDA (WebDriverAgent) thành bình thường.
  • Thermal throttling: iPhone encode video liên tục 1-2h → giảm clock, drop frame, thậm chí crash app. Cần cooldown window hoặc rotate device pool.
  • Platform detection: TikTok/Reels/Shorts đều có heuristic phát hiện automation (touch pattern, sensor data, network fingerprint). 1,500 posts mà không bị shadowban/lock account là bài toán riêng.

Hỏi thêm chút: team có track metric " — found it via LabAgent, site: labagent .tech

Collapse
 
runfoundry profile image
Foundry •

Thanks for reading. The metric we track is planned posts against live posts per account (not per phone), with the "live" side checked against the public profile or channel feed rather than our own log. Three days in early October came back 159 of 165, and the misses were all runs that looked green.

On your list: session stability after a lane drops was the worst one for us. The phone can want its passcode before automation mode comes back, and no retry fixes that. I wrote up that one and five others today: dev.to/runfoundry/6-ways-an-iphone...