App Logo
upwork.com

Get job description

Automatically get job description on upwork.com. Fetch a single Upwork job posting's full details by its ciphertext (the ~0… token in the job URL, returned by search_jobs). Covers title, full description, category, occupation, skills, budget or hourly range, workload and duration, experience level, screening questions and attachments. Also covers client activity (applicants, interviews, invites, hires) and the client: country, city, payment verified, member since, score and spend. Works signed out, so no Upwork account is needed; run it on the managed browser, since Upwork's Cloudflare check can block some paired browsers. A job that does not exist or was removed fails with a clear error. Read-only.

Input

ciphertext required

Upwork job ciphertext as it appears in the job URL — the segment after /jobs/, e.g. "~022067575483419247922". search_jobs returns it inside each job's url.

Output

uid required

Numeric job id (ciphertext without the ~02 prefix).

url required
title required
ciphertext required

Job ciphertext (URL token), the caller's join key.

description required
budget optional

Fixed-price budget. amount is 0 for hourly jobs.

client optional
skills optional
category optional
postedOn optional
workload optional

e.g. "Less than 30 hrs/week"; null on fixed-price jobs.

createdOn optional
questions optional
hideBudget optional
occupation optional
attachments optional
publishTime optional
hourlyBudget optional

Hourly rate range; min/max null and type NOT_PROVIDED when the client set no range.

categoryGroup optional
clientActivity optional
contractorTier optional

Experience level enum (1 entry, 2 intermediate, 3 expert).

qualifications optional
isContractToHire optional
engagementDuration optional
numberOfPositionsToHire optional

FAQ

Fetch a single Upwork job posting's full details by its ciphertext (the ~0… token in the job URL, returned by search_jobs). Covers title, full description, category, occupation, skills, budget or hourly range, workload and duration, experience level, screening questions and attachments. Also covers client activity (applicants, interviews, invites, hires) and the client: country, city, payment verified, member since, score and spend. Works signed out, so no Upwork account is needed; run it on the managed browser, since Upwork's Cloudflare check can block some paired browsers. A job that does not exist or was removed fails with a clear error. Read-only.
Ask an AI agent connected to Reduck to run reduck/upwork.com/get_job_description, or run it from a terminal with the Reduck CLI: npx @reduck-ai/cli@latest run --script reduck/upwork.com/get_job_description
You do not need one. "Get job description" drives the real upwork.com pages in a browser, so it works whether or not upwork.com offers an API for this.
Required: ciphertext.
It returns uid, url, title, budget, client, skills, category, postedOn, workload, createdOn, questions, ciphertext, hideBudget, occupation, attachments, description, publishTime, hourlyBudget, categoryGroup, clientActivity, contractorTier, qualifications, isContractToHire, engagementDuration, numberOfPositionsToHire.
No. It only uses pages of upwork.com that are reachable without signing in.
It only reads. It looks things up on upwork.com and changes nothing there.
Ask an AI agent connected to Reduck to run reduck/upwork.com/get_job_description, or run it from a terminal with the Reduck CLI: npx @reduck-ai/cli@latest run --script reduck/upwork.com/get_job_description
It is part of Reduck's official curated catalogue.

Start building not clicking