feat(jobs): suppress duplicate postings after skip or apply
CI / Linting (Biome) (push) Failing after 41s
CI / Tests (push) Successful in 5m25s
CI / Type Check (adzuna-extractor) (push) Successful in 1m8s
CI / Type Check (gradcracker-extractor) (push) Successful in 1m12s
CI / Type Check (hiringcafe-extractor) (push) Successful in 1m9s
CI / Type Check (orchestrator) (push) Successful in 1m25s
CI / Type Check (startupjobs-extractor) (push) Successful in 1m9s
CI / Type Check (ukvisajobs-extractor) (push) Successful in 1m9s
CI / Documentation (push) Failing after 1m56s

Dedup by employer+title and description at import; cascade skip on dismiss; hide repeats in the job list. Document product scope and duplicate detection in docs.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-05-16 18:50:11 -04:00
co-authored by Cursor
parent 5401f384c1
commit 17c4d4490a
15 changed files with 471 additions and 19 deletions
+5 -1
View File
@@ -15,6 +15,8 @@ Country tokens are normalized to canonical keys (for example `India` → `india`
Global and remote boards often return roles tagged to countries you do not want (for example India-remote QA listings while you target Canada). This filter applies at import time so those rows never enter your **Discovered** queue.
When **Search cities** (or pipeline geography) is a single country such as **Canada**, JobOps also enforces an **allow-list**: only jobs that clearly hire in that country are kept. Vague `Remote` / `Worldwide` rows with no Canada signal are dropped, as are rows that mention any other country.
## How to use it
1. Open **Settings** and expand **Scoring Settings**.
@@ -26,7 +28,8 @@ Global and remote boards often return roles tagged to countries you do not want
### Tips
- Use country names as they appear on listings: `India`, `Poland`, `United Kingdom`, or aliases `UK`, `USA`.
- Listings with **no recognizable country** in the location field (for example `Remote` only) are **kept**, not blocked.
- With **no** country-level search geography, listings whose location is only `Remote` / `Worldwide` with no blocked country in the text are **kept**.
- With search geography set to a country (for example `Canada`), vague remote rows with no signal for that country are **dropped** even if they are not on the blocked list.
- The list is capped in Settings validation (max 50 entries, each up to 100 characters).
- Pair with **Search cities** / **country** settings to narrow what extractors query; blocked countries filter what still comes back from broad boards.
@@ -50,6 +53,7 @@ Global and remote boards often return roles tagged to countries you do not want
## Related pages
- [Duplicate job detection](./duplicate-jobs)
- [Company skip list](./company-skip-list)
- [Settings](/docs/features/settings)
- [Pipeline Run](/docs/features/pipeline-run)