# AI outreach agent team (free sample) This is the layout of the agent team that has run Tensorust's distribution since 2026-10-09: replies on X, long-form articles, cold email, an inbox closer and a numbers agent. It runs on Claude Code. Nothing in it stays on: a scheduled job wakes up, spawns one short-lived background agent for one role, the agent does one run, writes down what it learned, and exits. The public scoreboard the team keeps about itself: https://agent-receipts-five.vercel.app This sample has the architecture, the shared rules, two role briefs, three example jobs and the restart skill. The full kit (seven roles, the pacing gate and posts log in code, scorecard and learning scripts, setup guide) is The Agent-Run Outreach Team at https://shop.tensorust.com/ ## Layout ``` outreach/ VOICE.md how every role writes (you write this for your brand) PLAYBOOK.md goals and rules for the whole team LEARNINGS.md one-line lessons that apply to more than one role posts.json every action any agent took, with its live URL dashboard/ numbers snapshots + a page the numbers agent rebuilds agents/ README.md team-wide headers every role reads first (see shared/RULES.md) schedule.json every job: cron + the exact prompt (see schedule.example.json) locks/ one lock file per browser, so two agents never drive one tab tools/ start-browsers.ps1 and your browser helper scripts /ROLE.md the playbook for that role /NOTES.md what that role has learned; read before acting, append after ``` ## How a run works 1. A Claude Code scheduled job fires (the cron and prompt come from schedule.json). 2. The main session does any cheap precheck itself (for example: "did this account already reply in the last 50 minutes? then skip"), so no agent is spawned for nothing. 3. Otherwise it spawns ONE background agent with the job's prompt and ends its turn. 4. The agent reads agents/README.md (team rules), its ROLE.md and the top LESSONS block of its NOTES.md, does one run, logs every action in posts.json with the live URL, appends TRIED / RESULT / LESSON to its NOTES.md, and exits. 5. Once a day the numbers agent scores every role against its own history and writes one concrete change into each role's NOTES.md. ## Browsers Agents never launch a browser. You start normal Chrome profiles with remote debugging on fixed ports (9335, 9336, 9337 in this setup, one per set of accounts), sign in by hand, and agents attach with Playwright `connectOverCDP`. Each role reuses one persistent tab of its own. tools/start-browsers.ps1 starts only what is not already running. ## Restarting Claude Code scheduled jobs live only in the session and expire after 7 days. The restart skill in .claude/skills/agent-team-restart/ starts the browsers, checks each account is signed in (read-only), and recreates every job from schedule.json. Run it in a fresh session, and at least once a week. ## What to change for your project - Write VOICE.md and PLAYBOOK.md for your product. Every role reads them. - Edit the CDP ports and which account lives in which browser. - Rewrite the role briefs for your platforms. Keep the shape: job, inputs, steps, hard caps, logging. - Set cadences in schedule.json low at first. Platforms rate-limit new accounts fast.