Skip to main content
POST
/
api
/
v1
/
contracts
/
analyze-job-ad
Analyze Job Ad
curl --request POST \
  --url https://api.example.com/api/v1/contracts/analyze-job-ad \
  --header 'Content-Type: application/json' \
  --data '
{
  "s3_key": "<string>"
}
'
{
  "facility": "Short Term Acute Care Hospital",
  "location": "Providence, RI",
  "state": "RI",
  "agency": null,
  "weekly_gross_cents": 248550,
  "base_pay_cents": null,
  "housing_stipend_cents": null,
  "mie_stipend_cents": null,
  "sign_on_bonus_cents": null,
  "completion_bonus_cents": null,
  "referral_bonus_cents": null,
  "weeks": 13,
  "hours_per_week": 48,
  "shift_type": "night",
  "benefits_value_cents": null,
  "zip_code": "02903"
}
Sends an uploaded job ad screenshot to Claude AI for structured extraction. Optimized for screenshots from travel nursing job boards and staffing apps (Vivian, AMN, Aya, Medical Solutions, etc.). Unlike formal contracts, job ads often show a blended weekly pay range without a stipend breakdown. When no breakdown is available, weekly_gross_cents contains the midpoint and the individual pay fields are null.

Request Body

s3_key
string
required
S3 key of the previously uploaded screenshot file.

Response

{
  "facility": "Short Term Acute Care Hospital",
  "location": "Providence, RI",
  "state": "RI",
  "agency": null,
  "weekly_gross_cents": 248550,
  "base_pay_cents": null,
  "housing_stipend_cents": null,
  "mie_stipend_cents": null,
  "sign_on_bonus_cents": null,
  "completion_bonus_cents": null,
  "referral_bonus_cents": null,
  "weeks": 13,
  "hours_per_week": 48,
  "shift_type": "night",
  "benefits_value_cents": null,
  "zip_code": "02903"
}
All monetary values are returned in cents. Fields that couldn’t be extracted are null.
facility
string
Hospital or facility name.
location
string
City and state (e.g., “Providence, RI”).
state
string
2-letter US state code.
agency
string
Staffing company or platform name.
weekly_gross_cents
integer
Total weekly pay in cents. If a pay range is shown (e.g., “2,4112,411–2,560/wk”), this is the midpoint.
base_pay_cents
integer
Weekly taxable base pay in cents, if broken out separately. null when only a blended total is shown.
housing_stipend_cents
integer
Weekly housing stipend in cents, if broken out separately. null when only a blended total is shown.
mie_stipend_cents
integer
Weekly M&IE stipend in cents, if broken out separately. null when only a blended total is shown.
weeks
integer
Contract duration in weeks.
hours_per_week
integer
Scheduled hours per week.
shift_type
string
One of day, night, or rotating. Inferred from schedule descriptions (e.g., “12 N” → night).
zip_code
string
5-digit US ZIP code if visible in the screenshot.

Rate Conversion Rules

Claude applies these conversions automatically:
  • Hourly → weekly: × hours/week (or 36 if not specified)
  • Daily → weekly: × 7 days
  • Monthly → weekly: ÷ 4.33
  • Pay range → midpoint
  • Dollar amounts → cents: × 100

Errors

StatusCause
400Missing s3_key
422Claude could not parse the job ad
503Anthropic API key not configured