peregrine/scripts
pyr0ball 4e11cf3cfa fix: sanitize invalid JSON escape sequences from LLM output in resume optimizer
LLMs occasionally emit backslash sequences that are valid regex but not valid
JSON (e.g. \s, \d, \p). This caused extract_jd_signals() to fall through to
the exception handler, leaving llm_signals empty. With no LLM signals, the
optimizer fell back to TF-IDF only — which is more conservative and can
legitimately return zero gaps, making the UI appear to say the resume is fine.

Fix: strip bare backslashes not followed by a recognised JSON escape character
("  \  /  b  f  n  r  t  u) before parsing. Preserves \n, \", etc.

Reproduces: cover letter generation concurrent with gap analysis raises the
probability of a slightly malformed LLM response due to model load.
2026-04-16 11:11:50 -07:00
..
classifier_service feat: add job-seeker-classifiers conda env for HF classifier benchmark 2026-02-26 23:43:41 -08:00
custom_boards fix(discovery): per-user config dir in cloud mode; normalize job_titles key 2026-04-01 19:37:29 -07:00
integrations feat: push interview events to connected calendar integrations (#19) 2026-03-16 21:31:22 -07:00
vision_service feat: add vision service to compose stack and fine-tune wizard tab to Settings 2026-02-24 19:37:55 -08:00
__init__.py chore: seed Peregrine from personal job-seeker (pre-generalization) 2026-02-24 18:25:39 -08:00
backup.py feat(cloud): fix backup/restore for cloud mode — SQLCipher encrypt/decrypt 2026-03-09 22:41:44 -07:00
benchmark_classifier.py feat: benchmark_classifier — MODEL_REGISTRY, --list-models, --score, --compare modes 2026-02-27 06:19:32 -08:00
byok_guard.py test: add missing base_url edge case + clarify 0.0.0.0 marker intent 2026-03-06 14:43:45 -08:00
calendar_push.py feat: push interview events to connected calendar integrations (#19) 2026-03-16 21:31:22 -07:00
classifier_adapters.py fix: RerankerAdapter falls back to label name when no LABEL_DESCRIPTIONS entry 2026-02-27 14:54:31 -08:00
company_research.py feat: Interview prep Q&A, cf-orch hardware profile, a11y fixes, dark theme 2026-04-14 17:01:18 -07:00
credential_store.py feat(api): add job ranker and credential store scripts 2026-04-01 07:10:46 -07:00
db.py feat: references tracker and recommendation letter system (#96) 2026-04-15 08:42:06 -07:00
db_migrate.py feat: Interview prep Q&A, cf-orch hardware profile, a11y fixes, dark theme 2026-04-14 17:01:18 -07:00
discover.py feat: shadow listing detector, hired feedback widget, contacts manager 2026-04-15 08:34:12 -07:00
enrich_descriptions.py chore: seed Peregrine from personal job-seeker (pre-generalization) 2026-02-24 18:25:39 -08:00
feedback_api.py fix: llm_backend reads fallback_order, logs tee'd to data/.streamlit.log in Docker 2026-03-03 15:04:18 -08:00
finetune_local.py feat: containerize fine-tune pipeline (Dockerfile.finetune + make finetune) 2026-02-25 16:22:48 -08:00
generate_cover_letter.py feat: Interview prep Q&A, cf-orch hardware profile, a11y fixes, dark theme 2026-04-14 17:01:18 -07:00
generate_llm_config.py feat: auto-generate llm.yaml base_url values from user profile services config 2026-02-24 19:10:54 -08:00
imap_sync.py fix: prefer HTML body in imap_sync, strip head/style/script, remove 4000-char truncation 2026-03-20 13:35:30 -07:00
job_ranker.py feat(api): add job ranker and credential store scripts 2026-04-01 07:10:46 -07:00
license.py fix: add /v1 prefix to all license server API paths 2026-02-25 23:35:58 -08:00
license_public_key.pem feat: license.py client — verify_local, effective_tier, activate, refresh, report_usage 2026-02-25 22:53:11 -08:00
linkedin_parser.py feat(linkedin): add staging file parser with re-parse support 2026-03-13 10:18:01 -07:00
linkedin_scraper.py fix(linkedin): improve scraper error handling, current-job date range, add missing tests 2026-03-13 06:02:03 -07:00
linkedin_utils.py fix(linkedin): update selectors for 2025 public DOM; surface login-wall limitation in UI 2026-03-13 19:47:21 -07:00
llm_router.py feat: llm_router shim — tri-level config priority (local > user > env-var) 2026-04-04 18:36:29 -07:00
manage-ui.sh feat: startup preflight — port collision avoidance + resource checks 2026-02-24 20:36:16 -08:00
manage-vision.sh chore: seed Peregrine from personal job-seeker (pre-generalization) 2026-02-24 18:25:39 -08:00
manage-vllm.sh feat: LGBTQIA+ focus + Phase 2/3 audit fixes 2026-02-24 20:02:03 -08:00
match.py feat: extract hard-coded personal references from all scripts via UserProfile 2026-02-24 18:45:39 -08:00
migrate.py fix(cloud): use per-user config dir for wizard gate; redirect on invalid session 2026-03-13 11:24:42 -07:00
preflight.py fix: address code review — drop OLLAMA_RESEARCH_HOST, fix test fidelity, simplify model guard 2026-04-04 19:26:08 -07:00
prepare_training_data.py feat: wire fine-tune UI end-to-end + harden setup.sh 2026-02-25 16:31:53 -08:00
resume_optimizer.py fix: sanitize invalid JSON escape sequences from LLM output in resume optimizer 2026-04-16 11:11:50 -07:00
resume_parser.py fix: resume CID glyphs, resume YAML path, PyJWT dep, candidate voice & mission UI 2026-02-26 12:32:28 -08:00
scrape_url.py feat: add Jobgether URL detection and scraper to scrape_url.py 2026-03-15 09:45:50 -07:00
skills_utils.py feat: bundled skills suggestion list and content filter utility 2026-02-26 13:09:32 -08:00
suggest_helpers.py feat: add suggest_resume_keywords for skills/domains/keywords gap analysis 2026-03-05 15:00:53 -08:00
sync.py chore: seed Peregrine from personal job-seeker (pre-generalization) 2026-02-24 18:25:39 -08:00
task_runner.py feat: Interview prep Q&A, cf-orch hardware profile, a11y fixes, dark theme 2026-04-14 17:01:18 -07:00
task_scheduler.py fix: update tests to match refactored scheduler and free-tier Vue SPA 2026-04-05 07:35:45 -07:00
test_email_classify.py chore: seed Peregrine from personal job-seeker (pre-generalization) 2026-02-24 18:25:39 -08:00
user_profile.py chore(merge): merge main into feature/vue-spa — resolve ApplyWorkspace conflict 2026-03-31 21:25:15 -07:00