Search the public eFinancialCareers site for jobs matching a location and keyword without login, using the direct slug-based results route and returning the page status plus visible job-result links and titles.
Use Cases
Use when the caller supplies a country or region and a job keyword, such as Economist or Analyst in Switzerland. This avoids homepage navigation and is also useful for verifying that the public search page is reachable.
Automation Flow
- Build the direct results URL from the inputs, taking the locale domain from the caller and defaulting to
efinancialcareers.com:https://www.{locale-domain}/jobs-{location-slug}-{keyword-slug}For a language route on the global domain, insert the language segment:https://www.efinancialcareers.com/{language}/jobs-{location-slug}-{keyword-slug}. Convert spaces to hyphens and remove punctuation; the observed route uses capitalized location and keyword components, but the route is case-tolerant. The observed run used{locale-domain}ofefinancialcareers.ch, where locationSwitzerlandand keywordEconomistproduce/jobs-Switzerland-Economist. - In one browser call, navigate directly to the selected URL with
domcontentloaded, record the navigation/HTTP status to check that the public search is reachable, and run thisevaluate()extractor on the loaded page:
(() => {
const clean = value => (value || '').replace(/\s+/g, ' ').trim();
const absolute = href => {
try { return new URL(href, location.href).href; } catch (_) { return null; }
};
const seen = new Set();
const jobs = [];
for (const a of document.querySelectorAll('a[href]')) {
const href = absolute(a.getAttribute('href'));
const title = clean(a.textContent);
if (!href || !title) continue;
const parsed = new URL(href);
const path = parsed.pathname.toLowerCase();
if (!/(^|\/)jobs?(?:[\/-]|$)/.test(path)) continue;
if (path.includes('/jobs-')) continue;
const key = `${href}\\n${title}`;
if (seen.has(key)) continue;
seen.add(key);
const card = a.closest('article, li, [data-testid*="job" i], [class*="job" i]');
jobs.push({
title,
url: href,
context: clean(card ? card.textContent : '')
});
}
return {
url: location.href,
pageTitle: clean(document.title),
headings: [...document.querySelectorAll('h1, h2')]
.map(element => clean(element.textContent))
.filter(Boolean),
jobs
};
})()Possible Friction Points
- The locale-specific
.chroute is directly reachable as/jobs-{location}-{keyword}without the/deprefix; this was confirmed for the Switzerland/Economist search. - The existing global fallback is
www.efinancialcareers.com/de/jobs-{location}-{keyword}. The.chdomain may redirect or serve a different landing page in other circumstances, so record the final URL and navigation status. - Do not assume an opaque job ID or invent a detail URL. Follow an extracted result link when a specific job page is needed.
- Job cards may contain multiple anchors to the same listing. The extractor identifies listing links from their URL paths, excludes the search route itself, and deduplicates repeated title/link pairs.
- The extractor uses URL-path matching rather than one CSS class because card markup can vary across locale and responsive layouts.