Most job data marks a job "remote" because a model guessed it from the text. Sometimes that's right. Often it's "hybrid, 3 days in Munich". Here's how to get only the jobs where the employer itself published "remote", using Job Opportunities API (JOA). Every field in JOA says whether it was published by the employer or inferred by us, in field_sources.

1. Get a free key (no card): https://jobopportunitiesapi.org/login

2. The script

import os, datetime, requests API = "https://api.jobopportunitiesapi.org/v1/jobs" api_key = os.environ.get("JOA_API_KEY") # free key: https://jobopportunitiesapi.org/login  params = { "title": "data engineer", "country": "DE", "remote": "remote", "remote_confirmed": "true", # only jobs where the EMPLOYER said "remote"  "posted_after": (datetime.date.today() - datetime.timedelta(days=7)).isoformat(), "limit": 20, } r = requests.get(API, params=params, headers={"Authorization": "Bearer " + api_key}, timeout=30) r.raise_for_status() for job in r.json()["data"]: src = job["field_sources"] print(f'{job["title"]} | {job["company"]} | remote ({src["remote"]}) | {job["apply_url"]}') 

3. Run it

Put your key in an environment variable called JOA_API_KEY, then run python remote_jobs.py.

Real output from today:

Senior Scientific Data Engineer | TetraScience | remote (published) | https://apply.workable.com/j/CD8C2AFA42/apply Senior Data Engineer (m/w/d) | Device Insight | remote (published) | https://device-insight.breezy.hr/p/2e7513bb4c5e01-senior-data-engineer-m-w-d 

Every link goes to the employer's own application page, not a job board.

What changed vs. a normal search
remote_confirmed=true drops every job where "remote" was only inferred. Drop that line and you get more results, each labelled inferred or published, so you can decide yourself.

Ideas

  • Run it daily with cron and send the list to Slack or email.
  • Swap title and country for your stack and market.
  • Add has_salary=true to keep only jobs where the employer published a salary.

What filter do you wish job sites had?