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

tools/start-browsers.ps1raw
# Starts the browsers the agent team attaches to. Safe to run any time:
# it only starts a profile whose CDP port is not already answering.
# Agents never launch browsers themselves; they attach with Playwright connectOverCDP.

$Chrome = "C:\Program Files\Google\Chrome\Application\chrome.exe"
$Profiles = @(
  @{ Port = 9336; Dir = "$env:USERPROFILE\agent-chrome\personal"; What = "personal X + LinkedIn" },
  @{ Port = 9335; Dir = "$env:USERPROFILE\agent-chrome\posting";  What = "article cross-posting (dev.to, Medium, GitHub)" },
  @{ Port = 9337; Dir = "$env:USERPROFILE\agent-chrome\accounts"; What = "brand X + business inbox" }
)

function Test-Cdp($port) {
  try { Invoke-WebRequest -UseBasicParsing -TimeoutSec 3 "http://127.0.0.1:$port/json/version" | Out-Null; return $true } catch { return $false }
}

foreach ($p in $Profiles) {
  if (Test-Cdp $p.Port) { Write-Output "$($p.What) ($($p.Port)): already running"; continue }
  Start-Process $Chrome -ArgumentList "--remote-debugging-port=$($p.Port)", "--user-data-dir=`"$($p.Dir)`"", "--no-first-run"
  Write-Output "$($p.What) ($($p.Port)): started"
}

Start-Sleep -Seconds 8
foreach ($p in $Profiles) { Write-Output ("{0} up: {1}" -f $p.Port, (Test-Cdp $p.Port)) }

# Clear browser locks left by a crashed agent (older than 15 minutes).
$Locks = Join-Path $PSScriptRoot "..\locks\*.lock"
Get-ChildItem $Locks -ErrorAction SilentlyContinue | Where-Object { $_.LastWriteTime -lt (Get-Date).AddMinutes(-15) } | Remove-Item -Force -ErrorAction SilentlyContinue

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