docs: reconcile phase 6 status

This commit is contained in:
cesnimda
2026-07-30 22:42:49 +02:00
parent c08232b9d7
commit 7fab996407
+4 -4
View File
@@ -162,18 +162,18 @@ Goal: polish. This is the healthiest area — grounding in the structured profil
## Phase 6 — Job discovery ## Phase 6 — Job discovery
Goal: help users find opportunities. **Zero code exists.** Explicitly an enhancement — the guide: "Job discovery supports tracking. It does not replace job boards." Goal: help users find opportunities. **URL preview and bookmarklet/PWA capture are complete.** Explicitly an enhancement — the guide: "Job discovery supports tracking. It does not replace job boards."
**Order decided 2026-07-17:** (a) manual URL import → (b) browser extension → (c) official APIs where available. **Scraping is explicitly not the starting point.** This reorders the original plan: the extension now comes *before* a search backend. **Order decided 2026-07-17:** (a) manual URL import → (b) browser extension → (c) official APIs where available. **Scraping is explicitly not the starting point.** This reorders the original plan: the extension now comes *before* a search backend.
| # | Task | Priority | Difficulty | Dependencies | Expected value | | # | Task | Priority | Difficulty | Dependencies | Expected value |
|---|---|---|---|---|---| |---|---|---|---|---|---|
| 6.1 | **(a) Harden manual URL import** — `POST /jobimport/preview` is preview-only (a 27-line controller, no persistence, no import history, no dedup at import time). | **P2** | **M** | Phase 0 | Step (a) of the decided order and **already mostly built**. Cheapest discovery win; the wizard already calls it. | | 6.1 | **DONE (2026-07-30)** — manual URL import previews into the existing reviewed add-job flow, which persists through the normal create endpoint and warns on duplicate URLs. No second import-history store was added. | **P2** | **M** | Phase 0 | The existing flow delivers the discovery win without another persistence model. |
| 6.2 | **(b) Browser extension / bookmarklet capture** — reuse `jobimport/preview`; land captures in `Saved`. | **P2** | **L** | 6.1, 1.1 | Step (b). Teal/Huntr/Simplify all ship one; Jobjakt is server-side parse only. **Kills the single biggest friction (manual entry)** and needs no search backend. Start with a bookmarklet — a full Chrome-store extension is high maintenance. | | 6.2 | **DONE (2026-07-30)** bookmarklet/PWA share capture reuses `jobimport/preview` and opens the reviewed add-job flow in `Saved`. A store extension remains deliberately unnecessary. | **P2** | **L** | 6.1, 1.1 | Capture is available without Chrome-store maintenance. |
| 6.3 | **(c) Official job-board APIs where available** | **P3** | **L** | 6.2, 6.6 | Step (c). Legal and low-maintenance where an API exists. | | 6.3 | **(c) Official job-board APIs where available** | **P3** | **L** | 6.2, 6.6 | Step (c). Legal and low-maintenance where an API exists. |
| 6.4 | **Search UI + filters** (title, location, remote, industry) | **P3** | **M** | 6.3 | Only worth it once (c) supplies real data. | | 6.4 | **Search UI + filters** (title, location, remote, industry) | **P3** | **M** | 6.3 | Only worth it once (c) supplies real data. |
| 6.5 | **One-click import into tracker** | **P3** | **S** | 6.3 | Lands in `Saved` — which exists as of Phase 0. | | 6.5 | **One-click import into tracker** | **P3** | **S** | 6.3 | Lands in `Saved` — which exists as of Phase 0. |
| 6.6 | **Make market a data dimension, not an assumption** — Finn/NAV/Jobbnorge/LinkedIn are Norway-specific. **Decided: Norway first, but no hardcoding Norway.** | **P2** | **M** | none | `Job.CountryCode` and `Job.Source` already exist (added in Phase 0) — the entity is ready. The *plugins*, locale and currency handling still assume NO. Doing this before 6.3 stops each new market being a rewrite. | | 6.6 | **PARTIAL**`Job.CountryCode` and `Job.Source` exist, but the live `JobApplication` create flow does not yet dual-write `Job`, and import results do not carry market metadata. **Decided: Norway first, but no hardcoding Norway.** | **P2** | **M** | none | Complete this with the first official API so its provider market contract drives the write path. |
| 6.7 | **Explicitly out of scope: scraping.** | — | — | — | Recorded so it is not re-proposed. Also out: auto-apply bots (ToS/ethics/quality; contradicts "apply to more *suitable* jobs"). | | 6.7 | **Explicitly out of scope: scraping.** | — | — | — | Recorded so it is not re-proposed. Also out: auto-apply bots (ToS/ethics/quality; contradicts "apply to more *suitable* jobs"). |
--- ---