Recurring Jobs (Compatibility)
SkillFiles & storageLets your agent create and manage recurring scheduled jobs that run on a cron schedule.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Recurring Jobs (Compatibility) skill
About this capability
The legacy manage-jobs compatibility surface, job files under jobs/, and cron scheduler internals. Use when maintaining manage-jobs integrations or debugging the scheduler.
What this skill tells your AI
The instructions your AI receives, as published by builderio/agent-native in .agents/skills/recurring-jobs/SKILL.md and read by ahel’s review.
Rule
Recurring Jobs is the legacy name and API for scheduled automations. Jobs live
as resource files under jobs/ with YAML frontmatter for scheduling metadata.
Read automations for the product model, trigger types, frontmatter fields,
organization scope, and when to prefer manage-automations over manage-jobs.
This skill covers only what is specific to the legacy scheduled path: the
manage-jobs tool and the cron scheduler behind it.
How It Works
- User asks for something recurring via the agent chat
- Agent uses
manage-jobstool (action: "create") to write a job file atjobs/<name>.md - A scheduler polls every 60 seconds and finds due jobs
- Due jobs enter the shared background-automation runner, on the same execution lifecycle as event automations
- Job results are saved as chat threads
Connected MCPs in background jobs
When a job needs a connected remote MCP, bind the exact advertised
mcp__<server>__<tool> names through mcpTools. The scheduler passes that
definition to the shared runner, which resolves only that allowlist under the
persisted creator/org request context and never stores or exposes OAuth tokens,
URLs, or arbitrary proxy targets.
Use an app-owned bounded import/upsert action for writes. Keep provider-specific
response mapping, provenance, deduplication, and write policy in the app rather
than in core. For example, a job can read meeting notes from any connected MCP
and pass normalized action items to an app's idempotent import action.
Job Tool (built in)
| Tool | Action | Purpose |
|---|---|---|
manage-jobs | create | Create a recurring job (name, cron schedule, instructions) |
manage-jobs | list | List all jobs and their status |
manage-jobs | update | Update schedule, instructions, or toggle enabled |
UI Surface
/agent#jobs is the stable compatibility URL for the Agent page's
Automations tab, which lists legacy scheduled jobs alongside trigger-aware
automations and is backed by the scoped list/manage actions. Direct users there
instead of describing job files when they just want to view or toggle scheduled
work.
Key Files
| File | Purpose |
|---|---|
packages/core/src/jobs/cron.ts | Cron parsing (nextOccurrence, isValidCron, describeCron) |
packages/core/src/jobs/scheduler.ts | Job execution engine (processRecurringJobs) |
packages/core/src/jobs/tools.ts | Agent tool (manage-jobs with create/list/update actions) |
packages/core/src/client/agent-page/ | AgentJobsTab, the /agent#jobs surface |
Related Skills
automations— The primary Scheduled/Event product modelactions— How tools and actions workdelegate-to-agent— How jobs invoke the agent loop
Signals
- GitHub stars
- 5k
- Forks
- 440
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
recurring-jobs- Source
- github.com/builderio/agent-native