Product

Astris HR API

The matching, parsing, retention, and skills-inference capabilities that power astrishr.com — available as a clean REST API so your caseworker system, ATS, or staffing platform can embed them directly.

Endpoints

POST /api/v1/parse/resume

Multipart file or JSON text. Returns the parsed ParsedResume — skills, certifications, languages, work history, education. Falls back to vision for scanned PDFs.

POST /api/v1/parse/jd

Same shape as resume. Returns the parsed ParsedJobDescription — required + preferred skills, certs, comp, benefits, demographic friendliness signals.

POST /api/v1/match

Score a (candidateId, jobId) pair. Returns finalScore, recommendation, componentScores, subModels, retention forecast, gaps, transferable-skill bridges.

POST /api/v1/retention-forecast

Expected staying-length curve for a (candidate, job) pair. Returns 30/90/180/365 retention probabilities, confidence, expected tenure days, and feature snapshot.

POST /api/v1/skills-infer

Given prior occupations + already-known skills, infer the skills any practitioner of those occupations likely has. Curated map + LLM fallback. Provenance + confidence on every skill.

Auth + scopes

Bearer ahr_live_… (or ahr_test_… for testing). Each key is scoped: parse, match, retention, skills. Org/employer-scoped keys auto-restrict to that tenant.

Built for caseworker-software integrations

The refugee-services world runs on CaseWorthy, Apricot, ETO, Salesforce NPSP, and homegrown spreadsheets. Astris is built to be the matching + retention layer those systems plug into.

Embed patternYour caseworker UI calls /api/v1/match the moment a JD lands. Astris returns ranked candidates with rationales; your system shows them in your existing layout.
Tenant scopingIssue per-org or per-employer API keys. Astris enforces that calls only touch records inside that tenant — no surface area for data leakage between customers.
Webhook subscriptionsSubscribe to match.created, parse.completed, rating.submitted. Payloads are HMAC-signed. Lets your system stay in sync without polling.
Sandbox keysahr_test_… keys hit the same endpoints with no rate limits but optionally pull from a synthetic-data tenant. Use them in CI without polluting prod.
OpenAPI specAvailable on request. Generated from the route schemas; the published version always matches the deployed API.

cURL — copy and run

# Parse a resume (PDF, DOCX, or plain text)
curl -X POST https://www.astrishr.com/api/v1/parse/resume \
  -H "Authorization: Bearer ahr_live_xxx" \
  -F "file=@resume.pdf"

# Score a candidate against a job
curl -X POST https://www.astrishr.com/api/v1/match \
  -H "Authorization: Bearer ahr_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{"candidateId":"...","jobId":"..."}'

# Retention forecast for the same pair
curl -X POST https://www.astrishr.com/api/v1/retention-forecast \
  -H "Authorization: Bearer ahr_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{"candidateId":"...","jobId":"..."}'

# Infer likely skills from prior occupations
curl -X POST https://www.astrishr.com/api/v1/skills-infer \
  -H "Authorization: Bearer ahr_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{"occupations":["Forklift Operator","Warehouse Lead"]}'

Get a key

Public sign-up for API keys is coming. In the meantime, contact us and tell us which caseworker system or ATS you want to integrate with — we'll issue a sandbox key the same day.

See Astris HR in your workflow

Run it against your candidate base or a sample JD. We'll set up a tenant in under a day and show you the matches your existing tools are missing.

Request a demo