Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,12 @@

## [Unreleased]

## [0.5.0] — 2026-08-07

Scoring became CV-aware. A job's match score is now owned by the CV that produced
it, so changing your CV re-opens every cached job instead of silently reusing a
verdict reached for someone else's profile.

### New Features

- **`jobradar cache prune-scores`** (`cli.py` / `cache.py`)
Expand Down Expand Up @@ -30,6 +36,20 @@
- **Release highlights in Chinese, English and Spanish** (`docs/release-highlights.*.md` / `README*.md`)
The highlights document now follows the same `<name>.<lang>.md` convention as the READMEs, with a language switcher in each file. Each README gained a Performance section carrying the latest release's headline figures and linking to the highlights and to the `### Validation` entries behind them.

- **Release-highlights inclusion rule restated** (`docs/release-highlights.*.md`)
The rule read "from 0.5.0 onward each release is compared against the previous release", which said nothing about releases with nothing to compare. It now states that a release is listed when it changes performance or user-facing behavior, that the kind of change determines what is compared — measured figures for performance work, changed behavior for behavior work — and that a release altering neither is not listed.

### Validation

- **CV-aware scoring** — `f14e369` (0.4.0) → `b47dfc0`
- Held constant: the same local cache (293 jobs), the same CV (`eaf1b010`), `gemini-3.5-flash-lite`
- Jobs `assess` could reach: 0 → 205. Before, the command reported "all assessed" because every row carried a legacy assessment
- Cached jobs a CV change could never re-open: 95 → 0
- Jobs holding a match for the current CV: 93 → 293, by backfilling 200 (0 failures, 173 s, 5 workers)
- Scales feeding `effective_score`: 2 (legacy 0–10 alongside match 0–100) → 1
- Cache-hit classification, measured on five jobs a previous CV had rejected: passing the current `cv_hash` yields 0 skipped / 5 re-assessed, against 5 skipped / 0 re-assessed on the legacy path
- Verdict: correctness only. **No performance or cost improvement is claimed** — the release adds assessment work rather than removing it, since a cached job without a match for the current CV is now re-evaluated instead of reused. Expect a one-off cost increase on the first search after changing CV, and no change thereafter. Search latency was not measured and is not claimed either way.

## [0.4.0] — 2026-08-07

### New Features
Expand Down
3 changes: 2 additions & 1 deletion README.es.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,8 @@ Indeed 741 + LinkedIn 255 = 996 extraídos

## Rendimiento

Última versión, 0.4.0:
El trabajo de rendimiento más reciente es de 0.4.0. La versión actual, 0.5.0,
modificó el comportamiento y no el rendimiento, y no reclama cifras propias:

| Métrica | Antes | Después |
| --- | --- | --- |
Expand Down
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,8 @@ Indeed 741 + LinkedIn 255 = 996 scraped

## Performance

Latest release, 0.4.0:
Most recent performance work, 0.4.0. The current release, 0.5.0, changed
behavior rather than speed and claims no performance figures of its own:

| Metric | Before | After |
| --- | --- | --- |
Expand Down
2 changes: 1 addition & 1 deletion README.zh.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ Indeed 741 + LinkedIn 255 = 996 抓取

## 性能

最新版本 0.4.0:
最近一次性能改动来自 0.4.0。当前版本 0.5.0 改的是行为而非速度,不声称任何性能数字

| 指标 | 优化前 | 优化后 |
| --- | --- | --- |
Expand Down
Binary file added data/jobradar_cache.db.bak
Binary file not shown.
36 changes: 35 additions & 1 deletion docs/release-highlights.es.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,41 @@ Resumen orientado al usuario de lo que mejoró cada versión. Cada cifra debe po
rastrearse hasta una entrada `### Validation` en [CHANGELOG.md](../CHANGELOG.md);
este archivo nunca introduce una cifra propia.

A partir de 0.5.0, cada versión se compara con la versión anterior.
A partir de 0.5.0, una versión aparece aquí cuando modifica el rendimiento o el
comportamiento visible para el usuario, y se describe en comparación con la versión
anterior. Qué se compara depende del tipo de cambio: el trabajo de rendimiento se
compara con cifras medidas; el de comportamiento, con lo que la herramienta hace
ahora de forma distinta. Una versión que no altere ninguno de los dos no se lista.

## 0.5.0

Una versión de comportamiento, no de rendimiento. La puntuación pasó a depender del
CV, lo que cambia qué devuelve una búsqueda y cuánto cuesta. Las cifras proceden de
la entrada `### Validation` de `f14e369` → `b47dfc0`.

**Cambiar de CV vuelve a abrir todos los empleos en caché**
Hasta 0.4.0 la puntuación se guardaba sin registrar qué CV la produjo, así que un
empleo juzgado con un CV antiguo seguía juzgado. En una caché de 293 empleos, 95 que
un CV anterior había rechazado no podían reconsiderarse nunca; ahora son 0.

**`assess` dejó de informar de un trabajo que no hacía**
Filtraba por la columna heredada antes de consultar los resultados de coincidencia y,
como cada fila llevaba una puntuación heredada, anunciaba "todo evaluado" mientras 205
empleos carecían de puntuación para el CV actual. Empleos alcanzables: 0 → 205.

