Commit Graph
16 Commits
Author SHA1 Message Date
ilia 4d7c8ac0bc feat(orchestrator): job list filters — multi source/country, URL sync, exclude
- Parse location strings into country keys (shared search-cities helper).
- URL params: source, sourceExclude, countries, countriesExclude.
- Chip cycle: off → include → exclude (destructive); remote bypasses country rules.
- README: document filter behaviour and query keys.

Unrelated local changes (scorer, notes, schema, etc.) remain unstaged.

Made-with: Cursor
2026-04-06 15:50:47 -04:00
ilia 77179b2b94 feat(orchestrator): local JSON base resume for PDF generation
Use JOBOPS_LOCAL_RESUME_PATH or Settings local path as the tailored PDF
source when Reactive Resume template is not selected. Align GET
/api/profile/status with local resume configuration. Update route test
mocks for resolveLocalResumeFilePath.

Includes discovered-panel UI tweaks in DecideMode and DiscoveredPanel.

Made-with: Cursor
2026-04-05 23:47:25 -04:00
ilia 87dbda3df1 Fix Fit assessment header and job list toolbar spacing on reload
- Put match badges in their own flex-wrap row under the title (no run-on text)
- Toolbar: flex-wrap, min-w-0 label, shrink-0 count, middot separator on narrow layouts

Made-with: Cursor
2026-04-05 22:22:41 -04:00
ilia 6b26f70ef7 Make cover letter discoverable: Overview, Ready panel, ⋯ menu
- Always show Cover letter card with Generate when empty; Regenerate + Copy when present
- Shared useCoverLetterGeneration hook calling runJobAction(generate_cover_letter)
- Ready tab previously had no cover letter UI; add same block under Fit Assessment
- Floating bar Cover letter button tooltip points to Overview/Ready
- Job detail ⋯ menu: Generate / Regenerate cover letter

Made-with: Cursor
2026-04-05 21:53:27 -04:00
ilia 54adc66e73 Score hybrid/onsite jobs low when job search profile is remote-only
- Require workArrangementMatch in LLM schema; show badge in Fit Assessment
- Prompt: remote-only vs hybrid/N days in office is a hard cap (~35 score)
- Deterministic cap from JD keywords + isRemote/workFromHomeType when only Remote is selected
- hasNonEmptyProfile includes preferredWorkArrangement and preferredLocations so prefs reach the scorer

Made-with: Cursor
2026-04-05 21:40:35 -04:00
ilia 14a6da4bdf Improve job scoring for QA vs generic SWE roles; document Ollama on 16GB GPU
- Cap suitability score when roleTypeMatch is low and target roles are set
- Harden scoring prompt (role-type gating, examples, headline in resume payload)
- QA-oriented mock scoring when LLM is unavailable
- .env.example: optional Ollama MODEL/LLM_BASE_URL block for self-hosted LLM

Made-with: Cursor
2026-04-05 21:35:40 -04:00
ilia 1d450d7cc5 docs: SQLite deploy uses .backup and remove WAL/SHM on VM
Made-with: Cursor
2026-04-05 20:03:06 -04:00
ilia 09ab32e1e8 chore: default pipeline includes Glassdoor; document DB copy and cron sources
- Add glassdoor to DEFAULT_CONFIG so POST /api/pipeline/run with {} runs JobSpy trio.
- jobber-pipeline-telegram.sh: optional JOBBER_PIPELINE_SOURCES for explicit source list.
- Deploy doc: WAL checkpoint + rsync jobs.db to VM for profiles/settings/jobs.

Made-with: Cursor
2026-04-05 19:49:01 -04:00
ilia fea00ae656 feat: search profiles, cover letters, discovery fixes
- Add search profiles (DB, API, settings UI) and wire into scorer/pipeline search terms.
- Add cover letter generation (service, job action, JobDetail UI).
- Align JobSpy Indeed country with country-level search geography when settings conflict; warn in logs.
- Infer country from search cities via inferCountryKeyFromSearchGeography (shared).
- Ignore extractor venv/storage and local data in Biome; ignore orchestrator/storage and JobSpy .venv in git.
- Vite: do not watch orchestrator/storage (prevents reloads during startup.jobs pipeline).
- JobSpy: document Python 3.10+ and venv setup in README/requirements.
- Onboarding and settings: local resume path handling, orchestrator .env.example for Vite.

Made-with: Cursor
2026-04-05 19:35:14 -04:00
ilia 0a7dbb4f16 fix(docker): bake VITE_SKIP_RXRESUME_ONBOARDING into client build
Production images previously omitted the flag, so the full RxResume wizard
always appeared. Default skip matches self-hosted LLM-in-.env workflows;
override via docker-compose build args if needed.

Made-with: Cursor
2026-04-05 14:44:59 -04:00
ilia b2a2507615 fix(scripts): Telegram pipeline summary — timestamp compare, retries, diagnostics
- Normalize SQLite vs ISO discoveredAt for run-window filtering
- Retry jobs list after run; compressed JSON requests
- Cross-check GET /api/jobs/revision when list is empty
- Docs: cron at 9/13/18, pull + redeploy steps for VM

Made-with: Cursor
2026-04-04 22:03:53 -04:00
ilia 8a08d4991e fix(scripts): Telegram job list compares SQLite vs ISO discoveredAt 2026-04-04 21:43:50 -04:00
ilia ae7e50fa91 feat(scripts): Telegram message includes employer, title, posting links
Made-with: Cursor
2026-04-04 16:42:04 -04:00
ilia 3d6dda35b0 docs: simplify README for personal fork; remove upstream FUNDING.yml
Made-with: Cursor
2026-04-04 16:12:22 -04:00
ilia 14b7bb34cf chore: gitignore cron Telegram env; ship pipeline+Telegram script and deploy steps
Made-with: Cursor
2026-04-04 16:10:27 -04:00
ilia 8d8c6f0ed0 fix(docs): company-skip-list links for Docusaurus next build 2026-04-04 15:31:40 -04:00