Agent build · v1
Site-first article and explainer agents
What it does: Two Claude Code agents that publish to your own site first: one writes a data-backed article per run, the other turns articles and projects into pages that each answer one searched question.
- Model
- Claude Opus (Claude Code background agents)
- Runs in
- Claude Code scheduled tasks + background agents
- Cost per run
- not measured
- License
- MIT
- Used by
- 0
- Files
- 7 (18 KB)
curl -L https://tensorust.com/builds/site-first-article-agents/download -o site-first-article-agents.zip
Receipts
- Source
- https://this-week-in-rust.org/blog/2026/10/21/this-week-in-rust-674/
- Measured
- Oct 21, 2026
- Check
- Number found on the source page by our checker
- Stamp
- ZUIl8enHLWxfHuELNhLDQ85Hzc-h63Xs
- Source
- https://tensorust.com/articles/crates-io-download-count/
- Measured
- Oct 17, 2026
- Check
- Number found on the source page by our checker
- Stamp
- W3nPiJOC2p9HAOdZLXUR8pjXD0CPjnXv
Files
- agents/articles/QUALITY.md2 KB
- agents/articles/ROLE.md3 KB
- agents/articles/SITE_PUBLISH.md3 KB
- agents/explainers/QUEUE.example.md1 KB
- agents/explainers/ROLE.md3 KB
- README.md1 KB
- schedule.example.json3 KB
{
"_updated": "Example adapted from the live schedule (times America/New_York). The main session runs the PRECHECK itself so an agent is only spawned when there is room under the cadence.",
"recurring": [
{
"name": "flagship-article",
"cron": "47 0,6,8,10,12,14,16,18,20,22 * * *",
"prompt": "PRECHECK FIRST (main session, no agent): get the time with `date` and read outreach/posts.json. Skip without spawning and end your turn if 10 site-article entries already went out today, or the last site-article went out less than 80 minutes ago, or a flagship article agent from this session is still running. Otherwise spawn the FLAGSHIP ARTICLE agent and do nothing else this turn. Use the Agent tool with subagent_type \"general-purpose\", run_in_background true, description \"Flagship article\", prompt: \"You are the FLAGSHIP ARTICLE agent. Get the real time with `date` and re-check posts.json against the cadence in ROLE.md. Read, in order: outreach/agents/articles/ROLE.md, QUALITY.md, NOTES.md (LESSONS first), SITE_PUBLISH.md, TOPIC_LOG.md, the top of outreach/VOICE.md and dashboard/latest.json (which past articles beat our median and why). Shortlist at least 8 live topics and score them as ROLE.md says; log them in TOPIC_LOG.md; pick the winner. Run a fresh experiment or pull a fresh dataset for it. Write it to the bar in ROLE.md and QUALITY.md with 4-8 visuals. Publish to the site first per SITE_PUBLISH.md (build lock, deploy, IndexNow, verify 200 + index + sitemap), then dev.to with canonical_url, then the social copies only if ROLE.md's social rule allows, each through the full-body gate. Seed 2-3 explainer topics into agents/explainers/QUEUE.md. Log everything in posts.json and NOTES.md. Floor: no fabricated quotes, numbers, screenshots or sources. Stop on any 429. Never sign out, switch accounts or close tabs you didn't open; never type passwords or hunt for credentials. Finish with the shortlist and scores, the title, every live URL and the word count, or why you skipped.\" Then end your turn."
},
{
"name": "explainers",
"cron": "7 * * * *",
"prompt": "PRECHECK FIRST (main session, no agent): read outreach/posts.json; skip without spawning if 30 site-explainer + site-guide entries already went out today or an explainers agent from this session is still running. Otherwise spawn the EXPLAINERS agent and do nothing else this turn. Use the Agent tool with subagent_type \"general-purpose\", run_in_background true, description \"Explainers + guides run\", prompt: \"You are the EXPLAINERS + GUIDES agent. Read outreach/agents/explainers/ROLE.md fully, then QUEUE.md and outreach/agents/articles/SITE_PUBLISH.md. Publish 2-3 explainers or guides this run from the top of QUEUE.md, batched into ONE build and deploy, to the bar in ROLE.md: Short answer, Key numbers table, primary-source links with dates, 3+ internal links, FAQ schema, one real search phrase. Opinions labeled as opinion; disproven claims get a myth-check, never presented as fact. Take the site build lock, build, deploy, IndexNow, verify 200 + section index + sitemap. Log each in posts.json (platform site-explainer or site-guide). Refill QUEUE.md to 20+ topics. SITE ONLY: no X, LinkedIn or dev.to. No em dashes. Never sign out, switch accounts or close tabs you didn't open; never hunt for credentials. Finish with the titles, URLs, word counts and today's count.\" Then end your turn."
}
]
}
README
Two scheduled Claude Code agents that grow a site with search traffic in mind. The flagship article agent writes one article per run that carries data nobody else has, publishes it on your site as the canonical copy, and only sends the strongest 2 or 3 a day to dev.to, X and LinkedIn. The explainers agent publishes 2 or 3 short pages per run, each answering one question people type into a search box, built from the articles and projects you already have.
Why site first: on tensorust.com one data article (a fresh crates.io API pull) brought 259 of 677 weekly visitors and landed in This Week in Rust, while opinion pieces brought almost nothing. Search became the second biggest referrer. So the article agent must run a fresh experiment or pull a fresh dataset every time, and publish the data next to the article.
Layout:
schedule.example.json: both jobs, with the exact prompts. The main session runs a cheap precheck first (counts today's entries in posts.json, checks the gap since the last one) and only spawns an agent when there is room.
agents/articles/ROLE.md: topic selection (shortlist 8, score each, log the scores), the bar for the piece, the publish order.
agents/articles/QUALITY.md: the checklist every article passes before it publishes.
agents/articles/SITE_PUBLISH.md: build lock, catalog entry, build, deploy, verify, IndexNow, canonical URLs on copies, Search Console.
agents/explainers/ROLE.md and QUEUE.example.md: the page formats (explainer and guide), cadence caps, and the topic queue.
How to run it:
1. Set up the shared files from the outreach team build (posts.json, VOICE.md, a NOTES.md per role, a locks/ folder).
2. Replace the build and deploy commands in SITE_PUBLISH.md with your own. The original is a Python static build deployed with the Vercel CLI.
3. Create the two jobs in Claude Code from schedule.example.json.
What to change: your topics, your offers, your site commands, and the caps. Keep the caps on explainers: search engines demote sites that mass-produce thin pages, so the role refuses to pad a count. Keep the full-body gate on social copies (the posted copy must contain 90% or more of the source text and every image), because editors on some platforms silently drop sections.
The dev.to step needs an API key. The agents read it from a local file and never print it; on a 401 they stop and report.