Article
How to describe the job you want so an AI can actually find it
Type "something in tech, ideally remote" into any search box and you get everything. Ten thousand postings, most of them irrelevant, none of them ruled out. The box did exactly what you asked — it just turns out you didn't ask for anything a filter can act on.
That's not a search-engine problem. It's an input problem. A vague brief can't reject anything, so it doesn't reject anything, so every posting stays in the pile. Sharpen the sentence and the pile shrinks on its own, no extra tool required.
Vague in, noise out
"Senior developer, remote" looks specific. It has a seniority word and a location word. But it can't tell a backend Go role from a frontend React role, can't tell a "remote" that means anywhere from a "remote" that means one country, and says nothing about salary or dealbreakers at all. Every word in it is true of thousands of postings, which means none of the words are doing any filtering.
A useful search brief works the opposite way. It's a spec, and a spec is falsifiable — each clause should help rank or rule out a posting when the source provides enough evidence. "Senior" can conflict with an explicitly junior role. "Remote, EU-based" can conflict with a US-only listing. "$100k+" can conflict with a stated $70k ceiling. This is consistent with model-provider guidance to be clear, direct, and specific about constraints; it does not mean a model can recover facts the posting never supplied.
This is the same discipline behind scoring a posting before you apply rather than after — we wrote about the mechanics of that in why 200 applications can return zero responses. The brief you write here is the input that scoring runs on. A vague brief gives a scorer fewer defensible ways to distinguish candidates, which makes its reasons less useful even when it still produces different numbers.
The five dimensions that do the work
Five dimensions carry almost all of the useful signal in a job search. Get these right and the rest of the brief is polish.
Stack or domain. Not "developer" — "Go backend" or "growth marketing at a B2B SaaS." A scorer, human or automated, uses this to check the actual day-to-day work against what you've done, not the title on the posting. A title alone tells it almost nothing; the stack tells it what the job actually is.
Seniority. "Senior" means something different at a ten-person startup than at a bank. State it as a level or a years-of-ownership range, not just the word. A scorer uses this to catch the mismatch a title hides — a "Senior Engineer" posting that's really asking for a staff-level owner.
Location eligibility. "Remote" is not a location — it's a claim that has to be checked against payroll entities, timezone overlap, and client-country rules the posting may or may not spell out. We covered exactly how that restriction hides in a posting in our piece on remote jobs and real location eligibility. A scorer uses your stated eligibility — "EU-based," "US only," "CET±3" — to catch a "remote" that quietly wasn't remote for you, before you spend an evening on the application.
Salary floor. A number, not a hope. A scorer can flag a posting whose stated range sits below the line where applying wastes both sides' time—and identify a missing range as an unknown. It should not invent an “implied” salary to force a decision.
Dealbreakers. The constraints that have nothing to do with fit and everything to do with rule-outs — no crypto, no agencies, no on-call, no return-to-office five days a week. When a posting provides explicit conflicting evidence, these can support a hard exclusion rather than a vague preference penalty.
Dealbreakers are the highest-signal words
Here's the part that's easy to underweight: positive terms in a brief rank, but dealbreakers filter, and filtering is where almost all the time savings actually live.
"React" or "growth marketing" tells a scorer what to prefer among postings that are already in play. It's useful, but it's soft — a posting missing one preferred skill can still be a good match overall. "No crypto" does something completely different. It doesn't nudge a score down a point. It takes an entire category of postings off the table in two words, before any other dimension gets evaluated.
That asymmetry is why dealbreakers deserve to be written explicitly, not left implied. "No agencies" eliminates staffing-firm reposts you'd otherwise open one by one to recognize and discard. "No on-call" eliminates an entire shape of role regardless of how good the stack match looks on paper. Two or three dealbreaker phrases, stated plainly, do more filtering than the rest of the brief combined — a positive preference asks "is this good," a dealbreaker asks "is this even eligible," and the second question is cheaper to answer and more valuable to answer first.
Vague vs. sharp, side by side
- "Something in data" → Data engineer · remote · EU-based · $100k+ · no ad-tech
- "Frontend stuff" → Senior React/TypeScript · Berlin hybrid or remote CET±2 · no crypto
- "PM role, open to anything" → Product manager, B2B SaaS, 5+ years · US-based, no relocation · no on-call, no staffing agencies
Same information every time: stack or domain, seniority, location eligibility, a number, and the things that rule a posting out outright. The form is what matters, not the specific words — swap in your own stack, your own city, your own floor, and the sentence still works the same way.
Where to run it
You don't need a tool to use this. Write the five-dimension sentence once, keep it in a note, and paste it into whatever board's search box you're using that day — it works as a rubric even scored by hand in a spreadsheet, one line per posting, five minutes a day.
Where it stops being manual is volume. In Telegram, a preference brief can start the profile and a CV is optional; the web onboarding currently uses a PDF resume. Oink then searches the sources available to that run and ranks viable candidates on a 0–5 scale with fit reasons, concerns, and unknowns grounded in the current brief. It cannot guarantee that every fetched record receives the same enrichment, so treat missing evidence as missing—not as a silent match. How Oink works describes the full input-to-delivery path.
Describe the role you want and add a resume where required or useful. Oink searches the public sources available to your run, ranks viable postings 0–5, and delivers explained matches on the web or in Telegram.
Write the sentence once. Stop re-typing it into search boxes forever.