Let Claude Configure Your Upwork Filters
Most people set up a job filter once, badly, and then live with it for months.
It's not laziness. A good filter has a dozen interacting settings — budget floors that differ for hourly and fixed work, client quality gates, keyword includes and excludes, which categories count, how fresh a posting has to be. Getting it right means understanding what each control does to your results before you've seen any results. So you set a budget minimum, call it done, and spend the next three months skimming past jobs you'd never take.
The Vibeworker MCP server changes the interface to that problem. Eight of its thirteen tools are configuration tools, which means you can describe the work you want in plain language and let Claude translate it into settings.
The basic move
Set up a filter for Python automation work — at least $400,
verified clients only, and skip anything with "urgent" or "asap"
in it. Turn on push notifications for it.
What happens:
⏺ create_filter(
name: "Python automation",
categories: ["Web Development", "Data Science & Analytics"],
keywordsInclude: ["python", "automation", "scraping"],
keywordsExclude: ["urgent", "asap"],
budgetMin: 400,
requirePaymentVerified: true
)
Created filter "Python automation" (id: fp_9c1e). Feed is ready.
⏺ update_filter_notifications(
id: "fp_9c1e",
notifyChannels: { push: { enabled: true } }
)
⏺ assign_filter(presetId: "fp_9c1e", surface: "notification")
Done — you'll get a push when something matches.
Three tool calls, one sentence. Note what Claude filled in that you didn't say: the categories, and the extra scraping keyword. That's the part that's hard to do yourself, because it requires knowing the category taxonomy before you can pick from it.
What you can actually control
The filter model is more granular than most job alert tools expose. Everything here is settable through conversation:
Budget — budgetMin, or budgetMinHourly and budgetMinFixed separately when your hourly floor and your project floor aren't the same number. hideUnpostedBudget drops posts with no budget stated at all.
Client quality — requirePaymentVerified, minClientRating, minClientSpent, minHireRate. Hire rate is the underrated one; a client who posts constantly and hires rarely is wasting your connects, and minHireRate: 0.5 removes them.
Keywords — three separate lists, which matters more than it sounds. keywordsInclude is "any of these," keywordsRequire is "all of these," and keywordsExclude removes matches outright. Most tools give you one box and you can't express "React but never WordPress."
Cost to apply — connectsMax caps how many connects a job demands. Connects are real money and expensive posts aren't reliably better ones.
Scope — jobType, experienceLevel, postedWithinHours, excludeLocations, and the category list.
You don't need to remember any of those names. Describe the outcome and let Claude pick.
Editing without breaking things
The tools that matter most day to day are the ones for changing a filter you already have:
My Python filter is too noisy. Raise the floor to $600 and
require a 4.5+ client rating.
update_filter merges what you pass onto the existing preset. Everything you didn't mention stays exactly as it was — your keyword lists, your notification channels, your category selection. That sounds obvious, but the naive implementation replaces the whole preset and silently wipes settings you configured weeks ago and forgot about. This one doesn't.
Same for update_filter_notifications: including push doesn't disable the email you already had on.
The available channels are web_push (browser), push (mobile app), email, telegram, and webhook — the last one POSTs a signed payload to any URL you give it, which is the entry point if you want to route jobs into n8n or your own handler.
Running several at once
Filters aren't one-per-account, and once creating them is a sentence there's no reason to run just one:
Make me three filters: quick-win fixed-price work under $500,
serious contract work over $2000, and one for React specifically.
Notify me on the middle one only.
Presets separate your dashboard tabs from your notification trigger — assign_filter sets each independently. So the aggressive high-value filter can be the thing that pings your phone, while your dashboard stays on the broad view you browse when you have time.
list_filters shows what you have and which is active where, which is worth asking for before you start editing.
Auditing what you built
The genuinely new thing here isn't that Claude can write settings. It's that the same session can read the results:
Look at my current filters, then pull the last 20 jobs that
matched. Am I filtering out too much?
Claude calls list_filters, then list_jobs, then reasons about the gap between them. If everything coming through is $200 one-off work, your budget floor isn't doing what you thought. If nothing's coming through at all, something's too tight — and it can tell you which setting and loosen it in the same breath.
That loop — configure, observe, adjust — is what nobody does manually, because manually it means three trips through a settings UI. Here it's one conversation.
One thing worth knowing
Broadening a filter's categories triggers a re-match of your recent history against the new scope, so results catch up within a minute or two rather than only applying to jobs that arrive later. Creating a filter refreshes the feed immediately where it can, and backfills where it can't. Claude will tell you which happened.
All the configuration tools are free, on every plan, always. They're not metered against the job-result quota, so there's no cost to iterating on your setup — including if you're still on the free tier and deciding whether this is worth paying for.
Getting connected
If you haven't set up the MCP server yet, it's one command and about two minutes: Upwork jobs in Claude Code — MCP setup.

Michael Watkins
Founder of Vibeworker. Helping freelancers win the Upwork game through speed and data.
Stop missing the jobs that matter
Vibeworker watches the Upwork feed and alerts you the moment a high-fit job appears — before the proposals pile up.
Get started free →Keep reading
Upwork Jobs in Claude Code: MCP Setup in 2 Minutes
Connect your ranked Upwork job feed to Claude Code, Cursor, or Windsurf as an MCP server. One command, no install, 13 tools. Free to try with no credit card.
Make.com Freelance Demand More Than Doubled in One Month
An analysis of 271,710 Upwork job postings found Make.com title mentions rose 131% per 100,000 jobs from April to May 2026, overtaking Zapier.
n8n Upwork Job Alerts: Webhook → AI Proposal → Gmail (Free Template)
Build an n8n workflow that catches new Upwork jobs via webhook, generates a draft proposal with AI, and emails it to you in under 20 minutes. Free importable template included.