- 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
- 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
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
- Add remote/orchestrator filter by workplace (remote, not remote, unknown) with URL param
- Expose isRemote on job list API; canonicalize URLs and source_job_id dedup on import
- Onboarding: optional VITE_SKIP_RXRESUME_ONBOARDING for RxResume-free onboarding
- Scoring UI + docs for company skip list; pipeline-run dedup note
- Vitest: TZ=UTC for stable time-based tests
- DEPLOY_GITEA_VM_CRON_TELEGRAM.md for VM/cron/Telegram ops
Made-with: Cursor
* feat(types): add jobspyIsRemote to TypeScript type definitions
- Add jobspyIsRemote boolean fields to AppSettings interface
- Follow three-field pattern: value, default, override
- Update test fixture with default values (false)
* feat(validation): add jobspyIsRemote validation schema
Add Zod validation schema for jobspyIsRemote boolean setting to ensure type safety in the settings API endpoint.
* feat(db): add jobspyIsRemote to database repository setting keys
* feat(api): add jobspyIsRemote storage to settings API route
* feat(service): add jobspyIsRemote to settings service with environment variable support
* feat(jobspy): add isRemote parameter to JobSpy service interface
* feat(pipeline): pass isRemote setting to JobSpy service
* feat(python): add is_remote parameter to JobSpy scraper script
* feat(ui): add Remote Jobs checkbox to JobSpy settings
* feat(ui): add Remote badge to job display
- Display Remote badge when job.isRemote === true
- Position badge next to Source badge in JobHeader
- Use Badge component with outline variant
- Badge does not display when isRemote is false or null
* docs(env): add JOBSPY_IS_REMOTE environment variable documentation
- Added JobSpy section to .env.example with JOBSPY_IS_REMOTE variable
- Documents remote-only job filtering option with default value of 0 (disabled)
- Follows existing .env.example format with clear section headers and descriptions
* test(remote-jobs): verify end-to-end functionality with comprehensive feedback loops