← back to blog

Daily ops checklist for a 50-account stack

Daily ops checklist for a 50-account stack

Managing five accounts is a hobby. Managing fifty is a system. the difference is not raw effort, it is whether you have a repeatable daily procedure that catches problems before they compound. i learned this the hard way after a proxy provider silently rate-limited a subnet and i lost three weeks of aged history on twelve accounts before i noticed anything was wrong.

this guide is for operators running a mid-sized stack, somewhere in the 40-60 account range, across platforms that enforce device fingerprinting, session continuity, and behavioral signals. you might be doing airdrop farming, social media growth, e-commerce seller accounts, or any other multi-account workflow that requires consistent daily attention. the specific platform does not matter much. the hygiene principles are universal.

by the end of this checklist, you will have a structured morning routine (under 45 minutes for 50 accounts if automated correctly), a set of alert conditions that surface problems before they become bans, and a light scripting layer that removes the repetitive clicking. this is not a set-and-forget system. it is a daily driver.


what you need

  • antidetect browser: GoLogin ($24/month for 100 profiles), Multilogin ($99/month), or AdsPower ($10/month entry tier). each stores isolated browser fingerprints per account.
  • residential or mobile proxies: one proxy or proxy rotation pool per account. budget $3-8 per GB depending on provider. ISP proxies run $2-4 per IP/month fixed.
  • proxy health checker: ProxyChecker.io, or the open-source proxy-checker if you want self-hosted.
  • spreadsheet or database: Google Sheets works fine at 50 accounts. Airtable or Notion if you want richer views. beyond 200 accounts, move to a proper DB.
  • a cron-capable server or local machine: a $6/month DigitalOcean droplet running Ubuntu 22.04 handles lightweight automation scripts fine.
  • Python 3.10+ with requests, playwright, and pandas installed.
  • alerting: Telegram bot (free) or ntfy.sh (free self-hosted) to push mobile alerts when checks fail.

estimated monthly infrastructure cost for 50 accounts: $80-200 depending on proxy type and antidetect tier.


step by step

step 1: run your proxy health check

before touching any account, verify every proxy is alive and returning the correct geolocation. a dead or mislocated proxy is the most common reason an account starts behaving unexpectedly.

# using jetkai/proxy-checker, run from your server
python proxy_checker.py --input proxies.txt --output results.json --threads 20

expected output: a JSON file with each proxy’s status (alive/dead), response time in ms, and the resolved IP geolocation. anything with latency over 3000ms or a mismatched country code goes into a quarantine list immediately.

if it breaks: if the checker itself errors out, check that your server’s outbound ports 80/443/1080 are not firewalled. if proxies bulk-fail, check your provider’s status page first before assuming they are all dead. most providers post incidents on their status subdomain.


step 2: cross-reference proxy assignments in your account register

open your account register (Google Sheets or Airtable) and match the dead/slow proxies from step 1 to their assigned accounts. flag those accounts as “paused” for the day. do not log into an account with a failed proxy even once.

for 50 accounts this is a lookup, not a manual review. keep a proxy_id column in your register and use a VLOOKUP or a short Python script:

import pandas as pd

accounts = pd.read_csv('accounts.csv')
results = pd.read_json('results.json')

merged = accounts.merge(results, left_on='proxy_id', right_on='ip')
flagged = merged[merged['status'] == 'dead']['account_id'].tolist()
print(f"Paused today: {flagged}")

if it breaks: if your CSV and JSON IDs do not align, you probably have an inconsistent proxy ID format. standardize to ip:port strings across both files and re-run.


step 3: check account-level health signals

for each active account (those with live proxies), pull the platform’s internal health indicators. what this looks like depends on the platform, but common signals include:

  • email/phone verification prompts pending
  • unusual login warnings in account settings
  • follower/action counts deviating more than 20% from 7-day average
  • CAPTCHA frequency spiking vs prior sessions

i run a lightweight Playwright script that logs into each account’s settings page, scrapes these indicators, and writes them to a status column in my register. this takes about 18 minutes for 50 accounts at a conservative 22 seconds per account, run sequentially to avoid fingerprint correlation.

from playwright.sync_api import sync_playwright
import time

with sync_playwright() as p:
    for account in active_accounts:
        browser = p.chromium.launch(headless=False)
        context = browser.new_context()
        page = context.new_page()
        # navigate to account settings, check for alerts
        page.goto(f"https://platform.example/settings")
        # parse alert elements here
        browser.close()
        time.sleep(3)  # polite delay between accounts

if it breaks: headless mode often triggers extra CAPTCHAs. run headless=False and route through your antidetect browser’s CDP endpoint instead of raw Playwright if the platform is fingerprint-sensitive.


step 4: rotate or warm proxies where needed

any proxy flagged dead in step 1 needs a replacement pulled from your spare pool. if you are using residential rotation, assign a fresh sticky session. if ISP static, swap in a reserve IP.

