Overview
Jobs are blueprints that define when, how, and what browser automations to execute. Instead of triggering individual API runs manually, Jobs let you orchestrate multiple automation executions together—running them in bulk, on a schedule, or both. They handle scheduling, retries, concurrency management, and result aggregation. The most common use case: set up a scraper to run on a schedule and configure a sink to deliver results directly to your system. You create the scraper, configure the Job with a schedule and a webhook or S3 sink, and the data flows into your service automatically—no polling or manual exports required.Usage
Create a Job
- Dashboard
- API
- CLI
- Code
Navigate to Jobs
Create new Job

Trigger a JobRun
A Job can have a schedule, but the schedule is optional. Even if a Job has a schedule configured, you can trigger it on-demand whenever you want. Each trigger creates a new JobRun.- Dashboard
- API
- CLI
Navigate to Jobs
Find your Job
Trigger the Job
Monitor a Job
Intuned provides full observability into every JobRun, giving you complete visibility into what happened and why. Each execution generates detailed logs, browser traces, and session recordings that help you debug issues and understand your automation’s behavior.- Dashboard
- API
- CLI
Open the Job you want to monitor
Track progress
View Runs and Attempts
Pause and resume a Job
Pausing a Job stops new JobRuns from starting and prevents in-progress JobRuns from executing new payload items. Currently running Runs will be canceled and retried when you resume. Use pause when you need to temporarily stop execution—for example, to fix an issue or update credentials.- Dashboard
- API
- CLI
Terminate a JobRun
Terminating immediately stops a specific JobRun instance. All in-progress Runs are canceled, and no further payload items execute. Use terminate when you need to stop a JobRun completely—for example, if it was triggered by mistake or is no longer needed.- Dashboard
- API
- CLI
Find the JobRun
Terminate the JobRun
Delete a Job
Deleting a Job removes it permanently from your Project. Any in-progress JobRuns will be terminated. You cannot undo this action.- Dashboard
- API
- CLI
Navigate to Jobs
Delete the Job
Confirm deletion
Extend Run timeout
Jobs have arequestTimeout configuration that controls how long each Run Attempt can take before it fails. The default is 600 seconds (10 minutes). For long-running automations, call extendTimeout to reset the timer:
Use Jobs with AuthSessions
Jobs fully support AuthSessions. When you configure a Job for an authenticated Project, specify the AuthSession in the Job configuration. All Runs in the JobRun use the same AuthSession, including extended Runs added viaextendPayload.
Jobs validate the AuthSession when the JobRun starts and before each Run attempt. If validation fails and can’t recover, the JobRun pauses—you can fix the AuthSession manually and resume it from where it paused.
- Dashboard
- API
- CLI
- Code

Extend Jobs dynamically
Jobs support nested scheduling, where an API can dynamically extend the JobRun’s payload during execution using theextendPayload function. This is useful when the full scope of work isn’t known until you start executing—for example, scraping an e-commerce site where product URLs aren’t known upfront:
extendPayloadonly works within JobRuns (not standalone Runs)- Extended items are added to the same JobRun and tracked together
- Extended items respect the Job’s retry and concurrency configuration
- Extended items automatically inherit the JobRun’s AuthSession
- You can call
extendPayloadmultiple times within a single API execution
Configuration reference
Job configuration is defined using a JSON schema. The platform dashboard provides a guided wizard to help you set these values through the UI, or you can use the API to send the configuration directly.Basic Job structure
Every Job requires an ID and payload. Here’s a minimal example:Payload configuration
Thepayload array defines what APIs to execute:
Execution configuration
Schedule configuration
Jobs support two scheduling methods: Intervals — Run every X period:"1h", "30m", "7d".
Calendars — Run at specific times:
"hour": 9), ranges ("hour": { "start": 9, "end": 17 }), and wildcards ("month": "*").
Sink configuration
Send Job results to external systems. See the Sinks API reference for detailed options. Webhook:Notifications configuration
Usenotifications to receive a JobRun-level webhook when a JobRun reaches a terminal state.
Notifications are different from sink:
sinksends payload-level results (many records per JobRun).notificationssends one JobRun-level summary event when the JobRun finishes, fails, is terminated, or is paused.
AuthSession configuration
auth_session (snake_case) in all languages and SDKs, including
TypeScript. This is different from runs, which use authSession (camelCase)
in TypeScript.Job result file schema
When a JobRun completes, Intuned stores the results as a JSONL file (JSON Lines — one JSON object per line). Each line represents the result of a single Run (one payload item execution). You can download this file via the dashboard or the Get Job Run API, which returns a pre-signed S3 URL.File format
Format: JSONL (.jsonl) — each line is a valid JSON objectEncoding: UTF-8
Ordering: Lines are written as Runs complete; order is not guaranteed
Line schema
Each line in the file is a JSON object with the following structure:Field reference
Top-level fields
apiInfo fields
error object
Present when a Run fails. null on success.
reason object
Present when a Run was stopped for a non-error reason (e.g. job terminated). null otherwise.
Reading the result file
Best practices
- Keep APIs focused: Design each API to handle a single concern. Use Jobs to orchestrate multiple APIs rather than building monolithic automations.
-
Use nested scheduling for discovery patterns: When scraping lists before details, use one API to discover items and
extendPayloadto process each. -
Limit concurrency for rate-limited targets: Set
maximumConcurrentRequeststo 1-5 for rate-limited sites. Increase for robust targets. -
Include metadata in parameters: Pass identifiers or context (
{ "category": "electronics", "batchId": "2024-10-16" }) for easier debugging. - Use sinks for production workflows: Configure webhooks or S3 to automatically capture results rather than manually exporting.
- Test before scheduling: Create a QA instance of your Job (no schedule or sink) to test manually before setting up the production version.
- Use service account AuthSessions: Use dedicated service accounts rather than personal credentials for clearer audit trails.
- Monitor JobRun history regularly: Check for patterns in failures. Consistent failures in specific payload items may indicate API issues.
Limitations
- Execution order is not guaranteed: Payload items may execute in any order depending on concurrency and worker availability.
-
Extended payload items execute asynchronously: Items added via
extendPayloadare queued and execute as workers become available. - No conditional execution within Jobs: Jobs execute all payload items. Use nested scheduling and API-level logic for conditional workflows.
- Schedule precision: Scheduled JobRuns trigger within a reasonable window but not at the exact millisecond.
- Sink and notification delivery are at-least-once: Results and JobRun notifications may be delivered multiple times in rare failure scenarios. Handle duplicates idempotently.
- AuthSession is shared across all Runs: You cannot use different AuthSessions for different payload items within the same JobRun.
- Only credential-based AuthSessions support auto-recreation: Recorder-based AuthSessions must be manually recreated when they expire.
FAQs
What's the difference between Jobs and direct Run API calls?
What's the difference between Jobs and direct Run API calls?
Can I modify a Job's payload after creating it?
Can I modify a Job's payload after creating it?
How do I pass different parameters to the same API multiple times?
How do I pass different parameters to the same API multiple times?
api value but different
parameters. Each creates a separate Run.What happens if my API calls extendPayload multiple times?
What happens if my API calls extendPayload multiple times?
Can I use different AuthSessions for different APIs in the same Job?
Can I use different AuthSessions for different APIs in the same Job?
How does authentication work with nested scheduling?
How does authentication work with nested scheduling?
What happens if a scheduled Job triggers while a previous JobRun is still running?
What happens if a scheduled Job triggers while a previous JobRun is still running?