Sync Cycle
Every sync cycle:
- Fetch new/updated jobs since the last successful sync
- Apply filters (source, location, remote status, date range)
- Batch upsert into your destination (up to 10,000 per batch)
- Update cursor for the next cycle
Configuration
| Setting | Value |
|---|
| Minimum interval | 15 minutes |
| Maximum batch size | 10,000 records |
| Automatic retries | 4 (with exponential backoff) |
| Deduplication | Upsert by job ID |
Initial Sync (Full Backfill)
When you first activate a feed — or switch to a different destination — a full backfill is performed. All jobs matching your filters are pushed to the destination. This may take several minutes depending on the volume of matching jobs.
After the initial sync completes, all subsequent syncs are incremental: only new and updated records are pushed.
Deduplication
Jobs are deduplicated by their unique ID. If a job already exists in your destination, it is updated in place (upsert semantics). This means:
- No duplicate records are created
- Re-syncs are safe and idempotent
- Updated job fields (title, description, salary, etc.) are reflected automatically
Expired Jobs
Expired jobs are not automatically removed from your destination. The
outbound feed only pushes new and updated jobs — it does not delete.
To handle expirations, use the Expired Jobs API endpoint to get recently expired job IDs and remove them from your destination on your own schedule.
Retry Schedule
If a sync fails, Jobo automatically retries with exponential backoff:
| Attempt | Delay |
|---|
| 1st retry | 1 minute |
| 2nd retry | 5 minutes |
| 3rd retry | 15 minutes |
| 4th retry | 1 hour |
Failure Handling
If a sync fails after all 4 retries:
- The feed is paused automatically
- You’ll receive a notification in the dashboard
- The cursor is not advanced, so no data is lost
- Fix the issue and re-enable the feed to resume from where it left off
Sync status and history are available in the dashboard under Data → Outbound
Feed.