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
142 lines
6.1 KiB
Markdown
142 lines
6.1 KiB
Markdown
# Daily Workflow
|
|
|
|
This page describes how Peregrine fits into a typical active job search. The core loop is short: find jobs, triage them, generate and send applications, track what happens next.
|
|
|
|
---
|
|
|
|
## The Core Loop
|
|
|
|
```
|
|
Run Discovery → Review Jobs → Apply Workspace → Track in Interviews
|
|
```
|
|
|
|
Each stage feeds the next. You can run the full loop in under ten minutes on a good day, or spend longer editing cover letters and doing interview prep when you need to.
|
|
|
|
---
|
|
|
|
## Starting Your Day
|
|
|
|
### 1. Run Discovery
|
|
|
|
Open the **Home** page and click **Run Discovery**. Peregrine queries all your configured job boards simultaneously and stores results in the local database.
|
|
|
|
- Discovery runs one search profile at a time. Each profile produces results per board, then moves to the next.
|
|
- A summary at the end shows how many new jobs were found vs. already known.
|
|
- Jobs you have already seen (by URL) are skipped automatically.
|
|
|
|
If some jobs came back with short descriptions, click **Fill Missing Descriptions** to enrich them in the background while you work.
|
|
|
|
See [Job Discovery](job-discovery.md) for search profile configuration and board details.
|
|
|
|
---
|
|
|
|
### 2. Review the Queue
|
|
|
|
Navigate to **Job Review**. New jobs arrive with status `pending` and appear in the review queue.
|
|
|
|
For each job you can:
|
|
- **Approve** — sends it into the application pipeline
|
|
- **Reject** — archives it out of the queue
|
|
|
|
Sort by **Match Score** (high to low) to see the best keyword matches first. The match score compares the job description against your resume keywords — a rough signal, not a hard filter.
|
|
|
|
Jobs with incoming email leads (a recruiter contacted you about this role) sort to the top automatically.
|
|
|
|
See [Job Review](job-review.md) for sorting, keyword gaps, and bulk actions.
|
|
|
|
---
|
|
|
|
### 3. Write and Send Applications
|
|
|
|
Navigate to **Apply Workspace**. All approved jobs appear here.
|
|
|
|
For each job:
|
|
1. Click **Generate Cover Letter** — runs as a background task using your resume and career summary.
|
|
2. Read and edit the result. The generator uses your mission alignment notes when it detects company fit.
|
|
3. Click **Export PDF** to save a formatted PDF to your documents directory.
|
|
4. Apply externally (via the company site or board).
|
|
5. Click **Mark Applied** to move the job into the Interviews kanban.
|
|
|
|
See [Apply Workspace](apply-workspace.md) for cover letter configuration, PDF formatting, and ATS optimization.
|
|
|
|
---
|
|
|
|
### 4. Track Interviews
|
|
|
|
The **Interviews** page is a kanban board. Jobs move through stages as your search progresses:
|
|
|
|
```
|
|
applied → phone_screen → interviewing → offer → hired
|
|
```
|
|
|
|
When a job moves to **phone_screen**, Peregrine automatically kicks off a company research brief in the background — a one-page summary of the company, recent news, leadership, and accessibility signals.
|
|
|
|
Use **Interview Prep** to review talking points, practice Q&A, and get live reference cards during calls.
|
|
|
|
See [Interviews](interviews.md) for stage transitions, research briefs, and prep tools.
|
|
|
|
---
|
|
|
|
## Managing Your Resume
|
|
|
|
Peregrine has two resume views that work together:
|
|
|
|
### Resume Library (`/resumes`)
|
|
|
|
An archive of every resume version — uploaded originals, AI-optimised variants, and auto-backups. The starred entry is your **active default**.
|
|
|
|
- **Import** a PDF, DOCX, ODT, or plain text file to add a version to the library.
|
|
- **★ Set as Default** marks the entry as the active resume used for cover letter generation and keyword matching.
|
|
- **⇩ Apply to profile** pushes a library entry into the structured Resume Profile (see below), and links it so future profile edits sync back automatically.
|
|
|
|
### Resume Profile (`Settings → Resume Profile`)
|
|
|
|
A structured editor for personal details, work experience, education, and skills. This is the data the cover letter generator reads directly.
|
|
|
|
- When content was applied from the library, the view shows a sync status and date.
|
|
- Saving the Resume Profile automatically updates the linked library entry — keeping them in sync without manual effort.
|
|
- You can replace the current profile by uploading a new file directly from this view.
|
|
|
|
**Recommended flow:** upload to the library → set as default → "Apply to profile" → edit in Resume Profile as needed. Your library stays current automatically.
|
|
|
|
---
|
|
|
|
## Keeping Search Preferences Fresh
|
|
|
|
Go to **Settings → Search Prefs** to update what Peregrine searches for.
|
|
|
|
Key fields:
|
|
|
|
| Field | What it does |
|
|
|-------|-------------|
|
|
| Job Titles | The roles searched across all boards |
|
|
| Locations | Geographic scope (leave blank for unrestricted) |
|
|
| Remote only | Filter to remote positions only |
|
|
| Exclude Keywords | Drop any job title containing these words before it enters the database |
|
|
| Job Boards | Enable or disable specific sources |
|
|
| Blocklists | Companies, industries, or locations to always skip |
|
|
|
|
Click **Suggest** next to any field to get AI-generated suggestions based on your resume profile.
|
|
|
|
Changes take effect on the next discovery run — no restart needed.
|
|
|
|
---
|
|
|
|
## Weekly Habits
|
|
|
|
**Clean up the queue** — reject stale pending jobs at least once a week so the queue stays scannable.
|
|
|
|
**Update your search prefs** — if you are getting too many mismatches, add more terms to Exclude Keywords. If the queue is thin, broaden Locations or add boards.
|
|
|
|
**Check Interviews** — move any stalled jobs to the right stage so the kanban reflects reality. The research brief appears in Interview Prep once a job reaches `phone_screen`.
|
|
|
|
**Tune your resume keywords** — go to **Settings → Skills** if you want to add or reweight keywords used for match scoring.
|
|
|
|
---
|
|
|
|
## Tips
|
|
|
|
- **Match score is a triage signal, not a gate.** A score of 40 might be a perfect cultural fit that uses different terminology. Read the description.
|
|
- **Cover letters improve with context.** The richer your career summary and mission alignment notes (Settings → My Profile), the more specific and accurate the generated letters.
|
|
- **Company research auto-runs.** You do not need to request it manually — it starts the moment a job hits `phone_screen`.
|
|
- **Everything is local.** Your database, resume, and application history live in `data/staging.db` and `data/config/`. Back them up like any other important file.
|