diff --git a/.env.example b/.env.example index 1c70c84..69d526d 100644 --- a/.env.example +++ b/.env.example @@ -27,3 +27,9 @@ BASIC_AUTH_PASSWORD= UKVISAJOBS_EMAIL= UKVISAJOBS_PASSWORD= UKVISAJOBS_HEADLESS=true + +# ============================================================================= +# JobSpy - Job search configuration +# ============================================================================= +# Filter for remote-only jobs (default: 0 = disabled) +# JOBSPY_IS_REMOTE=0 diff --git a/extractors/jobspy/scrape_jobs.py b/extractors/jobspy/scrape_jobs.py index 1bff190..7454f04 100644 --- a/extractors/jobspy/scrape_jobs.py +++ b/extractors/jobspy/scrape_jobs.py @@ -39,9 +39,12 @@ def main() -> int: hours_old = _env_int("JOBSPY_HOURS_OLD", 72) country_indeed = _env_str("JOBSPY_COUNTRY_INDEED", "UK") linkedin_fetch_description = _env_bool("JOBSPY_LINKEDIN_FETCH_DESCRIPTION", True) + is_remote = _env_bool("JOBSPY_IS_REMOTE", False) output_csv = Path(_env_str("JOBSPY_OUTPUT_CSV", "jobs.csv")) - output_json = Path(_env_str("JOBSPY_OUTPUT_JSON", str(output_csv.with_suffix(".json")))) + output_json = Path( + _env_str("JOBSPY_OUTPUT_JSON", str(output_csv.with_suffix(".json"))) + ) output_csv.parent.mkdir(parents=True, exist_ok=True) output_json.parent.mkdir(parents=True, exist_ok=True) @@ -55,6 +58,7 @@ def main() -> int: hours_old=hours_old, country_indeed=country_indeed, linkedin_fetch_description=linkedin_fetch_description, + is_remote=is_remote, ) print(f"Found {len(jobs)} jobs") @@ -75,4 +79,3 @@ def main() -> int: if __name__ == "__main__": raise SystemExit(main()) - diff --git a/orchestrator/src/client/components/JobHeader.tsx b/orchestrator/src/client/components/JobHeader.tsx index 2ee8ac8..a6d5104 100644 --- a/orchestrator/src/client/components/JobHeader.tsx +++ b/orchestrator/src/client/components/JobHeader.tsx @@ -206,6 +206,14 @@ export const JobHeader: React.FC = ({ > {sourceLabel[job.source]} + {job.isRemote === true && ( + + Remote + + )} {!isJobPage && (