Skip to content

Content Agents

Canopy ships with two always-on content agents. Each one reads a notebook of sources you give it (URLs, blog posts, or just keyword topics), and every day it generates a fresh batch of LinkedIn draft posts into your queue.

The two agents are tuned for different rhythms:

  • Hot Content Agent — opinionated, polarizing, scroll-stopping hot takes. Best when paired with news URLs or trending topics.
  • Regular Content Agent — evergreen, educational posts that teach a single idea cleanly. Best when paired with playbooks, reference docs, or steady topic keywords.

Drafts land in My Posts with status DRAFT, tagged with the agent that created them, so you can review, edit, and schedule them like any other draft.

Setting up an agent

  1. Open Canopy → Agents in the sidebar.
  2. Click Set up on either card. The agent is created in OFF mode with no sources — nothing runs yet.
  3. Click into the agent to add sources and tune settings.

Building the notebook

The notebook is a list of sources the agent reads before each daily run. There are two kinds:

URL sources

Paste a blog post, news page, or knowledge base URL. The agent re-fetches the page each day, strips the HTML to plain text, and feeds the excerpt into the prompt.

  • Use product changelog URLs to keep posts current.
  • Use industry news pages for the Hot Content Agent — fresh material every day produces fresh hot takes.
  • Use evergreen guides for the Regular Content Agent.

Each fetch shows a status badge: PENDING (just added), FETCHED (last read OK), or FAILED (with the error). Failed sources are skipped on the next run, not removed.

Keyword sources

Just type a topic — agentic AI sales tactics, B2B SaaS pricing, founder-led marketing. The agent uses the keyword as topic guidance in the prompt; nothing is fetched.

Use keywords when:

  • You don’t have a URL but want the agent thinking about a specific theme.
  • You want to mix angles — pair one URL source with three keyword sources to broaden the daily rotation.

Settings

Open the agent and use the Settings card on the right.

Posts per run

How many drafts the agent generates each day. Defaults to 5; allowed range is 1–15. Higher numbers don’t slow the generation down meaningfully — pick what matches your posting cadence.

Tone notes

Free-text guidance folded into every prompt. Examples that work well:

  • First-person, founder voice. Dry humor. No corporate jargon.
  • Write like a senior PM explaining tradeoffs. Numbered lists where useful.
  • Tone: Naval Ravikant meets Patrick OShaughnessy. One idea per post.

Keep it under a paragraph — long tone notes don’t help the model and crowd out the source material.

Activating the agent

Once you have at least one source, click Activate. The agent picks up on the next scheduler tick (within ~5 minutes) and runs once. After that, it runs once every 24 hours. You can click Run now at any time to fire an extra run without waiting.

How a daily run works

Each run does the following, in order:

  1. Refresh sources — re-fetch every URL source. Failures are recorded on the source row but don’t stop the run.
  2. Build the prompt — system prompt for the agent kind + your tone notes + the full notebook (URL excerpts + keywords).
  3. Generate posts — Claude returns a JSON array of { title, content } objects.
  4. Bulk-insert as drafts — each post becomes a row in My Posts with status DRAFT and a link back to the run that created it.
  5. Advance the schedulelastRunAt is set to now, nextRunAt is set to 24 hours from now.

If a step fails — bad model output, network blip, etc. — the run is marked FAILED, the error message is visible on the run row, and the schedule still advances so the agent doesn’t thrash.

Frequently asked questions

Can I have more than one Hot Content Agent?

Not currently. Each user gets one of each kind — one Hot, one Regular. Splitting topics across many agents created clutter without much benefit in early testing; we may revisit if there’s demand.

Do the drafts auto-publish?

No. Every generated post is created as a DRAFT and waits for you in My Posts. Schedule or publish them like any other draft. The agent never posts on your behalf.

What happens if I turn the agent off?

The schedule stops immediately. Existing drafts stay in My Posts unchanged. Sources, settings, and run history are preserved — turning it back on resumes from where it left off.

Why didn’t my run produce any posts?

Common causes (visible in the run’s error message):

  • No sources — Run-now is disabled until you add at least one source.
  • All sources failed to fetch — every URL came back as FAILED. Check the URLs are publicly reachable (no auth wall).
  • Model returned no usable posts — usually a transient model issue; click Run-now again. If it persists, simplify your tone notes.

Can the agents reuse my existing sources from another tool?

Right now sources live per-agent only. We’re considering shared notebooks across agents (and across products) — let us know at support@banyan.app if that would help you.

How do I delete an agent?

There’s no delete button in the UI yet. If you need an agent removed, email support@banyan.app with your user ID. Cleaning up the source list and turning the agent off has the same practical effect.

Tips

  • Mix URL and keyword sources. A good notebook is roughly 1–2 URLs for grounding plus 2–4 keywords for variety.
  • Refresh URLs you control. Point the agent at your own blog or changelog and the daily posts stay current with what you ship.
  • Read the first batch carefully. Tune your tone notes after seeing what the agent does — small tweaks to tone notes change output a lot.
  • Schedule, don’t stockpile. Generated drafts are best published while their source material is fresh — feed them into your weekly slots.