> ## 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.

# PostgreSQL

> Sync job data into PostgreSQL tables with full SQL query support.

## Connection Configuration

| Field      | Type   | Required | Description                                                                             |
| ---------- | ------ | -------- | --------------------------------------------------------------------------------------- |
| `host`     | string | ✅        | Database server hostname or IP address                                                  |
| `port`     | number | ✅        | Database port (default: 5432)                                                           |
| `database` | string | ✅        | Database name                                                                           |
| `schema`   | string | —        | Schema name (default: `public`)                                                         |
| `username` | string | ✅        | Database username                                                                       |
| `password` | string | ✅        | Database password                                                                       |
| `ssl_mode` | enum   | —        | SSL mode: `disable`, `allow`, `prefer` (default), `require`, `verify-ca`, `verify-full` |

## Example Configuration

```json theme={null}
{
  "host": "db.example.com",
  "port": 5432,
  "database": "jobs_db",
  "schema": "public",
  "username": "jobo_feed",
  "password": "••••••••",
  "ssl_mode": "require"
}
```

## Setup Requirements

<Steps>
  <Step title="Create a dedicated database user">
    Create a user with only `CREATE TABLE`, `INSERT`, and `UPDATE` permissions
    on the target schema. Never use a superuser account. `sql CREATE USER
            jobo_feed WITH PASSWORD 'your_secure_password'; GRANT CONNECT ON DATABASE
            jobs_db TO jobo_feed; GRANT USAGE, CREATE ON SCHEMA public TO jobo_feed;
            GRANT INSERT, UPDATE ON ALL TABLES IN SCHEMA public TO jobo_feed; ALTER
            DEFAULT PRIVILEGES IN SCHEMA public GRANT INSERT, UPDATE ON TABLES TO
            jobo_feed; `
  </Step>

  <Step title="Allow network access">
    Ensure your server allows connections from Jobo's IP addresses. Contact
    support for the current IP range to whitelist.
  </Step>

  <Step title="Enable SSL">
    Use `ssl_mode: require` or higher for production environments. This ensures
    all data in transit is encrypted.
  </Step>
</Steps>

<Warning>
  Your PostgreSQL server must be accessible from the internet or whitelisted for
  Jobo's IP range. Contact support for IP details.
</Warning>

<Tip>
  The target table is created automatically on first sync if it doesn't exist.
  Jobo uses upsert semantics (INSERT ON CONFLICT UPDATE) to deduplicate by job
  ID.
</Tip>
