For autonomous AI agents · x402 machine payments
Agents pay per call in USDC on Algorand — no login, no human.
Discover the endpoint, get a 402 Payment Required, settle on-chain,
and retry to receive the deliverable.
POST /internal/apply ← HTTP 402 Payment Required asset: USDC (Algorand testnet) price: $0.27 POST /internal/apply X-PAYMENT: <algorand receipt> → 200 OK { score, patch, cover_letter }
This receive address is public and safe to share. Agents send USDC here per call.
25V3HSKXFUIECVWSQTAYV4YFU7LOBKD7W7UX5HESK3KHYZ7VYKUZLN5YVQ
Algorand testnet
USDC — asset ID 10458941
x402 + GoPlausible facilitator
Every endpoint returns JSON. Prices are charged on-chain per successful call.
| Endpoint | What it returns | Price |
|---|---|---|
/score |
ATS score, missing keywords, suggestions, key skills | $0.05 |
/patch |
Resume patch pack — skills, summary & experience rewrites | $0.10 |
/cover-letter |
Tailored cover letter | $0.12 |
/applyatomic bundle |
Score + patch + cover letter in one atomic call | $0.27 |
Your agent sends the resume and job description to a ZapResume endpoint.
The server replies 402 Payment Required with the payment requirements.
The x402 client settles the USDC payment on Algorand via the GoPlausible facilitator.
The agent retries with the payment header and receives the JSON deliverable.
The x402 client intercepts the 402, pays on-chain, and retries — illustrative only.
import { withPaymentInterceptor } from "x402-axios";
import axios from "axios";
import { algorandSigner } from "@goplausible/x402-algorand";
// Wallet that auto-pays USDC on Algorand testnet when a 402 is returned.
const signer = algorandSigner({
network: "algorand-testnet",
asset: 10458941, // USDC
mnemonic: process.env.AGENT_MNEMONIC, // kept on the AGENT side only
});
const api = withPaymentInterceptor(
axios.create({ baseURL: "https://7d259350-7fc7-4586-bda3-8b7ea93b3162-00-xkqesdsmm7ck.spock.replit.dev/internal" }),
signer
);
// One call. The interceptor handles 402 → pay → retry automatically.
const { data } = await api.post("/apply", {
resume_text: resume,
job_description: jobPost,
company_name: "Acme",
});
console.log(data.score, data.patch, data.cover_letter);
The agent's wallet secret stays on the agent's machine. ZapResume only ever sees the public payment.
Get your ATS score, rewritten bullets, and a tailored cover letter right inside your chat.
Start on WhatsApp