Skip to main content
Glama

flconsole — Upwork jobs

create_feed

Save a feed: a named search (filters + ai_filter + your agent_notes) to reuse with find_jobs(feed_id). One feed object, two modes: alerts: false (default) = a feed for you only: nothing is sent to Telegram and nothing runs on the server, you apply its ai_filter yourself (up to 5 such feeds); alerts: true = the Telegram bot also sends the user a notification about every new matching job, filtered by the same ai_filter (up to 5 such feeds). Alerts can be switched later with set_feed_alerts. Use alerts: true only when the user explicitly asked for Telegram notifications. Show the search, filters and ai_filter, get the user's approval, then pass user_confirmed: true. Takes complete filters (base.q is required).

Input Schema

NameRequiredDescriptionDefault
nameNoUp to 40 characters; default: automatic.
alertsNoTelegram notifications. Default false: a feed for you only.
filtersYesJob filters. Omitted key, null, [] = not set. Booleans: true / false / null (any).
ai_filterNoOptional AI filter: plain-language Keep / Skip rules (e.g. "Skip agencies and WordPress; only B2B SaaS"), up to 2000 characters. You apply them to the jobs find_jobs returns; with alerts on, the bot also applies them before each Telegram notification. Use it for the relevance criteria that structured filters cannot express.
agent_notesNoYour service notes for this feed: tally of checks, top skip reasons, last review, up to 1500 characters. Replaces the saved text; "" clears it. Not shown in Telegram.
user_confirmedYestrue only if the user, in this conversation, explicitly approved saving this feed (and, with alerts: true, asked for Telegram notifications). Otherwise ask them first; never assume.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • addedInput schema / properties / agent_notes
      Added value: +{
      +  "description": "Your service notes for this feed: tally of checks, top skip reasons, last review, up to 1500 characters. Replaces the saved text; \"\" clears it. Not shown in Telegram.",
      +  "maxLength": 20000,
      +  "type": "string"
      +}
    • changedInput schema / properties / ai_filter / description
      Previous value: -"Optional AI filter: plain-language rules about which jobs to keep or skip (e.g. \"Skip agencies and WordPress; only B2B SaaS\"). The bot applies them to every job before the Telegram notification. Use it for the relevance criteria the user gave that structured filters cannot express."New value: +"Optional AI filter: plain-language Keep / Skip rules (e.g. \"Skip agencies and WordPress; only B2B SaaS\"), up to 2000 characters. You apply them to the jobs find_jobs returns; with alerts on, the bot also applies them before each Telegram notification. Use it for the relevance criteria that structured filters cannot express."
    • addedInput schema / properties / alerts
      Added value: +{
      +  "description": "Telegram notifications. Default false: a feed for you only.",
      +  "type": "boolean"
      +}
    • removedInput schema / properties / is_active
      Removed value: -{
      -  "description": "Default true.",
      -  "type": "boolean"
      -}
    • changedInput schema / properties / user_confirmed / description
      Previous value: -"true only if the user, in this conversation, explicitly agreed to create this feed with Telegram notifications. Otherwise ask them first; never assume."New value: +"true only if the user, in this conversation, explicitly approved saving this feed (and, with alerts: true, asked for Telegram notifications). Otherwise ask them first; never assume."
  2. First observed

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial context beyond the annotations: alerts:false means nothing runs server-side, alerts:true makes the Telegram bot notify on every match, and each mode caps at 5 feeds. It also discloses the user_confirmed guardrail. It stops short of describing the returned object, but the safety-relevant behavior is well covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose before the mode detail. It is long, but nearly every clause carries operational weight (mode differences, limits, approval flow); a touch of density keeps it from a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a nested-filter creation tool with no output schema, the description covers modes, limits, approval requirements, and ai_filter application semantics. An agent has everything needed to call it correctly and safely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 100%, so the baseline is 3, but the description adds meaning: it clarifies base.q is required, explains what ai_filter is for (relevance criteria structured filters can't express) and how user_confirmed must reflect in-conversation approval. Genuinely additive over the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Save a feed: a named search (filters + ai_filter + your agent_notes)") and ties it to the sibling it feeds ("reuse with find_jobs(feed_id)"). An agent can distinguish it from list_feeds, update_feed, and set_feed_alerts without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly explains the two modes and when to use each: "Use alerts: true only when the user explicitly asked for Telegram notifications," and notes alerts can be toggled later via set_feed_alerts. It also prescribes the approval workflow (show search, filters, ai_filter; get approval; pass user_confirmed: true).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.