62 Commits

Author SHA1 Message Date
Antoine
a998f1d968 fix: relax Apec normalization failures 2026-06-03 22:24:11 +02:00
Antoine
40b3619578 fix: harden Apec search and run ids 2026-06-03 22:09:45 +02:00
Antoine
cdae23e303 fix: distinguish Apec search failures from empty results 2026-06-03 21:46:48 +02:00
Antoine
3768bf9b3c fix: derive Apec filters from profile constraints 2026-06-03 21:11:52 +02:00
Antoine
207d5c51c3 fix: relax Apec input and write flow 2026-06-03 20:53:47 +02:00
Antoine
352dfcd6ce fix: harden Apec crawl edge cases 2026-06-03 20:41:23 +02:00
Antoine
31c0488f60 fix: preserve Apec run metadata 2026-06-03 20:04:59 +02:00
Antoine
86b5cf2d7b fix: apply Apec source filters and profile errors 2026-06-03 19:37:35 +02:00
Antoine
450134c808 fix: preserve Apec artifacts on normalization failure 2026-06-03 19:23:35 +02:00
Antoine
ce73787f39 fix: preserve Apec run metadata on snapshot failures 2026-06-02 21:14:40 +02:00
Antoine
c28f804e23 fix: harden Apec readiness and snapshot writes 2026-06-02 20:55:17 +02:00
Antoine
47f912ce8c fix: align Apec live detail shape 2026-06-02 20:40:19 +02:00
Antoine
ac1e0fb269 fix: tighten Apec description extraction 2026-06-02 20:25:27 +02:00
Antoine
c2ca1f457e fix: align Apec live selectors 2026-06-02 20:06:08 +02:00
Antoine
1c267520f0 fix: harden Apec live ingestion 2026-06-02 19:47:30 +02:00
Antoine
2da39613c7 fix: make Apec adapter real 2026-06-02 19:23:14 +02:00
Antoine
52b21b65c5 fix: hard-fail fetch-apec contract gaps 2026-06-02 18:59:14 +02:00
Antoine
97ed98c5de feat: add fetch-apec command 2026-06-02 18:47:40 +02:00
Antoine
47619abc08 feat: add Apec adapter scaffold 2026-06-01 14:30:34 +02:00
Antoine
5fefa3aab1 fix: keep earliest Apec bridge survivor 2026-06-01 14:22:15 +02:00
Antoine
debaab0947 fix: reassign Apec alias chains 2026-06-01 14:07:26 +02:00
Antoine
96b4cd37ec fix: merge Apec duplicate metadata 2026-06-01 13:54:22 +02:00
Antoine
96a7dcbe94 fix: preserve identifiers in Apec dedupe 2026-06-01 13:38:57 +02:00
Antoine
95b17a7c50 fix: preserve Apec listing metadata 2026-06-01 13:30:33 +02:00
Antoine
00f3717995 fix: dedupe mixed-key Apec listings 2026-06-01 13:22:53 +02:00
Antoine
96e2a7b178 fix: dedupe Apec listings by source job id 2026-06-01 13:13:24 +02:00
Antoine
e86257cbcc feat: add Apec normalization and dedupe 2026-06-01 13:06:37 +02:00
Antoine
ac78bee74b feat: add deterministic Apec query derivation 2026-06-01 12:57:52 +02:00
Antoine
4d57af0b86 feat: add Apec run artifact paths 2026-06-01 12:51:07 +02:00
Antoine
2765add571 feat: add Apec listing artifact models 2026-06-01 12:43:50 +02:00
Antoine
80f308356a chore: add Apec ingestion dependencies 2026-06-01 12:36:37 +02:00
Antoine
cfbd1943ec docs: add Apec ingestion plan 2026-06-01 12:33:16 +02:00
Antoine
ad36de0a3f docs: add Apec ingestion design 2026-06-01 12:12:06 +02:00
Antoine
fb150dbe69 Merge branch 'feature/candidate-profile-ingestion' 2026-05-29 10:16:17 +02:00
Antoine
0f6e641a99 fix: fail on empty cv text and strengthen warnings 2026-05-28 19:11:27 +02:00
Antoine
c4b9fc13ce feat: complete simplified candidate profile ingestion slice 2026-05-28 18:58:49 +02:00
Antoine
8d232060a0 fix: make build-profile output message neutral 2026-05-28 18:32:42 +02:00
Antoine
d27c58014d feat: add one-command candidate profile build flow 2026-05-28 18:26:09 +02:00
Antoine
1879de68a8 fix: extract years of experience and accept French notes 2026-05-28 18:18:02 +02:00
Antoine
3c331ef687 feat: add canonical profile merger with warnings 2026-05-28 18:07:51 +02:00
Antoine
042feab4fd fix: relax cv experience parsing
Reject narrative verb-led bullets, allow short tech titles, and switch company prose checks to phrase-level matching so real employers like Made in Design are preserved.
2026-05-28 17:39:09 +02:00
Antoine
49cc4a9959 fix: relax cv title parsing
Allow lowercase, mixed-case, and numeric experience titles while rejecting label-like lines without colons via a small blocked-label set.
2026-05-28 17:28:16 +02:00
Antoine
19a1731349 fix: broaden cv parsing for french labels
Recognize French section labels, allow clear title connector company lines across French and English forms, and keep prose fragments out of experience parsing.
2026-05-28 17:18:46 +02:00
Antoine
77d2f0f5c6 fix: tighten french cv heuristics
Reject au sein prose continuations and recognize dotted MSc/BSc degree variants in education parsing.
2026-05-28 17:05:17 +02:00
Antoine
a4c1ff3c0b fix: broaden cv heuristics for french cvs
Handle French experience connectors, common degree forms, and en/em dash bullets while keeping the extraction deterministic and narrow.
2026-05-28 16:56:31 +02:00
Antoine
0eac9856da fix: parse cv bullets and education entries
Normalize leading bullet markers before parsing and extract simple education entries from heading-led or keyword-plus-institution lines.
2026-05-28 16:43:11 +02:00
Antoine
fe201831ba fix: tighten cv prose-tail rejection
Reject experience-like lines when the company side continues with prose, including in-Paris and before-moving patterns, while preserving valid single-word titles and lowercase company names.
2026-05-28 16:31:36 +02:00
Antoine
c57d9b0275 fix: relax cv experience line heuristics
Allow single-word titles and lowercase company names while rejecting prose fragments that continue after the company name.
2026-05-28 16:24:23 +02:00
Antoine
544b5892fa fix: tighten cv extraction heuristics 2026-05-28 14:34:37 +02:00
Antoine
df140c3c77 feat: add deterministic CV extraction 2026-05-28 14:23:05 +02:00