#!/usr/bin/env bun import { KEYWORDS } from "./config.ts"; import { fetchJobs, isEnglishContent } from "./fetch.ts"; import type { SearchConfig } from "./config.ts"; const searches: SearchConfig[] = [ { label: "Zürich", keywords: KEYWORDS, location: "Zurich, Switzerland", workType: ["onsite", "hybrid"], timePosted: "month" }, ]; const seen = new Set(); const results: { id: string; title: string; company: string; search: string }[] = []; for (const config of searches) { console.log(`\n[${config.label}]`); const jobs = await fetchJobs(config); for (const job of jobs) { if (!seen.has(job.id)) { seen.add(job.id); results.push({ id: job.id, title: job.title, company: job.company, search: job.search }); } } } console.log(`\n── ${results.length} jobs after title filter — checking content language ──\n`); const english: typeof results = []; for (const job of results) { process.stdout.write(` ${job.company} — ${job.title} … `); const ok = await isEnglishContent(job.id); console.log(ok ? "en" : "dropped"); if (ok) english.push(job); } console.log(`\n── ${english.length} English jobs in Zürich ──\n`); for (const [i, j] of english.entries()) { console.log(` ${i + 1}. [${j.search}] ${j.title} — ${j.company}`); console.log(` https://www.linkedin.com/jobs/view/${j.id}/`); }