Quickstart

From zero to first API call in 5 minutes

Issue a key, send one request, verify the response.

1. Get a key

New developer? Apply for an API key — a super admin reviews each request and approved applicants get an auto-issued live key by email. Already approved? Sign in at /auth/signin and your key is waiting at /developers/keys.

  • Pick a name (e.g. "ATS — production").
  • Pick scopes. The page pre-checks the ones that fit your role.
  • Optionally check Test key to get an ahr_test_ prefix.
  • The plaintext is shown once on the next screen — copy it now.

2. Send a request — cURL

KEY="ahr_live_xxx"   # paste yours here

curl -X POST https://www.astrishr.com/api/v1/parse/jd \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"Forklift Operator — OSHA-10, $22-26/hr, day shift, Newark NJ."}'

3. Same call — Node.js

const KEY = process.env.ASTRIS_API_KEY;

const res = await fetch("https://www.astrishr.com/api/v1/parse/jd", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    text: "Forklift Operator — OSHA-10, $22-26/hr, day shift, Newark NJ.",
  }),
});

const data = await res.json();
console.log(data.parsed.title);            // "Forklift Operator"
console.log(data.parsed.hourlyMinUsd);      // 22
console.log(data.parsed.requiredCertifications); // ["OSHA-10"]

4. Same call — Python

import os, requests

KEY = os.environ["ASTRIS_API_KEY"]

r = requests.post(
    "https://www.astrishr.com/api/v1/parse/jd",
    headers={"Authorization": f"Bearer {KEY}"},
    json={"text": "Forklift Operator — OSHA-10, $22-26/hr, day shift, Newark NJ."},
)
r.raise_for_status()
print(r.json()["parsed"]["title"])              # "Forklift Operator"
print(r.json()["parsed"]["hourlyMinUsd"])       # 22

5. Sync a job from your careers page

This is the most common employer integration. POST the JD body and Astris parses, dedupes (by optional externalId), and creates a Job under your employer.

curl -X POST https://www.astrishr.com/api/v1/jobs/sync \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Apartment Maintenance Tech — EPA 608, $26-32/hr, Newark NJ.",
    "externalId": "ATS-12345",
    "location": "Newark, NJ"
  }'

Response:

{
  "jobId": "c4fcc511-…",
  "slug": "apartment-maintenance-tech-…",
  "action": "created",
  "parsed": { "title": "Apartment Maintenance Tech", "requiredCertifications": ["EPA Section 608"], … }
}

Re-POST the same externalId later → response is "action": "updated". Use this from a cron job nightly OR a webhook from your ATS.

Where next

  • Full endpoint reference — request/response per endpoint, error codes, code samples
  • Use cases — auto-sync jobs, push candidates from CaseWorthy, embed match scores
  • Webhooks — events, HMAC verification, ATS adapters