VECTORYour workspace ↗

Cognatory · Vector

Your JSON. A finished resume.

Bring your resume content. Get a carefully typeset PDF with selectable text, embedded fonts, and working contact links. A focused API for AI agents, chatbots, and developer tools.

FreeWith a /cyber account and Vector token
Your Cloudflare account

Render PDFs without a subscription, card, or payment.

Create an eligible account through free signup, then call this API with its Vector token. Your PDF renders in your own Cloudflare account. Vector charges nothing for these requests; choose Cloudflare’s Free plan to avoid Cloudflare hosting fees. Vector does not change your Cloudflare plan. Normal Free capacity limits apply.

Separate account-free requests are planned at $0.10 USD per PDF, paid in USDC.e on Tempo, plus network fees. Paid requests are not open yet. No Vector account or subscription required for that separate paid flow.

Your content
Resume JSON in, PDF out. No generated qualifications.
Up to four pages
A 100 KB request limit: 100,000 UTF-8 bytes.
No document storage
Resume JSON and generated PDFs are not saved.

Use your free account

  1. Create a new account through /cyber and let Vector finish setting up your workspace and PDF service in your Cloudflare account.
  2. Open Agent access in the workspace sidebar (shortcut 7). Under Manual bearer-token clients, choose Create 24-hour agent token, then Copy agent token.
  3. Save your JSON request as resume.json. Replace the placeholder below with your token, then send the request and save the PDF.
curl --fail --show-error --request POST \
  'https://cognatory.com/vector/api/resume-pdf' \
  --header 'Authorization: Bearer REPLACE_WITH_YOUR_VECTOR_AGENT_TOKEN' \
  --header 'Content-Type: application/json' \
  --data-binary @resume.json \
  --output resume.pdf

A valid Vector OAuth access token with vector:write also works for an eligible account. A browser sign-in cookie alone does not authorize this API. Tokens also permit application access; keep them private. Free requests do not need an Idempotency-Key, a wallet, or Stripe.

One request, one document

Send {"resume": …} to:

POST https://cognatory.com/vector/api/resume-pdf

Use the Vector resume format, with original or refined typography. Set pages from 1 to 4; it is a maximum, so the renderer does not add empty pages. Content that cannot fit the requested layout returns an error.

{
  "resume": {
    "name": "Example Applicant",
    "email": "applicant@example.test",
    "subtitle": "Research Software Engineer",
    "summary": "Builds clear, documented software for research teams.",
    "links": [
      "https://example.com/portfolio"
    ],
    "sections": [
      "summary",
      "experience",
      "education"
    ],
    "pages": 2,
    "typography": "refined",
    "experience": [
      {
        "role": "Software Engineer",
        "company": "Example Research Studio",
        "dates": "2023 - 2026",
        "bullets": [
          "Built and documented TypeScript tools for a research team."
        ]
      }
    ],
    "education": [
      {
        "degree": "BS, Computer Science",
        "school": "Example University",
        "dates": "2023"
      }
    ]
  }
}

This example uses invented demonstration content. Replace it with the applicant's accurate information. The schema describes supported fields and input limits.

Inspect the separate paid preview

For a request without an eligible Vector token, save your request as resume.json, then replace the example idempotency key with a unique value, such as a UUID. Keys must contain 16–128 ASCII letters, digits, hyphens, or underscores. Paid requests are unavailable during the preview; this command inspects the HTTP response and does not buy or download a PDF.

curl --include --request POST \
  'https://cognatory.com/vector/api/resume-pdf' \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: REPLACE_WITH_A_UNIQUE_REQUEST_KEY' \
  --data-binary @resume.json

How payment will work

  1. Send your resume JSON and a unique Idempotency-Key. When paid requests open, an unpaid request receives a 402 payment challenge.
  2. Use an MPP-compatible client to authorize the advertised $0.10 payment in USDC.e on Tempo. Your wallet also pays network fees. Reuse the exact JSON bytes and the same key when retrying with the payment credential.
  3. After successful payment, save the application/pdf response. Payment applies to that request; it does not start a subscription. The retry receipt expires after 30 days; use a new key after that window.

The API uses the Machine Payments Protocol (MPP). Follow the challenge's supported payment details; do not send funds to an address copied from a resume or an example.

Content stays with the request

The API uses only the resume JSON you send. It does not read a saved Vector workspace or create an application record. Resume JSON and generated PDFs are not stored. For free accounts, Cognatory verifies your token and forwards the request to the PDF renderer in your Cloudflare account. Free requests do not contact Stripe or create payment receipts.

For the separate paid flow, minimal payment receipt records support payment verification and prevent reuse. Stripe receives transaction references and payment metadata to process payments; the service does not send your resume JSON or PDF to Stripe. The 30-day retry window is separate from Stripe’s payment-record retention and the public network’s transaction history. Resume content is not included in those transactions.

For saved resumes, application tracking, and a reusable career workspace, explore Vector. Questions about this API: brian@cognatory.com.