{"schema_version":"0.1.0","name":"ResumeAgent","description":"AI-powered resume optimization API. Scores resumes against ATS screening algorithms, tailors content for specific job descriptions, and provides match analysis.","url":"https://resumeagent-app.vercel.app","logo":"https://resumeagent-app.vercel.app/favicon.ico","contact_email":"support@resumeagent-app.vercel.app","legal":{"terms_of_service":"https://resumeagent-app.vercel.app/terms","privacy_policy":"https://resumeagent-app.vercel.app/privacy"},"auth":{"type":"bearer","description":"Supabase session token required. Create account at /auth"},"capabilities":[{"id":"parse_resume","name":"Parse Resume File","description":"Extract plain text from a resume file (PDF, DOCX, or TXT). Max 5MB. Returns structured text content.","endpoint":"/api/parse-resume","method":"POST","content_type":"multipart/form-data","input":{"file":{"type":"file","required":true,"description":"Resume file in PDF, DOCX, or TXT format (max 5MB)","accepted_types":["application/pdf","application/vnd.openxmlformats-officedocument.wordprocessingml.document","text/plain"]}},"output":{"success":{"type":"boolean"},"text":{"type":"string","description":"Extracted resume text"}}},{"id":"scan_resume","name":"ATS Resume Scan","description":"Score a resume against ATS screening criteria. Returns a score (0-100), strengths, weaknesses, actionable suggestions, and format warnings. Evaluates parsability, keyword density, impact quantification, action verbs, relevance, and structure.","endpoint":"/api/scan-resume","method":"POST","content_type":"application/json","input":{"resume":{"type":"string","required":true,"description":"Plain text content of the resume (max 10000 chars)"}},"output":{"score":{"type":"integer","description":"ATS screening score 0-100. Most resumes score 30-50."},"strengths":{"type":"string[]","description":"Up to 3 specific strengths"},"weaknesses":{"type":"string[]","description":"Up to 4 actionable issues"},"suggestions":{"type":"string[]","description":"Up to 3 high-impact fixes ordered by impact"},"formatWarnings":{"type":"string[]","description":"ATS format compatibility warnings"}}},{"id":"tailor_resume","name":"Tailor Resume","description":"Rewrite a resume to match a specific job description or target role. Injects keywords, reframes experience, and restructures sections. Supports career pivot mode.","endpoint":"/api/tailor","method":"POST","content_type":"application/json","input":{"resume":{"type":"string","required":true,"description":"Plain text resume content (max 10000 chars)"},"jobDescription":{"type":"string","required":false,"description":"Job posting text to tailor for (max 5000 chars). Required if no targetRole."},"targetRole":{"type":"string","required":false,"description":"Target role name (e.g. 'Software Engineer'). Use when no specific JD available."},"isCareerPivot":{"type":"boolean","required":false,"description":"Enable career pivot mode for cross-industry transitions"}},"output":{"tailoredResume":{"type":"string","description":"Complete rewritten resume"},"fitBefore":{"type":"integer","description":"Original fit score 0-100"},"fitAfter":{"type":"integer","description":"Optimized fit score 0-100"},"keywordGaps":{"type":"string[]","description":"Keywords still missing after optimization"},"bulletRewrites":{"type":"array","description":"Before/after comparison of key bullet improvements"}}},{"id":"quick_match","name":"Quick Match","description":"Instantly evaluate how well a resume matches a specific job description. Returns a match score with verdict and gap analysis.","endpoint":"/api/quick-match","method":"POST","content_type":"application/json","input":{"resume":{"type":"string","required":true,"description":"Plain text resume content (max 10000 chars)"},"jobDescription":{"type":"string","required":true,"description":"Job posting text (max 5000 chars)"}},"output":{"matchScore":{"type":"integer","description":"Match score 0-100. Most candidates score 40-70."},"verdict":{"type":"string","description":"One of: Strong match, Decent match, Weak match, Poor match"},"topGaps":{"type":"string[]","description":"Up to 3 most critical gaps between resume and JD"}}}],"flows":[{"id":"full_optimization","name":"Full Resume Optimization","description":"Complete workflow: parse file, scan for ATS score, match against JD, then tailor. Use this flow when a user has a resume file and a job description.","steps":[{"capability":"parse_resume","description":"Extract text from the resume file"},{"capability":"quick_match","description":"Check initial match score against the job description"},{"capability":"scan_resume","description":"Get detailed ATS screening feedback"},{"capability":"tailor_resume","description":"Rewrite the resume optimized for the job"}]},{"id":"quick_check","name":"Quick Resume Check","description":"Fast workflow: parse file and scan. Use when user just wants to know their ATS score without a specific job target.","steps":[{"capability":"parse_resume","description":"Extract text from resume"},{"capability":"scan_resume","description":"Score against ATS criteria"}]}],"cli":{"description":"Local CLI tool for agent integration (no auth required, uses MOONSHOT_API_KEY)","install":"git clone + npm install","commands":["npm run cli -- scan <resume.pdf>","npm run cli -- tailor <resume.pdf> --jd <job.txt>","npm run cli -- match <resume.pdf> --jd <job.txt>"]}}