CtrlK
BlogDocsLog inGet started
Tessl Logo

recurring-jobs

The legacy manage-jobs compatibility surface, job files under jobs/, and cron scheduler internals. Use when maintaining manage-jobs integrations or debugging the scheduler.

65

Quality

79%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./.agents/skills/recurring-jobs/SKILL.md
SKILL.md
Quality
Evals
Security

Recurring Jobs (Compatibility)

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

  1. User asks for something recurring via the agent chat
  2. Agent uses manage-jobs tool (action: "create") to write a job file at jobs/<name>.md
  3. A scheduler polls every 60 seconds and finds due jobs
  4. Due jobs enter the shared background-automation runner, on the same execution lifecycle as event automations
  5. 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)

ToolActionPurpose
manage-jobscreateCreate a recurring job (name, cron schedule, instructions)
manage-jobslistList all jobs and their status
manage-jobsupdateUpdate 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

FilePurpose
packages/core/src/jobs/cron.tsCron parsing (nextOccurrence, isValidCron, describeCron)
packages/core/src/jobs/scheduler.tsJob execution engine (processRecurringJobs)
packages/core/src/jobs/tools.tsAgent 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 model
  • actions — How tools and actions work
  • delegate-to-agent — How jobs invoke the agent loop
Repository
BuilderIO/agent-native
Last updated
First committed

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.