I built a tiny Python script in the past that read a CSV of gigs, templated a short pitch and then pushed messages via either webhook (for servers that allow it) or a headless browser when webhooks weren’t an option. What worked: add small randomized delays between 30–90 seconds, rotate between typing-like pauses and full-message sends, and never blast the same exact text — include a tiny unique sentence or shortened timestamp so it looks organic. Respect channel rules by keeping a config file that lists channels to skip (pinned-only, mods-only), and have a daily cap per server so you don’t suddenly spike activity; also log every post with response status so you can back off manually if mods complain. It’s still risky in private communities, so treat automation as a helper — not a replacement for occasional human check-ins and replies.