feat: workplace filter, job dedup, company skip docs, deploy notes
- Add remote/orchestrator filter by workplace (remote, not remote, unknown) with URL param - Expose isRemote on job list API; canonicalize URLs and source_job_id dedup on import - Onboarding: optional VITE_SKIP_RXRESUME_ONBOARDING for RxResume-free onboarding - Scoring UI + docs for company skip list; pipeline-run dedup note - Vitest: TZ=UTC for stable time-based tests - DEPLOY_GITEA_VM_CRON_TELEGRAM.md for VM/cron/Telegram ops Made-with: Cursor
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
---
|
||||
id: company-skip-list
|
||||
title: Company skip list
|
||||
description: Block unwanted employers during discovery using blocked company keywords in Settings.
|
||||
sidebar_position: 6
|
||||
---
|
||||
|
||||
## What it is
|
||||
|
||||
The **company skip list** is the **Blocked company keywords** field in **Settings → Scoring Settings**. Any job whose **employer / company name** contains one of your tokens (case-insensitive substring match) is **dropped during discovery** and is never imported.
|
||||
|
||||
## Why it exists
|
||||
|
||||
You may want to avoid certain agencies, staffing brands, or employers without having to filter them out of every search manually.
|
||||
|
||||
## How to use it
|
||||
|
||||
1. Open **Settings** and expand **Scoring Settings**.
|
||||
2. Find **Company skip list (blocked keywords)**.
|
||||
3. Add tokens one at a time, or paste a comma- or newline-separated list.
|
||||
4. Click **Save Changes**.
|
||||
5. Run the pipeline again — blocked companies apply to **new discovery only**; they do not remove jobs already in the database.
|
||||
|
||||
### Tips
|
||||
|
||||
- Use substrings that reliably identify the employer on listings, for example `recruit`, `staffing`, or a distinctive part of a brand name.
|
||||
- Avoid overly short tokens that could match unrelated companies (for example a three-letter acronym shared by many firms).
|
||||
- The list is capped in Settings validation (max 200 entries, each up to 200 characters).
|
||||
- To block more precisely, prefer the exact spelling that appears on job posts you see in JobOps.
|
||||
|
||||
### Maintenance
|
||||
|
||||
- **Add** entries when you notice employers you never want to see again.
|
||||
- **Remove** entries if you blocked too much — save, then run discovery again.
|
||||
- **Review periodically** — staffing brand names change, and your targets may shift.
|
||||
- **Existing jobs** are unchanged; use the Jobs UI or **Danger Zone** in Settings if you need to clear old rows.
|
||||
|
||||
## Common problems
|
||||
|
||||
### Blocked companies still appear
|
||||
|
||||
- Confirm you clicked **Save Changes** after editing the list.
|
||||
- Remember: only **new** runs apply the filter. Old jobs stay until you delete or clear them.
|
||||
|
||||
### Too many jobs disappeared
|
||||
|
||||
- A token may be too broad. Remove or narrow it in Settings.
|
||||
|
||||
## Related pages
|
||||
|
||||
- [Settings](/docs/features/settings)
|
||||
- [Pipeline Run](/docs/features/pipeline-run)
|
||||
- [Orchestrator](/docs/features/orchestrator)
|
||||
@@ -96,6 +96,17 @@ Use it when you already have a specific job description or link and do not want
|
||||
|
||||
For accepted input formats, inference behavior, and limits, see [Manual Import Extractor](/docs/next/extractors/manual).
|
||||
|
||||
## Discovery deduplication
|
||||
|
||||
When new listings are imported, JobOps does not create a second database row if the job is already in your workspace (any status). Matching uses:
|
||||
|
||||
- a **canonical job URL** (normalizes `http`/`https`, `www`, trailing slashes, common tracking query params, and sorts remaining query keys)
|
||||
- the pair **`source` + `source_job_id`** when the extractor provides an external id
|
||||
|
||||
Existing jobs keep their stored URL; new imports use the canonical form so the same role is not added again under a slightly different link.
|
||||
|
||||
To drop companies before import, configure a **company skip list** (blocked company keywords) in **Settings → Scoring Settings**. See [Company skip list](/docs/features/company-skip-list).
|
||||
|
||||
## Common problems
|
||||
|
||||
### Start button stays disabled
|
||||
@@ -128,6 +139,7 @@ For accepted input formats, inference behavior, and limits, see [Manual Import E
|
||||
|
||||
## Related pages
|
||||
|
||||
- [Company skip list](/docs/features/company-skip-list)
|
||||
- [Find Jobs and Apply Workflow](/docs/next/workflows/find-jobs-and-apply-workflow)
|
||||
- [Manual Import Extractor](/docs/next/extractors/manual)
|
||||
- [Orchestrator](/docs/next/features/orchestrator)
|
||||
|
||||
@@ -169,7 +169,7 @@ Readiness requires:
|
||||
- Penalize missing salary data
|
||||
- Set penalty amount
|
||||
- Optional auto-skip threshold for low-score jobs
|
||||
- Block jobs from companies that match configured keyword tokens
|
||||
- **Company skip list** (blocked company keywords): drop listings during discovery when the employer name contains a token — see [Company skip list](/docs/features/company-skip-list)
|
||||
- Add custom scoring instructions to tell the AI what to weigh more or less
|
||||
|
||||
### Danger Zone
|
||||
@@ -261,6 +261,7 @@ curl -X POST "http://localhost:3001/api/backups"
|
||||
|
||||
## Related pages
|
||||
|
||||
- [Company skip list](/docs/features/company-skip-list)
|
||||
- [Reactive Resume](/docs/next/features/reactive-resume)
|
||||
- [Database Backups](/docs/next/getting-started/database-backups)
|
||||
- [Overview](/docs/next/features/overview)
|
||||
|
||||
Reference in New Issue
Block a user