> ## Documentation Index
> Fetch the complete documentation index at: https://jobo.world/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Outbound Feed

> Push job data directly to your databases and search engines with automatic continuous sync.

## Overview

The Outbound Feed pushes job data directly to your own infrastructure — databases, search engines, and data warehouses. Configure a destination, activate it, and Jobo will continuously sync job listings with incremental updates every 15 minutes.

Unlike one-time [data exports](/data-platform/export), the outbound feed is a **continuous pipeline** that keeps your data in sync automatically.

<div
  style={{
display: "flex",
gap: "8px",
flexWrap: "wrap",
marginBottom: "16px",
}}
>
  <Tooltip tip="Data is pushed every 15 minutes">
    <span>🔄 **15 min sync**</span>
  </Tooltip>

  <Tooltip tip="Only new and updated records are synced each cycle">
    <span>⚡ **Incremental**</span>
  </Tooltip>

  <Tooltip tip="AES-256 at rest, TLS 1.3 in transit">
    <span>🔒 **Encrypted**</span>
  </Tooltip>

  <Tooltip tip="Exponential backoff with up to 4 retries">
    <span>✅ **Auto-retry**</span>
  </Tooltip>
</div>

<Note>
  **Subscription Required** — Activating an outbound feed requires an active
  **Jobs Data** subscription. You can configure and save destinations without a
  subscription.
</Note>

***

## Supported Destinations

<CardGroup cols={3}>
  <Card title="PostgreSQL" icon="database" href="/data-platform/outbound-feed/postgresql">
    Structured relational tables with full SQL support
  </Card>

  <Card title="MongoDB" icon="leaf" href="/data-platform/outbound-feed/mongodb">
    Flexible document store for rich JSON data
  </Card>

  <Card title="Elasticsearch" icon="magnifying-glass" href="/data-platform/outbound-feed/elasticsearch">
    Full-text search and analytics engine
  </Card>

  <Card title="Algolia" icon="bolt" href="/data-platform/outbound-feed/algolia">
    Search-as-a-service with instant results
  </Card>

  <Card title="Meilisearch" icon="searchengin" href="/data-platform/outbound-feed/meilisearch">
    Lightning-fast open-source search
  </Card>
</CardGroup>

<Info>
  Don't see your destination? [Request
  one](https://wa.me/27715111705?text=Hi%2C%20I%27m%20interested%20in%20a%20custom%20outbound%20feed%20destination)
  and we'll prioritize it.
</Info>

***

## How It Works

<Steps>
  <Step title="Choose a destination">
    Pick where you want your job data delivered — a database, search engine, or
    data warehouse.
  </Step>

  <Step title="Configure & save">
    Provide connection credentials and optional data filters (location, source,
    remote status). Your configuration is saved and can be edited anytime.
  </Step>

  <Step title="Activate & sync">
    Activate the feed to start pushing data. Only **one feed can be active** at
    a time. Jobo handles scheduling, retries, and deduplication automatically.
  </Step>
</Steps>

<Warning>
  **One Active Feed** — You can save multiple destination configurations, but
  only one can be active at a time. Switching the active feed is instant — just
  activate a different saved configuration.
</Warning>

***

## Data Filtering

Each saved configuration can include optional filters to narrow down which jobs are pushed to your destination.

| Filter         | Type       | Description                                                                                                                                                           |
| -------------- | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `locations`    | `object[]` | Filter by location. Each object can have `country`, `region`, and `city`. Multiple locations use **OR** matching — a job matches if it matches any provided location. |
| `sources`      | `string[]` | Filter by ATS source (e.g., `greenhouse`, `lever`, `workday`, `smartrecruiters`). All sources included by default. Multiple values use **OR** matching.               |
| `is_remote`    | `boolean`  | `true` = remote only, `false` = on-site only, `null` = all jobs.                                                                                                      |
| `posted_after` | `date`     | Only sync jobs posted after this date (UTC).                                                                                                                          |

**Example filter configuration:**

```json theme={null}
{
  "locations": [
    { "country": "US", "region": "California" },
    { "country": "GB", "city": "London" }
  ],
  "sources": ["greenhouse", "lever"],
  "is_remote": true,
  "posted_after": "2025-01-01"
}
```

***

## Export vs Outbound Feed

|                           | Export                     | Outbound Feed                         |
| ------------------------- | -------------------------- | ------------------------------------- |
| **Type**                  | One-time download          | Continuous pipeline                   |
| **Formats**               | CSV, JSON, Parquet         | Direct to your database/search engine |
| **Frequency**             | On-demand                  | Every 15 minutes (automatic)          |
| **Use case**              | Ad-hoc analysis, reporting | Production integrations, live search  |
| **Incremental**           | No (full snapshot)         | Yes (only new/updated records)        |
| **Destination**           | Downloaded file            | Your infrastructure                   |
| **Requires subscription** | Yes                        | Yes                                   |

***

## Limits & Quotas

| Feature              | Limit                   |
| -------------------- | ----------------------- |
| Active feeds         | 1 per account           |
| Saved configurations | Unlimited               |
| Max batch size       | 10,000 records per sync |
| Sync frequency       | Every 15 minutes        |
| Retry attempts       | 4 (exponential backoff) |

***

## FAQ

<AccordionGroup>
  <Accordion title="Can I have multiple active feeds?">
    Currently, only one feed can be active at a time. You can save multiple
    configurations and switch between them instantly.
  </Accordion>

  <Accordion title="What happens when I switch destinations?">
    The previous feed is deactivated and the new one is activated. The new
    destination receives a **full backfill** on first sync. Data in the previous
    destination is not deleted.
  </Accordion>

  <Accordion title="Are expired jobs removed from my destination?">
    No. The outbound feed only pushes new and updated jobs. To handle
    expirations, use the [Expired Jobs
    API](/api-reference/feed/expired-jobs) endpoint to get recently
    expired job IDs and remove them from your destination.
  </Accordion>

  <Accordion title="How do I test my connection before activating?">
    When you save a configuration, the connection is validated automatically. If
    the connection fails, you'll see an error message with details. You can save
    without activating to test later.
  </Accordion>

  <Accordion title="What's the difference between Outbound Feed and Export?">
    **Export** is a one-time download of job data in CSV, JSON, or Parquet
    format. **Outbound Feed** is a continuous pipeline that keeps your
    destination in sync automatically every 15 minutes. Use Export for ad-hoc
    analysis; use Outbound Feed for production integrations.
  </Accordion>
</AccordionGroup>
