Extract Resume Text
Extracts plain text from an uploaded resume file (PDF, DOCX, TXT, Markdown, or JSON, max 5MB) for use as the `resume` field on `/ats/check` or `/ats/analyze`. Does not consume ATS scan quota — only the check/analyze endpoints do.
Your personal API key — vw_ followed by 64 hex characters. The same key is also accepted
as Authorization: Bearer vw_....
In: header
Request Body
multipart/form-data
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
curl -X POST "https://example.com/api/v1/ats/extract" \ -F resume="string"{ "success": true, "message": "string", "data": { "text": "string", "layout": { "columnRatio": 0, "tableCount": 0, "pageCount": 0 } }}Get ATS Scan QuotaGET
Returns the caller's current ATS scan quota status. This endpoint works for anonymous callers too (quota is keyed by a hashed IP when unauthenticated). There is a single shared scan-quota bucket for both the deterministic `/ats/check` scan and the AI-powered `/ats/analyze` deep analysis — they are **not** two separate quotas. Limits: - Anonymous: 1 scan / 48 hours - Free logged-in: 2 scans / 24 hours - Subscriber (active AI Credits or Bundle plan): 300 scans / billing period
Run Deterministic ATS ScanPOST
Runs the free, rule-based ATS readiness scan — no AI call is made. Works for anonymous callers. Consumes one unit from the shared ATS scan quota (see `GET /ats/quota`).