**Una sola escala de puntuación en lugar de dos**
Una puntuación heredada de 0–10 y una de coincidencia de 0–100 se devolvían por la
misma propiedad y se ordenaban entre sí. Escalas en `effective_score`: 2 → 1.

**Nuevo: `jobradar cache prune-scores`**
Elimina resultados de coincidencia de una versión de prompt obsoleta y, opcionalmente,
de un CV obsoleto, para que la siguiente búsqueda los recalcule.

**Nota sobre el coste**
Esta versión añade trabajo de evaluación en lugar de quitarlo. La primera búsqueda tras
cambiar de CV reevalúa los empleos en caché en vez de reutilizar el veredicto de otro CV;
las búsquedas posteriores no se ven afectadas. No se afirma ninguna mejora de latencia ni
de coste.

## 0.4.0

Expand Down
35 changes: 34 additions & 1 deletion docs/release-highlights.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,40 @@ User-facing summary of what each release improved. Every figure here must trace
back to a `### Validation` entry in [CHANGELOG.md](../CHANGELOG.md); this file
never introduces a number of its own.

From 0.5.0 onward each release is compared against the previous release.
From 0.5.0 onward, a release appears here when it changes performance or
user-facing behavior, and is described against the previous release. Which
kind of change it is determines what gets compared: performance work is
compared on measured figures, behavior work on what the tool now does
differently. A release that changes neither is not listed.

## 0.5.0

A behavior release, not a performance one. Scoring became CV-aware, which changes
what a search returns and what it costs. Figures below come from the
`### Validation` entry for `f14e369` → `b47dfc0`.

**Changing your CV now re-opens every cached job**
Until 0.4.0 a score was stored without recording which CV produced it, so a job
judged under an old CV stayed judged. On a 293-job cache, 95 jobs an earlier CV
had rejected could never be reconsidered — now 0.

**`assess` stopped reporting work it wasn't doing**
It selected on the legacy column before consulting match results, so with every
row carrying a legacy score it announced "all assessed" while 205 jobs had no
score for the current CV. Reachable jobs: 0 → 205.

**One scoring scale instead of two**
A legacy 0–10 score and a 0–100 match score were both returned by the same
property and sorted against each other. Scales feeding `effective_score`: 2 → 1.

**New: `jobradar cache prune-scores`**
Drops match results from an outdated prompt version, and optionally from an
outdated CV, so the next search recomputes them.

**Cost note**
This release adds assessment work rather than removing it. The first search after
changing CV re-evaluates cached jobs instead of reusing another CV's verdict;
later searches are unaffected. No latency or cost improvement is claimed.

## 0.4.0

Expand Down
28 changes: 27 additions & 1 deletion docs/release-highlights.zh.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,33 @@
面向使用者的版本优化摘要。这里的每个数字都必须能在 [CHANGELOG.md](../CHANGELOG.md)
的 `### Validation` 中找到出处;本文档不产生任何自己的数字。

从 0.5.0 起,每个版本对比上一个发布版本。
从 0.5.0 起,只要版本改变了性能或使用者能感知的行为,就在这里与上一个发布版本
对比说明。对比什么取决于改动的性质:性能改动比实测数字,行为改动比工具的实际
表现差异。两者都没有改变的版本不会出现在本文档中。

## 0.5.0

这是行为变更版本,不是性能版本。评分开始区分 CV 归属,因此搜索返回什么、花多少钱
都随之改变。下列数字出自 `f14e369` → `b47dfc0` 的 `### Validation` 条目。

**换 CV 后所有缓存职位重新参与评估**
0.4.0 之前,评分落库时不记录是哪份 CV 算的,于是被旧 CV 判定过的职位就一直维持
那个判定。293 条缓存中,有 95 条被旧 CV 拒绝的职位永远无法被重新考虑——现在为 0。

**`assess` 不再谎报自己已完成**
它先按 legacy 列筛选再查匹配结果,而每条记录都带着 legacy 评分,于是它宣称
"所有 JD 已有评估",实际有 205 条在当前 CV 下毫无评分。可捞出的职位:0 → 205。

**评分只剩一种分制**
legacy 的 0~10 分与 match 的 0~100 分曾由同一个属性返回,并在同一次排序里比大小。
参与 `effective_score` 的分制:2 → 1。

**新增 `jobradar cache prune-scores`**
删除过时 prompt 版本的匹配结果,也可一并删除旧 CV 的,让下次搜索按当前口径重算。

**成本说明**
本版本增加而非减少评估量。换 CV 后的第一次搜索会重新评估缓存职位,而不是复用另一份
CV 的判定;之后的搜索不受影响。本版本不声称任何延迟或成本改进。

## 0.4.0

Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "jobradar"
version = "0.4.0"
version = "0.5.0"
description = "Radar-scan the job market against your CV — auto-discover, scrape and LLM-assess matching roles"
license = {text = "BUSL-1.1"}
requires-python = ">=3.11"
Expand Down
2 changes: 1 addition & 1 deletion uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading