DEV Community

Caleb Rhodes
Caleb Rhodes

Posted on • Originally published at groniz.com

How to Turn an RSS Feed into Scheduled X Posts

An RSS-to-X workflow turns new RSS or Atom items into scheduled X content. In Groniz X Agent, an hourly job checks the source and fires once per configured period. The result goes to that source's next configured posting slot. It is scheduled distribution, not an instant alert.

The feed connection only supplies source material. Your transformation instructions decide which details the post may use, which claims it must preserve, and how it should handle thin input. Groniz uses a cursor during ordinary RSS polling to avoid processing the same item again. You set the cadence and choose whether the feed material should become a post, thread, or hook.

The finished RSS-to-X workflow

Once configured, the workflow runs like this:

RSS or Atom item
  → hourly source check
  → editable AI transformation prompt
  → post, thread, or hook
  → source's next configured posting slot
  → operator review
Enter fullscreen mode Exit fullscreen mode

There are two clocks to account for. The operator sets the overall cadence, timezone, and run time, while each RSS source has its own cadence. A source check does not publish the moment an item appears. It prepares output for the next slot configured for that source. This timing model does not suit second-by-second alerts.

Ordinary RSS checks carry a cursor to prevent the same item from being processed again during routine polling. That protection belongs to RSS and Atom sources, so do not assume it applies to other event-source types.

Decide what the feed is for

Give each feed one clear editorial job. A company blog might supply product education, while a changelog might supply release notes. A creator's newsletter could supply one useful observation from each issue.

Write the job as a sentence before configuring anything:

> Turn each substantial product-education article into one useful X post for technical founders, preserving the article's factual claims and linking to the source.

That sentence puts a boundary around the transformation prompt. Without one, the agent has to infer whether a feed item should become a summary, teaser, commentary post, or thread.

Inspect the feed itself, too. Confirm that it is valid RSS or Atom and that new entries have stable links. Then check whether each entry contains enough information to support the planned post. Some feeds expose only a title and short excerpt. The transformation rules must stay within those facts instead of implying that the agent has the complete article.

Set the schedule before enabling the source

Choose the account's overall cadence, timezone, and run time first. These are operator decisions. Groniz does not choose a "best" time for you. Pick a schedule that fits your audience and operating routine, then decide how often this feed should contribute.

Next, configure the RSS or Atom source and its cadence. Its timing works as follows:

  • The source is checked by an hourly job.
  • It fires once per configured period.
  • Generated output is placed at the source's next configured posting slot.
  • A new feed item therefore does not mean an immediate X post.

The delay separates publication in your CMS from distribution on X and leaves time to inspect the output. It also means you should not present RSS-to-X as a real-time notification system.

You can enable or disable each source. Keep a new source disabled until its transformation brief is ready if you do not want incomplete instructions to govern the first scheduled output.

Write an RSS transformation brief

The editable AI transformation prompt tells the agent how to turn a raw feed item into X content. Start with a brief that separates source facts from editorial preferences.

Copy this template into your planning document and fill it out before turning it into the source prompt:

source:
  feed_name: ""
  feed_purpose: ""
  expected_item_types: ""
  likely_input_detail: "full text, excerpt, or title and link"

inclusion:
  facts_to_use: ""
  ideas_to_emphasize: ""
  source_phrasing_that_may_be_quoted_or_paraphrased: ""

exclusion:
  details_to_omit_from_the_post: ""
  promotional_language_to_remove: ""
  topics_that_require_manual_handling: ""

factual_constraints:
  claims_that_must_match_the_source: ""
  numbers_or_names_that_must_not_change: ""
  assumptions_the_agent_must_not_add: ""

voice:
  audience: ""
  tone: ""
  preferred_sentence_style: ""
  phrases_or_habits_to_avoid: ""

link_handling:
  include_source_link: "always, when useful, or never"
  link_position: ""
  call_to_action_style: ""

output_type:
  format: "single post, thread, or hook"
  target_length: ""
  opening_approach: ""

review_expectations:
  facts_to_check: ""
  voice_checks: ""
  conditions_for_operator_review: ""

failure_notes:
  record_when_source_is_too_thin: ""
  record_when_facts_conflict: ""
  record_when_output_needs_rewriting: ""
Enter fullscreen mode Exit fullscreen mode

