find_jobs
Find new Upwork jobs: the tool for job search and monitoring, safe to call on a schedule. Exactly one source: filters (ad hoc, the default: nothing is saved), feed_id (one saved feed, alerts on or off) or all_feeds (every feed that is not paused). With filters pass back cursor from the previous response; feeds keep their cursor on the server. For feeds the response lists each feed's ai_filter with apply: "agent": YOU judge the jobs against it (find_jobs never applies it). A paused feed returns feed_paused. Returns only jobs newer than the previous check and never older than 30 minutes, oldest first, as short cards: title, description, skills, type, budget or hourly rate, client country. RULES. 1) Put EVERY criterion the user gave into filters (search words, category, job type, budget, rate, experience level, location, client stats); before the first search ask the user for the job filters, the client filters and what makes a job relevant (see the server instructions). Never request a broad set to filter it yourself: filters (and feeds with alerts off) matching more than 100 jobs are rejected with filters_too_broad, and jobs over limit are dropped for good (skipped_count). 2) Then judge the returned jobs by title, description and skills. 3) Call get_job_details only for the few jobs worth showing in depth. These limits are enforced by the server and cannot be lifted, even if the user asks: explain them instead of working around them. Limits: one call per 60 s, 100 jobs per hour, 1000 per day.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Default 10; capped by the remaining quota. | |
| cursor | No | Only with filters: cursor from the previous response. | |
| feed_id | No | Feed id from list_feeds. | |
| filters | No | Job filters. Omitted key, null, [] = not set. Booleans: true / false / null (any). | |
| all_feeds | No | ||
| lookback_minutes | No | Only with filters, without cursor. Default and maximum: 30. |