SwiftLynx API Documentation
Simple, secure endpoints to analyze resumes against job descriptions and return a match score, insights, and a shareable report.
Overview
Base URL: https://swiftlynx.ai
Content-Type: application/json
Auth: Authorization: Bearer <access_token>
Authentication (OAuth / Zapier)
- In Zapier, choose SwiftLynx Resume Analyzer and click Connect.
- Enter your email → open the magic link we send → you’ll be returned to Zapier and connected.
- Zapier will then hold a refreshable
access_token
used to call the endpoints below.
Server Tokens (Advanced)
For server-to-server integrations (outside Zapier), contact us for a scoped long-lived token tied to your account.
Security: HTTPS only. Store and rotate tokens securely.
GET /api/oauth/authorize (PKCE)
Starts the OAuth flow. Parameters (query):
client_id
(required)response_type=code
(required)redirect_uri
(required)state
(recommended)code_challenge
&code_challenge_method=S256
(recommended)
POST /api/oauth/token
Exchange & refresh tokens. x-www-form-urlencoded body:
Authorization Code:
grant_type=authorization_code
code=...
code_verifier=...
client_id=zapier
redirect_uri=...
Refresh:
grant_type=refresh_token
refresh_token=...
client_id=zapier
Response includes: access_token
, refresh_token
, token_type
, expires_in
, email
.
Endpoints
Returns the authenticated account and remaining credits.
cURL
curl -s https://swiftlynx.ai/api/me \
-H "Authorization: Bearer $ACCESS_TOKEN"
Response 200
{
"email": "you@company.com",
"plan": "free",
"creditsRemaining": 198
}
Analyze a resume against your job description. Provide either a resumeUrl
(PDF link) or resumeText
.
Request Body
{
"jobTitle": "Engineering Manager",
"jobDescription": "We are seeking an EM to lead a platform team...",
"resumeUrl": "https://files.example.com/cv/alex-chen.pdf",
// or:
// "resumeText": "Alex Chen\nSummary: ...",
"candidateName": "Alex Chen",
"fileName": "alex-chen.pdf"
}
Response 200
{
"matchScore": 92,
"strengths": [
"Extensive experience leading platform teams",
"Strong Java/Kubernetes background"
],
"risks": [
"Recent entrepreneurship may impact long-term tenure"
],
"summary": "Alex is a strong match for EM with relevant leadership...",
"recommendation": "Highly recommend proceeding to onsite.",
"scoreExplanation": "Weighted scoring across skills, tenure, scope…",
"requestId": "req_01JABCDXYZ9T4",
"shareUrl": "https://swiftlynx.ai/r/req_01JABCDXYZ9T4?exp=17647...&token=47e0c0e1ae..."
}
Example cURL
curl -s https://swiftlynx.ai/api/analyze \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d @- <<'JSON'
{
"jobTitle": "Engineering Manager",
"jobDescription": "We are seeking an EM to lead a platform team...",
"resumeUrl": "https://files.example.com/cv/alex-chen.pdf",
"candidateName": "Alex Chen"
}
JSON
Field Limits
jobDescription
: 200–8000 charactersresumeText
: up to 8000 characters- Each analysis of one resume consumes 1 credit.
Rate Limits
Default: 60 requests per minute per account. Contact us for higher throughput.
Errors
401
– invalid or missing token402
– insufficient credits429
– rate limited5xx
– transient server error
Example 402:
{
"error": "insufficient_credits",
"message": "Purchase more credits to continue."
}
Notes
- Purchase credits in Buy.
- Questions? support@swiftlynx.ai