peregrine/docs/user-guide/settings.md
pyr0ball 82c26074d8 fix: search prefs wizard data loss, resume sync link, docs + GUI help links
Bug fixes (filed as #125–#128):
- Wizard step 7 read data.titles instead of data.search.titles — user-entered
  job titles and locations were silently dropped on every wizard run (#125)
- GET /api/settings/search returned "titles" key but store expected "job_titles" —
  Settings → Search Prefs always showed empty even when data existed (#126)
- remote_only preference not persisted during wizard setup (#127)
- apply-to-profile didn't set default_resume_id in user.yaml, so future
  Resume Profile saves never synced back to the library entry (#128)

Also:
- Wizard step headings corrected (off-by-one after Training step was inserted)
- Ollama host in wizard inference step now reads from saved wizard state
- Resume upload during wizard now creates a library entry and sets it as default

Docs:
- New: docs/user-guide/daily-workflow.md — end-to-end daily usage guide
- Updated: docs/user-guide/settings.md — rewritten for Vue SPA (was Streamlit)
- mkdocs.yml nav: Daily Workflow added as first User Guide entry

GUI help links:
- web/src/composables/useDocsUrl.ts — shared docs base URL composable
- Home: "Daily Workflow guide ↗" link in subtitle
- Job Review: "? Docs" link in title row
- Resume Library: "? Help" link in header
- Settings → Resume Profile: "? Help" link in page header
- Settings → Search Prefs: "? Help" link in page header
2026-06-15 16:52:56 -07:00

188 lines
6.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Settings
Access Settings from the sidebar. The page has a navigation panel on the left (desktop) or a chip bar at the top (mobile). Each section is described below.
For an overview of how settings fit into your daily use, see [Daily Workflow](daily-workflow.md).
---
## My Profile
Personal information used in cover letters, research briefs, and interview prep.
| Field | Description |
|-------|-------------|
| Full name | Your name as it appears in generated documents |
| Email | Contact email |
| Phone | Contact phone number |
| LinkedIn URL | Used in cover letter headers |
| Career summary | 24 sentences that anchor all LLM-generated content |
### Mission Preferences
Optional notes about industries you genuinely care about. When the cover letter generator detects alignment with one of these industries, it injects your note into the generated letter.
| Field | Tag |
|-------|-----|
| Music industry note | `music` |
| Animal welfare note | `animal_welfare` |
| Education note | `education` |
Leave a field blank to use a generic default when alignment is detected.
### Research Brief Preferences
Controls optional sections in company research briefs. Both are for personal decision-making only and never appear in applications.
| Setting | Section added to brief |
|---------|----------------------|
| Accessibility focus | Disability inclusion signals (ADA, ERGs, WCAG) |
| LGBTQIA+ focus | Inclusion signals (ERGs, non-discrimination policies) |
---
## Resume Profile
A structured editor for your work experience, education, skills, and personal details. This is the primary data source for cover letter generation.
### Resume vs. Library
The Resume Profile is backed by a structured YAML file (`plain_text_resume.yaml`). The **Resume Library** (`/resumes`, accessible from the sidebar) is a versioned archive of full resume texts. They stay in sync automatically when you use the "Apply to profile" flow — see [Daily Workflow — Managing Your Resume](daily-workflow.md#managing-your-resume).
### Uploading a resume
If no profile exists yet, you can:
- **Upload & Parse** — upload a PDF, DOCX, or ODT. Peregrine extracts structured data automatically.
- **Fill in Manually** — start from a blank form.
- **Run Setup Wizard** — re-enter the first-run wizard (self-hosted only).
### Editing the profile
When a resume exists, the full form is shown. Sections:
- **Career Summary** — used in every cover letter and research brief
- **Personal Information** — name, email, phone, LinkedIn; synced from My Profile
- **Work Experience** — title, company, period, location, industry, responsibilities, skills
- **Education** — institution, degree, field, dates
- **Skills, Domains, Keywords** — tags used for keyword matching; click **Suggest** for AI recommendations
- **Certifications and Achievements** — optional; included in cover letter context
Click **Save** to write changes. If a default library entry is linked, it updates automatically.
---
## Search Prefs
Manage what Peregrine searches for across all job boards. Changes take effect on the next discovery run — no restart needed.
| Field | Description |
|-------|-------------|
| Remote preference | Remote only, on-site only, or both |
| Job Titles | Roles searched on every board |
| Locations | Geographic scope; leave blank for unrestricted |
| Exclude Keywords | Drop any job title containing these words before it enters the database |
| Job Boards | Enable or disable specific sources; boards marked "coming soon" are tracked in the backlog |
| Custom Board URLs | Additional job board URLs to include |
| Blocklists | Companies, industries, or locations to always skip |
Click **Suggest** next to Job Titles, Locations, or Exclude Keywords to get AI-generated suggestions based on your resume.
---
## Connections
API credentials and authentication for external services.
| Service | What it enables |
|---------|----------------|
| Notion | Sync approved/applied jobs to a Notion database |
| Airtable | Alternative sync target |
| Google Drive | Document export |
| Slack / Discord | Status notifications |
| Google Calendar / Apple Calendar | Interview scheduling (Paid) |
See [Integrations](integrations.md) for per-service setup instructions.
---
## System
*Not available in cloud mode.*
LLM backend configuration and service connection settings.
### LLM Backends
| Setting | Description |
|---------|-------------|
| Enabled toggle | Whether a backend is considered in the fallback chain |
| Base URL | API endpoint for OpenAI-compatible backends |
| Model | Model name or `__auto__` (vLLM auto-detects the loaded model) |
| API key | Required for hosted APIs |
| Test button | Sends a ping to verify the backend is reachable |
Three independent fallback chains:
| Chain | Used for |
|-------|---------|
| Cover letter chain | Cover letter generation and general tasks |
| Research chain | Company research briefs |
| Vision chain | Survey screenshot analysis |
### Service Hosts and Ports
Connection settings for Ollama, vLLM, and SearXNG. Each service has an SSL toggle and SSL-verify toggle for reverse-proxy setups.
---
## Fine-Tune
*Tier: Premium only.*
Tools for fine-tuning a cover letter model on your personal writing style.
1. **Export Training Data** — produces a JSONL file from your saved cover letters
2. **Configure training** — rank, epochs, learning rate
3. **Start fine-tune** — runs via the `ogma` conda environment with Unsloth
4. **Register model** — adds the output to Ollama as `alex-cover-writer:latest`
---
## License
View your current license key, tier, and entitlements. Paste a new key here if you are upgrading or replacing a key.
---
## Data
*Not available in cloud mode.*
Export or delete your local data.
| Action | What it does |
|--------|-------------|
| Export | Downloads `staging.db` and config files as a zip |
| Purge pending jobs | Deletes all jobs with status `pending` |
| Purge rejected jobs | Deletes all jobs with status `rejected` |
| Factory reset | Removes all data and config; returns to first-run wizard |
---
## Privacy
Controls for data collection and diagnostic logging. All collection is opt-in.
---
## Developer
Developer and debugging tools. Only visible when dev mode is enabled or a `dev_tier_override` is set.
| Option | Description |
|--------|-------------|
| Reset wizard | Sets `wizard_complete: false`; wizard restarts on next page load |
| Dev tier override | Set tier to `paid` or `premium` to test tier-gated features locally |
| Clear stuck tasks | Manually fails any `running` or `queued` background tasks |
| View raw config | Shows current `user.yaml` contents |