Skip to main content
POST
Create or update a job

Authorizations

Authorization
string
header
required

OAuth 2.1 authorization code + PKCE (S256). Tokens are tenant-bound (company_id) and scoped. Discover endpoints via /.well-known/oauth-authorization-server.

Body

application/json

Create (no id) or update (with id) a job. companyId is injected from the token and must NOT be sent. The validator is permissive (extra fields are passed through). On CREATE the OAuth completeness gate additionally requires a recognized jobType, a cover image (imageUrl or imageDataUrl), creatorType when jobType is "Content Creator", and payFrequency for fixed/mixed payment. The matching rate field for the chosen paymentType must be a positive numeric value.

title
string
required

Job title (required).

Minimum string length: 1
paymentType
enum<string>
required

How creators get paid (required). The matching rate field is required and must be a positive number.

Available options:
fixed,
hourly,
commission,
performance,
mixed,
pay-per-post
id
string

Job id. Present => update; absent => create (a create spends 1 posting credit).

description
string

Job description (optional for the upsert validator; the MCP tool marks it required to guide agents).

jobType
enum<string>

Job category. Required on CREATE (completeness gate); must be one of the listed values.

Available options:
Sales,
Marketing,
Content Creator,
Ambassador,
Other
creatorType
enum<string>

Kind of creator. Required on CREATE when jobType is "Content Creator".

Available options:
ugc_ads,
high_volume_ugc,
influencer,
creator_manager,
other
fixedAmount
string

Flat pay per creator (numeric string). Required for fixed/mixed paymentType.

hourlyRate
string

Pay per hour (numeric string). Required for hourly paymentType.

cpmRate
string

Pay per 1,000 views (numeric string). Required for performance/mixed paymentType.

perPostRate
string

Pay per post (numeric string). Required for pay-per-post paymentType.

pay
string

Free-text pay/commission description. Required for commission paymentType.

payFrequency
enum<string>

Pay cadence. Required on CREATE for fixed/mixed payment.

Available options:
One Time,
Per Day,
Per Week,
Per Month,
Per Semester
hoursPerWeek
string

Expected hours per week (free text).

bonuses
object[]

Optional milestone bonus structure.

contentType
enum<string>

Type of content the creator should produce.

Available options:
UGC,
Short-form,
Tutorial,
Reaction,
Lifestyle,
Review
accountType
enum<string>

Which kind of social account the creator should post from.

Available options:
new_account,
personal_account,
company_account
videoLength
string

Required/expected video length (free text).

postingFrequency
string

Expected posting cadence (free text).

programId
string

Link the job to a single program (campaign) by id — posts that existing campaign to the marketplace (the "Post & Get Applications" flow) so creators can discover it and apply.

programIds
string[]

Link the job to multiple programs (campaigns) by id — posts those existing campaigns to the marketplace so creators can discover them and apply.

imageUrl
string

Cover image as a hosted HTTPS URL (or same-origin relative path). Required on CREATE unless imageDataUrl is provided. blob:/data:/javascript: schemes are rejected.

imageDataUrl
string

Inline cover image as a base64 data URL (PNG/JPEG/WebP). Uploaded as part of the job after the gated upsert succeeds and stored as imageUrl. (MCP arg name: image_data_url.)

companyName
string

Display company name for the posting.

schools
string[]

Restrict the job to creators from these schools.

shifts
string[]

Available shifts (free-text entries).

resumeRequired
boolean

Whether applicants must submit a resume.

isApp
boolean

Whether the promoted product is an app.

isPhysicalProduct
boolean

Whether the promoted product is a physical product.

isHidden
boolean

Whether the job is hidden from the public feed.

postingStatus
enum<string>

Posting status (defaults to completed on create).

Available options:
completed,
archived,
deleted
requirements
object

Advanced/legacy requirements object (prefer the dedicated fields).

platformFocus
enum<string>[]

Platforms the creator should post on.

Available options:
TikTok,
Instagram,
YouTube,
Twitter,
Facebook,
Snapchat
tiktokRequired
boolean

Whether TikTok is required.

instagramRequired
boolean

Whether Instagram is required.

ageRequirement
enum<string>

Minimum age requirement for applicants.

Available options:
any,
18+,
21+
twentyOneRequired
boolean

Whether age 21+ is required.

exampleVideos
object[]

Reference/example videos illustrating the desired content.

Response

Result of creating or updating the job. NOTE: the route actually returns HTTP 201 on success (route.ts:44); the manifest successCode is 200 — see todos.

data
object
required

Result of creating or updating a job.