peregrine/docs/user-guide/integrations.md
pyr0ball e6410498af docs: mkdocs wiki — installation, user guide, developer guide, reference
Adds a full MkDocs documentation site under docs/ with Material theme.

Getting Started: installation walkthrough, 7-step first-run wizard guide,
Docker Compose profile reference with GPU memory guidance and preflight.py
description.

User Guide: job discovery (search profiles, custom boards, enrichment),
job review (sorting, match scores, batch actions), apply workspace (cover
letter gen, PDF export, mark applied), interviews (kanban stages, company
research auto-trigger, survey assistant), email sync (IMAP, Gmail App
Password, classification labels, stage auto-updates), integrations (all 13
drivers with tier requirements), settings (every tab documented).

Developer Guide: contributing (dev env setup, code style, branch naming, PR
checklist), architecture (ASCII layer diagram, design decisions), adding
scrapers (full scrape() interface, registration, search profile config,
test patterns), adding integrations (IntegrationBase full interface, auto-
discovery, tier gating, test patterns), testing (patterns, fixtures, what
not to test).

Reference: tier system (full FEATURES table, can_use/tier_label API, dev
override, adding gates), LLM router (backend types, complete() signature,
fallback chains, vision routing, __auto__ resolution, adding backends),
config files (every file with field-level docs and gitignore status).

Also adds CONTRIBUTING.md at repo root pointing to the docs site.
2026-02-25 12:05:49 -08:00

147 lines
3.6 KiB
Markdown

# Integrations
Peregrine supports 13 optional integration connectors for job tracking, document storage, calendar sync, and notifications. Configure them in **Settings → Integrations** or during the first-run wizard (Step 7).
All integration credentials are stored in `config/integrations/<name>.yaml` (gitignored — never committed).
---
## Job Tracking
### Notion
**Tier:** Paid
Syncs approved and applied jobs to a Notion database. Peregrine creates or updates a Notion page per job with status, salary, company, URL, and cover letter text.
Required credentials: Notion integration token and database ID.
Configure in `config/integrations/notion.yaml`.
### Airtable
**Tier:** Paid
Syncs the job pipeline to an Airtable base. Each job maps to a row in your configured table.
Required credentials: Airtable personal access token, base ID, and table name.
### Google Sheets
**Tier:** Paid
Appends job data to a Google Sheet. Useful for sharing pipeline data or building custom dashboards.
Required credentials: Google service account JSON key file, spreadsheet ID, and sheet name.
---
## Document Storage
### Google Drive
**Tier:** Free
Uploads generated cover letters and exported PDFs to a Google Drive folder automatically when you export from the Apply Workspace.
Required credentials: Google service account JSON key file and target folder ID.
### Dropbox
**Tier:** Free
Uploads cover letters and PDFs to a Dropbox folder.
Required credentials: Dropbox access token and target folder path.
### OneDrive
**Tier:** Free
Uploads cover letters and PDFs to a OneDrive folder via the Microsoft Graph API.
Required credentials: Microsoft OAuth client ID, client secret, tenant ID, and target folder path.
### MEGA
**Tier:** Free
Uploads documents to MEGA cloud storage.
Required credentials: MEGA account email and password, target folder path.
### Nextcloud
**Tier:** Free
Uploads documents to a self-hosted Nextcloud instance via WebDAV.
Required credentials: Nextcloud server URL, username, password, and target folder path.
---
## Calendar
### Google Calendar
**Tier:** Paid
Creates calendar events for scheduled interviews. When you set an `interview_date` on a job in the kanban, Peregrine creates a Google Calendar event with a reminder.
Required credentials: Google service account JSON key file and calendar ID.
### Apple Calendar (CalDAV)
**Tier:** Paid
Creates calendar events on an Apple Calendar or any CalDAV-compatible server.
Required credentials: CalDAV server URL, username, and password. For iCloud, use an app-specific password.
---
## Notifications
### Slack
**Tier:** Paid
Sends notifications to a Slack channel for key pipeline events: new high-match jobs discovered, stage changes, and research completion.
Required credentials: Slack incoming webhook URL.
### Discord
**Tier:** Free
Sends notifications to a Discord channel via a webhook. Same events as Slack.
Required credentials: Discord webhook URL.
### Home Assistant
**Tier:** Free
Sends pipeline events to Home Assistant via the REST API. Useful for smart home dashboards or custom automation triggers.
Required credentials: Home Assistant base URL and long-lived access token.
---
## Integration Status
The Settings → Integrations tab shows the connection status of each integration:
| Status | Meaning |
|--------|---------|
| Connected | Credentials file exists and last test passed |
| Not configured | No credentials file found |
| Error | Credentials file exists but last test failed |
Click **Test** to re-verify the connection at any time.
---
## Adding a Custom Integration
See [Adding an Integration](../developer-guide/adding-integrations.md) in the developer guide.