NarraNexusNarraNexus
NarraNexus · Modules

Jobs Module

Not everything happens in a single conversation. Jobs let your agent work on complex tasks over time — scheduling follow-ups, running overnight workflows, and monitoring conditions until they're met.


What Jobs Are For

A conversation ends when you close the window, but your agent's work doesn't have to. Jobs are background tasks that keep running after the chat is over:

Overnight work

"Research these 50 companies and have a report ready by morning."

Scheduled check-ins

"Remind me every Monday about pending invoices."

Condition monitoring

"Watch this competitor's pricing page and tell me when it changes."

Multi-step workflows

"Send the proposal, follow up in 3 days if no reply, then escalate."

You don't need to learn any special syntax. Just describe what you want in natural language and the agent decides the right job type, schedule, and execution plan. When the job completes — or hits something worth reporting — the agent sends the results back to you through the chat.

Job Types

When the agent creates a job via job_create, it picks one of four execution patterns based on what you asked for:

ONE_OFFRun once at a specific time. Good for reminders, delayed actions, or "do this tomorrow at 9am" requests.
SCHEDULEDRun on a cron schedule. Good for periodic reports, daily digests, or weekly check-ins.
RECURRINGRepeat at a fixed interval until cancelled. Good for polling external services or regular data collection.
ONGOINGRun continuously until an end condition is met. Good for goal tracking, follow-up chains, and "keep doing this until X happens" requests.

Status Lifecycle

Jobs transition through well-defined states:

PENDING → ACTIVE → IN_PROGRESS → COMPLETED
                ↘                    ↘ FAILED
                 → BLOCKED            → CANCELLED
                                      → ARCHIVED

After each execution, the system analyzes results to determine whether the job completed, failed, or needs to run again. You can also tell the agent to pause or cancel a job at any time — it uses job_pause and job_cancel behind the scenes. ONGOING jobs can also resolve naturally when you mention in chat that the goal has been met.

How Jobs Execute

A background poller checks for due jobs and runs them through the full agent pipeline — the same pipeline used for chat, but with a specialized context:

1. PollBackground trigger finds jobs where next_run_time has passed. Up to 5 jobs run in parallel.
2. ContextBuilds execution context with the job's description, related entities from the Social Network, and outputs from dependency jobs.
3. ExecuteAgent runs with its full tool set — it can search the web, call APIs, send messages, or use any skill it has learned.
4. AnalyzeResults are analyzed to determine status and next steps. If the job produced something worth reporting, it's sent to the user's inbox.

Jobs can also declare dependencies on other jobs — a job won't execute until its dependencies have completed, enabling multi-step workflows where each stage builds on the previous one.

Tools

Port 7803
job_createCreate a new background job with type, schedule, and instructions
job_retrieval_semanticSearch for jobs by natural language query
job_retrieval_by_idFetch a specific job by ID
job_retrieval_by_keywordsSearch for jobs matching specific keywords
job_updateUpdate job properties (title, description, trigger config, status)
job_pausePause an active job (can be resumed later)
job_cancelCancel a job permanently