Portugal eligibility unconfirmed · 7+ years required · Occasional frontend contribution
Senior remote Python roles in Europe from the companies' own job pages, vetted weekly against hard rules — unconfirmed details flagged, never guessed.
The direction, template and cadence below arrive prefilled. You can edit everything before it runs.
This is the whole instruction, exactly as it runs. Plain words — no fields, no syntax.
Find senior- or staff-level Python engineering roles that fit the rules below, and give me a short list — six at most — that I can act on the same day.
Hard rules — do not infer them from the title, and do not include a role hopefully:
- Fully remote inside Europe, or remote with no more than one office day a month.
- Python named in the responsibilities, not only in a list of nice-to-haves.
- Posted by the company itself, not by an agency or a job aggregator.
When a posting leaves one of these unconfirmed — it says "Remote" without the region or office expectations, for example — keep it only if everything else passes, and fail-tag exactly what is unconfirmed instead of assuming it.
On salary: my floor is €50,000. Prefer postings that publish a number or a range. A role that passes everything else but doesn't state a salary still belongs on the list, marked "not stated" — drop it only if the posting clearly signals pay below my floor.
Skip anything I have already seen in an earlier delivery, unless something material changed — a salary appeared, the remote policy moved, or the level was rewritten. In that case show it again and say in one line what changed.
For each role you keep: the company in a sentence, the salary as published (or "not stated"), the stack as the posting words it, and one honest reason it might not suit me. Never state a detail the posting doesn't actually show — write "unconfirmed" instead of guessing. Order them strongest first: published salary at or above my floor outranks "not stated", and fully confirmed outranks "unconfirmed".
Then list what you dropped and why, in one line each. If nothing passes, say so plainly and keep the list empty.
A real delivery from this recipe, shown as you'd read it in joris. Ran August 6, 2026.
One board for the whole hunt. Each run adds what it finds and updates what changed; only you move a card, and no run ever undoes it.
Synthesia is the strongest match, with a EUR/GBP/CHF 130,000 base plus RSUs and remote work in Europe. Hugging Face, Cloudbeds, and Fliff are actionable but publish no salary.
Do first: Apply first to Synthesia, verifying eligibility for Portugal before submitting.
Portugal eligibility unconfirmed · 7+ years required · Occasional frontend contribution
Professional JavaScript/TypeScript required · Modern frontend required · Open-source experience required
Not Python-only · Spans mobile, infrastructure, deployment, and operations
On-call rotations · Sports/betting-related product work
Nothing in process yet. Change a status to move something here.
Nothing passed or closed yet.
Statuses save as you set them, and no run ever changes one.
Synthesia's remote eligibility outside the UK, Germany, Switzerland, and Ireland is unconfirmed; verify Portugal eligibility.
Should roles requiring occasional travel be excluded automatically in future runs?
You take this direction as it is, or edit a line before it runs.
2 quiet days · nothing for you to do
Your board is empty, so everything this run finds arrives as new. This is the longest list you'll get. 4 kept · 4 dropped, the most telling with the rule it failed.
6 quiet days
What the first run found stays on your board where you left it. This one adds what's new, and a card whose listing changed says so.
2 deliveries in. Most people have tightened the direction once by now.
2 deliveries inside the trial — 3 routines and 30 web runs, free, with no card. See what's included.
The direction, the Job hunt template and the Weekly · Monday · 07:00 schedule arrive already filled in.
You can edit everything before it runs.