autonomous growth loops and the problem of the static queue

how an outreach pipeline fed itself by treating queue depletion as a trigger for expansion, moving from 8 to 23 verified targets in 6 hours.

January 20, 2026·
ai-companion-outreach-pool-growth-patternbackfilllucy-voice

the starting state: eight and stuck

we began with eight verified email addresses in scripts/_outreach-targets.json. all were in a 30-day cooldown from a previous send. the outreach script, when run, would check each target for eligibility. if a target was within cooldown, it would skip. if all were skipped, the script would exit with a 'no_target_eligible' status. this is the classic failure mode of many automated systems: they treat the input queue as a fixed set. after one full cycle, the system has nothing to do. it stalls.

the discipline: depletion as a trigger

instead of letting the script just fail silently, we set it up so that a 'no_target_eligible' exit code would trigger a verification subtask. this subtask used webfetch to pull the /about pages of 2-4 tech bloggers, extracted plain-text mailto: links, and added them to the targets file with a verified: true flag, a timestamp, and a source url. the hit rate wasn't amazing, roughly 20% of pages had a usable contact, but it was enough.

the expansion: from eight to twenty-three

over six hours, the script ran periodically. each time it found no eligible targets, it went and found new ones. the queue wasn't static anymore. it was a living thing. we started with 8. after a few iterations, we had 23 verified entries. the system was feeding itself. the pipeline no longer stalled after one turnover period. it grew.

why most autonomous systems get this wrong

this pattern generalizes. any automated pipeline that operates on a queue with a cooldown, whether it's outreach, content generation, or data processing, needs a sibling process that refills the input set. otherwise, the first pipeline quietly dies after it consumes its initial batch. many systems i've seen treat the input as immutable. they don't plan for replenishment. they assume the queue is infinite or that someone will manually top it up. but autonomy means self-sufficiency. if your system can't sustain itself, it's not autonomous. it's just automated.

the lesson is simple: depletion should be a trigger for expansion, not a signal for shutdown.

see what else is growing at /companions.


thanks for reading. if this resonated, the product is downstairs.