- isEnglishContent() fetches each job page and drops descriptions with ≥6 German or French indicator words; called for every new job in index.ts before writing to CSV - New `bun recheck` command (recheck.ts) runs searches in raw mode, lists filtered-out jobs, and prints word-frequency suggestions for SOFTWARE_TITLE_RE - Expanded KEYWORDS and SOFTWARE_TITLE_RE to cover ML/AI, system/applications engineer, director, informatics, and more title variants - Added `raw` flag to fetchJobs() to bypass the software-role filter - Add CLAUDE.md with project workflow docs; add CV files and city temp scripts
76 lines
1.8 KiB
TypeScript
76 lines
1.8 KiB
TypeScript
export type WorkType = "onsite" | "remote" | "hybrid";
|
|
export type JobType = "full-time" | "part-time" | "contract" | "temporary" | "internship";
|
|
export type TimePosted = "day" | "week" | "month";
|
|
export type Seniority = "internship" | "entry" | "associate" | "mid-senior" | "director" | "executive";
|
|
|
|
export interface SearchConfig {
|
|
label: string;
|
|
/** Use a raw LinkedIn URL instead of building one from filters. */
|
|
url?: string;
|
|
keywords?: string;
|
|
geoId?: string;
|
|
location?: string;
|
|
workType?: WorkType[];
|
|
jobType?: JobType[];
|
|
timePosted?: TimePosted;
|
|
seniority?: Seniority[];
|
|
}
|
|
|
|
export const KEYWORDS = [
|
|
"Software Engineer",
|
|
"Solutions Engineer",
|
|
"Full Stack Engineer",
|
|
"Backend Engineer",
|
|
"Data Engineer",
|
|
"AI Engineer",
|
|
"Applications Engineer",
|
|
"Platform Engineer",
|
|
"DevOps Engineer",
|
|
"Staff Engineer",
|
|
"Principal Engineer",
|
|
"Tech Lead",
|
|
"Developer",
|
|
"Ruby on Rails",
|
|
"Python",
|
|
"Node.js",
|
|
"TypeScript",
|
|
"Artificial Intelligence",
|
|
"Machine Learning",
|
|
"Data Science",
|
|
"AI Consultant",
|
|
"ML Engineer",
|
|
"Director of Engineering",
|
|
"Engineering Manager",
|
|
"Lead Developer",
|
|
"System Engineer",
|
|
"Solution Engineer",
|
|
].join(" OR ");
|
|
|
|
// --- Define your searches here ---
|
|
export const searches: SearchConfig[] = [
|
|
{
|
|
label: "Basel (city)",
|
|
keywords: KEYWORDS,
|
|
geoId: "103383283",
|
|
location: "Basel",
|
|
workType: ["onsite", "hybrid"],
|
|
timePosted: "month",
|
|
},
|
|
{
|
|
label: "Basel Metropolitan Area",
|
|
keywords: KEYWORDS,
|
|
geoId: "90009885",
|
|
location: "Basel Metropolitan Area",
|
|
workType: ["onsite", "hybrid"],
|
|
timePosted: "month",
|
|
},
|
|
{
|
|
label: "Basel-Country",
|
|
keywords: KEYWORDS,
|
|
geoId: "107117530",
|
|
location: "Basel-Country",
|
|
workType: ["onsite", "hybrid"],
|
|
timePosted: "month",
|
|
},
|
|
];
|