Skip to content

Redesign job search relevance and recall - #80

Merged
emnl51 merged 1 commit into
mainfrom
codex/search-matching-relevance-v2
Sep 3, 2026
Merged

emnl51 merged 1 commit into
mainfrom
codex/search-matching-relevance-v2

Conversation

@emnl51

@emnl51 emnl51 commented Sep 3, 2026

Copy link
Copy Markdown
Owner

Summary

Redesigns vacancy discovery and matching around a role-first pipeline so soft signals can no longer make an unrelated occupation look relevant, while broader provider queries recover role matches that schedule-qualified searches previously missed.

  • balance the first provider queries across requested role families, remove location/working-time constraints from base discovery, and add English/German variants before schedule-specific variants
  • add a structural role-relevance gate with high-signal industrial aliases for quality, process, production planning, manufacturing, and paint/coating roles
  • keep Job Fit, Language Fit, working-time fit, and CV evidence as independent decisions and persist strong, match, stretch, or excluded tiers
  • add per-Search Job working-time modes: preference mode keeps relevant constrained roles visible; strict mode excludes them from that search's queue and notifications
  • defer the hard CV threshold when a provider only supplies a short snippet, instead of rejecting a relevant title for missing evidence
  • run independent sources concurrently and isolate JobSpy boards so a slow source cannot starve the rest
  • migrate legacy profile scores through the new role gate and expose tier filtering in Job Review
  • update the English/Turkish UI text, README, and changelog

Relevance evidence

  • the public JobSpy noise sample captured during analysis contains 13 unrelated results (Android/software/cloud/DevOps/construction/project/product/electronics roles); all 13 are rejected by the role gate fixture
  • manually found Hach Quality Engineer and ASML Process Engineer – Cleaning & Etching examples remain direct, high-fit matches
  • repeated aliases for one role no longer consume the complete provider cap: a four-family profile gets quality, process, production-planning, and paint/coating base queries in its first four slots
  • arbitrary user-defined roles still work through direct title evidence, including roles outside the built-in industrial families

Validation

  • python -m pytest --cov --cov-report=term-missing -q: 234 passed, 72.55% coverage
  • ruff check app tests: passed
  • ruff format --check app tests: passed
  • python -m compileall -q app tests: passed
  • node --check app/*.js: passed
  • git diff --check: passed

The two pytest warnings are existing Starlette/httpx and AnyIO deprecation warnings.

Deployment notes

The schema migration is automatic. After deployment, run each Search Job once to refresh source data and populate the new tiers. For four role families, six provider queries cover all base roles plus two translated variants; use eight where provider capacity permits for complete English/German coverage.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@emnl51
emnl51 merged commit dffcc71 into main Sep 3, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant