Catalyst Job Scheduling logo

Catalyst Job Scheduling

Organization
catalystbyzoho
catalyst-job-scheduling

Catalyst Job Scheduling — job pools, immediate/background jobs, and crons (Periodic, OneTime, Calendar, CronExpression) executing Job functions, Webhooks, Circuits, AppSail. Trigger on 'job scheduling', 'job pool', 'jobpool_id', 'submit a job', 'immediate job', 'cron job', 'scheduled function', 'submitJob', 'createCron', 'retry_interval', 'time_of_execution', or errors 'not a job function', 'job_name must contain only alphanumeric'. Replaces deprecated Cron.

Overview

Publishercatalystbyzoho
Repositoryagent-skills
Skill namecatalyst-job-scheduling
Stars
70
Forks
17
Bundled files
2
LicenseApache-2.0
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 2 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by catalystbyzoho on GitHub. Read the source before you install it.

Installation

Install the Catalyst Job Scheduling AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/catalystbyzoho/agent-skills/tree/main/skills/catalyst-job-scheduling
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/catalystbyzoho/agent-skills.git /tmp/agent-skills
mkdir -p .claude/skills
cp -r /tmp/agent-skills/skills/catalyst-job-scheduling .claude/skills/catalyst-job-scheduling
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Catalyst Job Scheduling in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Catalyst Job Scheduling on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Catalyst Job Scheduling is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Catalyst Job Scheduling

Job Scheduling runs background work in three pieces: job pools (capacity containers), jobs (one execution each, submitted immediately via API/SDK/MCP), and crons (schedulers that submit jobs on a timetable). Every fact in this skill and its references is runtime-verified against a live Catalyst project (Aug 2026) unless marked otherwise.

Prerequisites

Before any operation, load references/job-scheduling-basics.md — it covers the five setup rules that cause most failures: job pool must exist first (no default), targets must be JOB-type functions, all time values in seconds, job_name limits, and function-vs-pool memory constraints.

How It Works

  1. Identify the target type: Job function (most common), Webhook (any HTTP URL), Circuit, or AppSail. Create/verify a matching-type job pool (Function pools size by memory MB; the others by concurrent number 1–10).
  2. One-off work → submit an immediate job (MCP CatalystbyZoho_Create_Immediate_Job or SDK jobScheduling().job().submitJob()). Recurring or delayed work → create a cron (CatalystbyZoho_Create_Cron_Job or SDK cron().createCron()) choosing Periodic / OneTime / Calendar / CronExpression. Load references/job-scheduling-basics.md for exact payloads for both paths.
  3. Write the Job function handler (jobRequest, context): initialize the SDK with catalyst.initialize(context, { scope: 'admin' }), read inputs via jobRequest.getAllJobParams() (all values arrive as strings), and ALWAYS end with context.closeWithSuccess() or closeWithFailure() — failure is what triggers the retry chain.
  4. For retries, dynamic scheduling, webhook targets, or monitoring, load references/job-scheduling-advanced.md — retry semantics (new job records linked by parent_job_id), firing behaviors (Periodic crons fire immediately on create AND update; past-dated OneTime fires instantly; OneTime auto-disables after firing), and observability traps (success/failure counters stay 0; dynamic crons are hidden from list APIs).
  5. Verify by job records, not counters: CatalystbyZoho_Get_Job_By_Id shows job_status (PENDING → RUNNING → SUCCESS | FAILURE), execution_time, dispatch_delay, response_code. Do not trust cron success_count/failure_count — they stay 0.

Security Checklist

  • Never log jobRequest.getJobDetails() or getJobMetaDetails() wholesale — at runtime their headers contain live credentials (X-ZC-PROJECT-SECRET-KEY, X-ZC-Admin-Cred-Token). Extract only the fields you need.
  • Webhook-target jobs to your own project's function URLs carry those same credential headers; treat webhook receiver logs as sensitive.
  • Job functions run with admin privileges — validate/whitelist anything you accept via params before using it in queries.
  • Never store secrets in job headers/params — Get_Job_By_Id / Get_Cron_Job_By_Id / List_All_Crons return them in plaintext. Never paste a raw cron/job dump into chat, issues, or logs.

Hallucination Guards

  • The SDK enum CRON_TYPE.CALENDER ("Calender") is misspelled and rejected by the server. Use the string 'Calendar'.
  • retry_interval is NOT milliseconds. Seconds, 60–86400. 15 * 60 * 1000 is rejected.
  • Immediate jobs and scheduled jobs share the same 15-minute timeout; context.getMaxExecutionTimeMs() returns the STRING "900000" (parseInt before math), while getRemainingExecutionTimeMs() returns a number.

Triggers

  • "job scheduling", "job pool", "jobpool", jobpool_id, "create a job pool"
  • "submit a job", "immediate job", "background job", "run this function as a job", submitJob, Create_Immediate_Job
  • "cron", "cron job", "scheduled function", "schedule a function", "recurring job", createCron, Create_Cron_Job, cron_expression, time_of_execution, "Periodic", "OneTime cron", "Calendar cron"
  • "retry a job", number_of_retries, retry_interval, parent_job_id, "dunning", "billing schedule", "trial expiry job"
  • pauseCron, resumeCron, runCron, deleteCron, "pause a cron", "trigger a cron manually", Submit_Cron_Job
  • Errors: "The given function is not a job function", "job_name must contain only alphanumeric and underscore", "job_name should be within 1-20 char length", "retry interval should be within 60s", "Delete all associated Pre-defined Crons before deleting Job Pool", "memory allocated for the Job Function is higher"
  • "webhook job", "call a URL on schedule", notify_url

References

FileLoad when the query is about…
references/job-scheduling-basics.mdCore concepts, job pools, immediate jobs, all 4 cron types, MCP tool workflows, Node SDK calls, Job function handler template, CLI setup
references/job-scheduling-advanced.mdRetry semantics, dynamic (in-code) cron creation, firing/timing behaviors, webhook-target jobs, notify_url, monitoring/observability, security guardrails, pool capacity rules

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Catalyst Job Scheduling AI skill do?

Catalyst Job Scheduling — job pools, immediate/background jobs, and crons (Periodic, OneTime, Calendar, CronExpression) executing Job functions, Webhooks, Circuits, AppSail. Trigger on 'job scheduling', 'job pool', 'jobpool_id', 'submit a job', 'immediate job', 'cron job', 'scheduled function', 'submitJob', 'createCron', 'retry_interval', 'time_of_execution', or errors 'not a job function', 'job_name must contain only alphanumeric'. Replaces deprecated Cron.

Why use Catalyst Job Scheduling on TypingMind?

Because you install it once and use it with any model. Catalyst Job Scheduling is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Catalyst Job Scheduling in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/catalystbyzoho/agent-skills/tree/main/skills/catalyst-job-scheduling. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Catalyst Job Scheduling?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Catalyst Job Scheduling?

As many as you like. As long as a model supports skills, you can use Catalyst Job Scheduling with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Catalyst Job Scheduling AI skill free?

Yes. It is published on GitHub by catalystbyzoho under the Apache-2.0 license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