Skip to content

What "Remote only" Actually Promises You (Job Search Filters)

When you tick Remote only in job search, WorkWingman treats that as a promise about every row it shows you. If we can't keep the promise for a particular job, that job doesn't quietly sit in the list hoping you won't notice — it moves somewhere clearly labelled, and we tell you how many went there.

This page explains why that matters and what you'll see. The engineering detail lives in the technical version.

The Problem This Fixes

WorkWingman searches several job sources at once and merges everything into one list. The sources are not equally capable:

  • Some publish a proper "this job is remote" field we can read.
  • Some only mention it in the location or job title, if at all.
  • Some let us ask their server for remote jobs; others make us fetch everything and sort it out ourselves.

Before this change, ticking "Remote only" filtered some of those sources and silently left the others unfiltered. The results looked like one uniform, filtered list. It wasn't. You had no way to tell which rows had actually been checked — and a job in the wrong city could sit in a list you believed was filtered.

That's the failure we set out to remove. A list that looks filtered but isn't is worse than no filter at all, because it spends your trust.

What You See Now

The main list only contains jobs we could actually confirm. Every row there has real evidence behind it — the source told us, or the location/title says so plainly.

Everything we couldn't confirm goes into a separate, counted group you can open if you want it. It's labelled with why we couldn't confirm, in plain terms:

  • Remote status not published — the source never said either way
  • Pay not published — no salary information at all
  • Pay range straddles your minimum — the range starts below your floor and ends above it
  • Sources disagree — two sources made equally-credible, contradictory claims

Jobs the source positively contradicted are dropped, not hidden in that group. "The source says this is on-site" and "the source never mentioned it" are genuinely different facts, and we treat them differently.

Each source reports its own outcome. In the source table you'll see either a real count, "not set up" (that source needs an API key — something you or we can fix), or "unavailable" (it was asked and couldn't answer). A source that is switched off no longer looks identical to a source that simply found nothing.

Why We Don't Just Guess

We could make the lists longer by assuming. We don't:

  • We never invent a salary. One source publishes predicted pay — a computer's estimate, not what the employer said. Filtering your pay floor against a guess would tell you a job pays enough when nobody ever claimed that. Those rows go to the unconfirmed group.
  • We don't treat "remote" appearing anywhere as proof. The word shows up in job descriptions saying things like "no remote work available." We only read the location and title, where the word means what it looks like.
  • We show you when the evidence is weak. A job confirmed because its title contains "remote" is not as solid as one where the employer set an official remote flag. Both satisfy your filter; they aren't equally strong, and we say so rather than stamping them identically.

The Honest Limits

  • The unconfirmed group can be large. That's not a bug — it's the true size of what we couldn't verify, which was previously hidden inside a falsely-confident list.
  • Some sources can't be checked for some criteria at all. A source with no salary data anywhere can never confirm a pay floor. It will say so rather than silently contributing nothing.
  • We only search a bounded number of jobs per request. When there's more beyond what we looked at, the response says that too, instead of implying you've seen everything.

The Rule Behind All Of It

A filter you set is a promise about every row in the list. If we can't keep the promise for a row, that row does not belong in the list — and you should be told it exists, how many there are, and why.