The inclusion and exclusion fields are editorial transformation rules. They describe which details may appear in the resulting X content. They do not mean the RSS provider offers arbitrary feed filters. If you need strict item selection before anything reaches the agent, curate the feed upstream.

The failure-notes section is an operator runbook, not an automatic reporting feature. Use it to record why an item was unusable or why a scheduled draft needed intervention.

Turn the brief into the editable prompt

Convert the completed brief into direct instructions. For example:

Transform each new item from this product-education feed into one standalone
X post for technical founders.

Use only facts present in the feed item. Preserve product names, numbers, and
stated limitations exactly. If the item contains only a title and excerpt,
do not imply details that are not in that excerpt.

Lead with the most useful practical lesson, not a generic announcement.
Write in a direct, restrained voice. Avoid hype, invented outcomes, and claims
about customer results.

Include the source link at the end. Produce a single post, not a thread.
The final copy should make sense without a heading such as "New blog post."
Enter fullscreen mode Exit fullscreen mode

Name the output type directly. A single post can carry one lesson or announcement. A thread needs enough source material for several distinct points. Ask for a hook only when someone will develop or review it later. A title-only feed rarely supports a thread without padding, so match the format to the depth of the input.

Give link rules their own line. State whether to include the source URL every time, only when it helps the reader, or never. If the workflow exists to distribute articles, specify where the link belongs.

Use voice without pretending to train a model

Groniz X Agent can write posts, threads, and hooks using your goal and a voice insight derived from roughly 30 recent posts on the account. It does not fine-tune a personal model.

The RSS prompt adds task-specific direction to that voice insight. The insight reflects patterns in recent account writing, while the source prompt explains what this feed's output must do. For a changelog feed, you might ask for practical, concise copy without launch-day hype. For a blog feed, you might tell the agent to teach one idea before mentioning the article.

Do not overload the prompt with an imitation checklist. A few concrete choices about sentence length, formality, point of view, and promotional language give the transformation a clearer job. For a deeper explanation of the distinction, read how AI voice matching works without training a personal model.

Enable carefully and treat Run once as an override

After the schedule and prompt are ready, enable the source. During ordinary hourly polling, cursor-based deduplication prevents the same RSS item from being processed again. Repeated routine checks will not create another version of that item.

Run once behaves differently because it bypasses deduplication. It is an execution override, not a harmless connectivity test. Run it against an item already seen during ordinary polling, and the same source item can be transformed again. That may create duplicate scheduled content.

Use Run once only when you intend to reprocess a source and can inspect the resulting schedule. Do not click it repeatedly while troubleshooting a prompt. Edit the transformation instructions first. If reprocessing is necessary, use the override once and check for a duplicate.

Review the first scheduled outputs

For the first few items, inspect the output before its configured slot whenever your process allows. Check:

  • Every name, number, claim, and limitation against the feed item.
  • Whether the opening offers a reason to read rather than merely announcing a link.
  • Whether the requested output type fits the amount of source material.
  • Whether the voice feels consistent with the account's recent writing.
  • Whether the source link is present and positioned according to the brief.
  • Whether a prior use of Run once created another version from the same item.

This review matters most when a feed mixes content types. A transformation brief can constrain how the agent uses information, but it cannot make an inconsistent feed into a clean editorial source.

You also need to decide whether you want an autonomous operator or only a writing assistant. An autonomous X agent and an AI tweet writer handle different parts of the workflow: one works against a goal and schedule, while the other primarily produces copy for someone else to move and publish.

Handle the common failure modes

If nothing appears immediately after a feed update, check the timing before assuming failure. The source is polled hourly, and its output waits for the next configured slot.

If the same item appears twice, review whether someone used Run once. Ordinary polling uses the RSS cursor; the override bypasses it.

If the output invents detail, tighten the factual constraints and reduce the requested format. A short excerpt may support one careful post but not a detailed thread.

If the post sounds generic, make the voice direction more concrete and confirm that the account has enough recent writing for a useful voice insight. The insight comes from roughly 30 recent posts, not from model training.

If the link is missing or awkward, state the link policy and position in the editable prompt rather than relying on an unstated preference.

Treat RSS-to-X as a scheduled editorial workflow with an operator-set cadence and source-specific rules for facts and voice. The feed still needs editorial judgment because not every item is ready to publish untouched.

Set a goal, choose your schedule, and configure your RSS workflow with Groniz X Agent.

Top comments (0)