residential proxy rotation works differently from datacenter IPs and the assignment logic matters. for aged accounts especially, try to keep the same ASN even when swapping IPs. a jump from a Comcast residential IP to a random Hetzner datacenter IP on a 6-month-old account is a larger signal than a swap between two Comcast IPs.

update your account register with the new proxy assignment and log the swap date. you want a history of every proxy change per account.

if it breaks: if your spare pool is exhausted, pause the affected accounts for that day rather than running them unproxied or on a recycled IP.


step 5: execute scheduled account actions

this is the actual work of the day, whatever your stack is doing. airdrop claims, social interactions, content posting, order management. the key rule: only run actions on accounts that passed steps 1-3.

stagger start times across accounts. do not start all 50 accounts at 09:00:00. use a random jitter of 5-30 minutes between account starts. real users do not all wake up at the same second.

import random
import time

for account in healthy_accounts:
    jitter = random.randint(300, 1800)  # 5-30 minutes in seconds
    print(f"Scheduling {account['id']} with {jitter}s delay")
    time.sleep(jitter)
    run_account_session(account)

if it breaks: if actions fail mid-session, check whether the session cookie has expired. re-authenticate and retry once. if it fails twice, mark the account for manual review and move on.


step 6: log session outcomes and update account register

after every session, write the outcome back to your register: actions completed, errors encountered, duration, any platform warnings shown. this is your operational history and it is what lets you spot patterns.

minimum columns to log per session:

field example
account_id acc_042
session_date 2026-05-19
proxy_used 104.x.x.x:8080
actions_completed 12
errors none
health_flag green

if it breaks: if your logging script crashes mid-run, you end up with partial records. wrap your logging in a try/except and always write at minimum the account ID and timestamp even on error.


step 7: send your daily summary alert

at end of day (or end of the morning run), push a summary to Telegram or ntfy.sh. you want to know: how many accounts ran, how many were paused, how many hit errors.

import requests

summary = f"""
Daily run complete.
Active: {len(active_accounts)}
Paused (proxy fail): {len(paused_accounts)}
Errors: {error_count}
"""

requests.post(
    "https://api.telegram.org/bot{TOKEN}/sendMessage",
    data={"chat_id": CHAT_ID, "text": summary}
)

if it breaks: Telegram’s bot API rate limit is 30 messages/second to different users and 1 message/second to the same chat. for large summaries, batch into one message rather than one message per account.


common pitfalls

running accounts on failed proxies “just once”. this is how you burn aged accounts. it feels low-risk in the moment. it is not. even a single session on an incorrect IP can trip a device+location consistency check that platforms run retroactively.

not logging proxy swap history. when an account gets flagged two weeks after a proxy change, you will have no way to correlate the cause without records. the logging in step 6 is not optional.

uniform session timing. if every account in your stack starts sessions at the same minute and runs for the same duration, that is a detectable pattern. the jitter in step 5 matters. browser fingerprinting research from the Electronic Frontier Foundation shows that timing patterns are among the behavioral signals platforms use.

ignoring slow proxies. a proxy that is alive but taking 4 seconds to respond is nearly as bad as a dead one. slow proxies cause session timeouts, incomplete page loads, and inconsistent behavior. set a maximum latency threshold (i use 2500ms) and quarantine anything above it.

conflating account health with action volume. an account that did fewer actions today is not necessarily unhealthy. do not push more actions into an account just because it is green. daily action limits exist on most platforms and overrunning them is a fast ban path.


scaling this

at 100 accounts, the Google Sheets register becomes painful. move your account data into a SQLite database or a free-tier Supabase project. the Python scripts stay mostly the same but you swap pd.read_csv for SQL queries. proxy health checks need to run in parallel with a thread pool, or they take too long.

at 500 accounts, you need a task queue. Celery with Redis, or a simpler option like RQ (Redis Queue). sessions cannot run sequentially. you also need multiple proxy provider accounts to avoid getting your entire operation flagged if one provider has an incident. this is also when antidetect browser API costs become significant and you should evaluate whether a custom Chrome/Chromium build with profile injection makes more economic sense.

at 1000+ accounts, you are running infrastructure, not scripts. containerize your automation workers (Docker), deploy them across multiple servers in different regions, and implement a proper secrets manager (HashiCorp Vault or AWS Secrets Manager) for credentials. the OWASP credential management guidelines are worth reading at this stage. you also need a dedicated ops person or at minimum very well-documented runbooks for when things break.

the daily checklist structure itself does not change much at scale. what changes is the tooling layer underneath it. the same seven steps apply, they just run faster and with more monitoring around them.


where to go next


Written by Xavier Fok

disclosure: this article may contain affiliate links. if you buy through them we may earn a commission at no extra cost to you. verdicts are independent of payouts. last reviewed by Xavier Fok on 2026-05-19.

need infra for this today?