# Seenly Video Pitch Kit > Turn a resume into a recruiter-ready, first-person video-pitch script: a 45–60 second script (hook, value, proof, close), a 15 second cut, a headline, 3 key strengths, and timed on-screen captions. Built on Seenly's video-introduction method. ## Pricing (per successful call) - $0.50 in USDC per successful call (x402 on Base mainnet) - Card payments: coming soon Status: LIVE: real USDC payments. Rails enabled here: - x402: $0.50 — USDC on Base mainnet (asset 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, amount 500000 base units, payTo 0xeE6239F3E17bEBe5e89F21F29D74D68CAa0d78CE); send PAYMENT-SIGNATURE ## How to pay 1. POST the request without payment. If payment is on, you get HTTP 402 with: - PAYMENT-REQUIRED header (x402 v2): sign it with an x402 client (e.g. @x402/fetch) and retry with PAYMENT-SIGNATURE. - WWW-Authenticate: Payment ... (MPP, only where an MPP rail is listed above): pay with an MPP client (e.g. mppx) and retry with Authorization: Payment ... 2. The 200 response carries PAYMENT-RESPONSE (x402 settlement, tx hash) or Payment-Receipt (MPP). - Input is validated before any payment is requested (bad input → 4xx, no charge). - x402 settles only after a successful response; a failed generation is not charged. - x402 payments are EIP-3009 USDC authorizations; the facilitator submits them and pays gas, so the payer needs USDC only (no ETH). ## Use it - Endpoint: POST https://seenly-pitch-kit.vercel.app/api/script - Machine-readable spec: https://seenly-pitch-kit.vercel.app/openapi.json - Kit manifest (v0.1): https://seenly-pitch-kit.vercel.app/kit.json - A2A agent card: https://seenly-pitch-kit.vercel.app/.well-known/agent-card.json (A2A endpoint https://seenly-pitch-kit.vercel.app/a2a is free and quote-only) - x402 resource list: https://seenly-pitch-kit.vercel.app/.well-known/x402 - Sample request/response: https://seenly-pitch-kit.vercel.app/samples/pitch-script.json - Content types: application/json, multipart/form-data, text/plain - JSON body: {"resumeText": "...", "targetRole": "optional", "tone": "confident|warm|energetic|executive|casual"} or {"file": {"filename": "cv.pdf", "base64": "..."}, ...} - Exactly one of resumeText or file. PDF and DOCX supported. - Limits: resume 200–20000 chars, file ≤ 3 MB, PDF ≤ 8 pages. - Response: JSON with headline, script{hook,value,proof,close,fullText,wordCount,estimatedSeconds}, shortScript{text,...}, keyStrengths[3], captions[{section,text,startSec,endSec}], notes[]. ## Rules - Only send content you are allowed to use (the candidate's own resume or text they gave you). - This API never fetches URLs and never scrapes LinkedIn or other sites. A bare profile link is rejected with 422 url_not_supported. - The script only uses facts present in the input; missing metrics are flagged in notes, not invented. - Inputs are processed in memory and not stored. ## Example curl -s https://seenly-pitch-kit.vercel.app/api/script -H 'content-type: application/json' -d '{"resumeText":"","targetRole":"Data Analyst","tone":"confident"}' ## Coming later (not live) - Video tier ($4.99): renders the script as a stock-avatar video.