Agent builds / AI agents

Agent build · v1

AI outreach agent team: short-lived role agents on a schedule (free sample)

What it does: The layout of a Claude Code agent team that runs replies, inbox and numbers on a schedule. Each role wakes up, does one run, writes down what it learned, and exits. Sample of the paid kit.

Model
Claude Opus and Claude Sonnet (Claude Code background agents)
Runs in
Claude Code scheduled tasks, Playwright over CDP
Cost per run
not measured
License
MIT
Used by
0
Files
8 (20 KB)
curl -L https://tensorust.com/builds/ai-outreach-agent-team/download -o ai-outreach-agent-team.zip

Receipts

Receipt
962,969
X views on the team's posts and replies, as counted on the team's public receipts page
Source
https://agent-receipts-five.vercel.app/
Measured
Oct 22, 2026
Check
Number found on the source page by our checker
Stamp
w5H4zZScAptjReQTwOTdHqZ7ELh2hJd_
Receipt
845
actions (replies, posts, comments, articles) logged by the agents since 2026-10-09
Source
https://agent-receipts-five.vercel.app/
Measured
Oct 22, 2026
Check
Number found on the source page by our checker
Stamp
N8LcJHO392fsJGWy_O4kp8pjF7_h1543

Files

schedule.example.jsonraw
{
  "_updated": "Example adapted from the live schedule. Times are local (America/New_York in the original). Each prompt is what the Claude Code scheduled job sends to the main session; the main session spawns one background agent and ends its turn.",
  "recurring": [
    {
      "name": "x-reply",
      "cron": "25 11,19 * * *",
      "prompt": "PRECHECK FIRST (main session, no agent): get the time with `date` and read outreach/posts.json. If both accounts already replied in the last 50 minutes, skip without spawning and end your turn. Otherwise spawn the X REPLY agent and do nothing else this turn. Use the Agent tool with subagent_type \"general-purpose\", run_in_background true, description \"X replies (1 brand + 1 personal)\", prompt: \"You are the X reply writer. Read outreach/agents/README.md (top headers), outreach/agents/x-reply/ROLE.md and NOTES.md (LESSONS first) and the top of outreach/VOICE.md, then follow ROLE.md for ONE run. Exactly ONE reply from <BRAND_HANDLE> in the accounts Chrome on CDP 9337 and ONE from <PERSONAL_HANDLE> in the personal Chrome on CDP 9336, each after confirming the signed-in profile link. Find targets with at most 6 live searches; real people only; a verified fact with a source URL in each reply. Check posts.json first: skip an account that replied in the last 50 minutes and any handle it replied to in the last 24h. Stop on any 429. Never sign out, switch accounts or close tabs you didn't open; never type passwords or hunt for credentials. Log each in posts.json (platform, ts, url, target, text) and NOTES.md. Finish with the exact lines posted and where.\" Then end your turn."
    },
    {
      "name": "closer",
      "cron": "45 9 * * *",
      "prompt": "Spawn the CLOSER agent and do nothing else this turn. Use the Agent tool with subagent_type \"general-purpose\", model \"sonnet\", run_in_background true, description \"Closer run\", prompt: \"You are the CLOSER + FULFILLMENT agent. Read outreach/agents/README.md (NEVER SIGN OUT header first), then outreach/agents/closer/ROLE.md and NOTES.md, and follow ROLE.md for ONE run. Handle everything that came in since the last run, oldest first. Read the business inbox in the accounts Chrome on CDP 9337 (your own tab) and reply from the same alias the thread used. Buyer questions: answer by email and point to the one-click checkout that fits; never quote prices beyond the listed price or commit to terms; tell the owner. Press and creator replies: send what they ask for (press kit, links, facts). Unsubscribes: add the address to the opt-out list. Check the payment processor (read-only) and storefronts for new orders and fulfil them. Every claim true; honor opt-outs; never sign out or close tabs you didn't open; never type passwords; never hunt for credentials. Finish with replies answered, orders fulfilled, opt-outs added, and anything waiting on the owner.\" Then end your turn."
    },
    {
      "name": "numbers",
      "cron": "53 15 * * *",
      "prompt": "Spawn the NUMBERS agent and do nothing else this turn. Use the Agent tool with subagent_type \"general-purpose\", run_in_background true, description \"Numbers run (analyst + revenue)\", prompt: \"You are the NUMBERS agent (analyst and revenue lead in one, one run a day). Read outreach/agents/README.md top headers, then outreach/agents/numbers/ROLE.md and NOTES.md, and follow ROLE.md for ONE run. Write the scraped numbers to outreach/dashboard/latest.json before running the snapshot and build scripts. Read every money source read-only and total it against the goal; tie movements to the posts, articles and emails that preceded them. Score every role and write one concrete change per role into its NOTES.md; propose (never ship) conversion changes. Diagnose content, never blame follower count or timing. NO posting, no emails, no social activity. Never sign out, switch accounts or close tabs you didn't open; never hunt for credentials. Finish with a 6-line summary: money to date vs goal, biggest win, biggest flop, one change per role.\" Then end your turn."
    }
  ],
  "one_shots": [],
  "disabled": [
    {
      "name": "reddit-commenter",
      "why": "Account was filtered after a run of retries on a removed comment. Lesson kept in RULES.md: never re-post after an error until you check whether the first attempt went live."
    }
  ]
}

README

This is the structure behind the agent team that has run Tensorust's distribution since 2026-10-09: X replies, long-form articles, cold email, an inbox closer and a daily numbers agent. It runs on Claude Code. Nothing stays on. A scheduled job wakes up, spawns one short-lived background agent for one role, the agent does one run, and it exits.

Each role is two files. ROLE.md is the playbook: the job, what to read first, the steps, hard caps and what to log. NOTES.md is the role's memory: a LESSONS block at the top that the agent reads before acting, and a run log it appends to after (TRIED, RESULT, LESSON). Shared files hold the voice, the goals, and posts.json, a log of every action with its live URL. Cadence limits are checked against posts.json before anything is posted, so two runs can never double-post.

What is in this sample:

README.md: the architecture and how a run works.
shared/RULES.md: the rules every role reads first (real Chrome only, never sign out, reuse tabs, stop on 401 and 429, log the live URL).
shared/LEARNING-LOOP.md: how roles get better between runs.
roles/x-reply/ROLE.md and roles/numbers/ROLE.md: two of the role briefs.
schedule.example.json: three jobs with their exact prompts, including the precheck the main session runs before spawning anything.
.claude/skills/agent-team-restart/SKILL.md: a skill that brings the whole team back in a fresh session.
tools/start-browsers.ps1: starts the Chrome profiles agents attach to.

How to run it:

1. Start Chrome profiles with remote debugging (tools/start-browsers.ps1) and sign into each account by hand.
2. Put the files under outreach/ as laid out in README.md, write your own VOICE.md and PLAYBOOK.md, and fill the handles and ports in schedule.json.
3. In Claude Code, run the restart skill. It checks logins read-only and creates one scheduled job per entry in schedule.json.

/agent-team-restart

Scheduled jobs in Claude Code live only in the session and expire after 7 days, so run the restart skill in every new session and at least weekly.

What to change: your platforms, your ports, your voice, and the cadences. Start with low cadences; new accounts get rate-limited fast. Keep the shape: one run per agent, cheap prechecks in the main session, every action logged with a live URL, and a numbers agent that writes one change per role per day.

The full kit, The Agent-Run Outreach Team, adds the other roles (scout, LinkedIn, community, articles, revenue), the pacing gate and posts log enforced in code, the scorecard and learning scripts, and a setup guide: https://shop.tensorust.com/

0 comments

Log in to comment