Scouting

Partner API v1

A small REST API for connecting an existing ATS to Scouting: pull your matched candidates, and push job postings in. Everything is scoped to the company that owns the API key.

Authentication

Create a key on the API keys page in your company dashboard. The full key is shown once — store it in your own secret manager. Send it as a bearer token on every request.

Authorization: Bearer sc_ab12cd34_xxxxxxxxxxxxxxxxxxxxxxxx

Base URL: https://scouting.ae/api/public/v1. Revoking a key takes effect immediately.

GET /candidates

Matched candidates for your jobs, highest score first. Identities stay redacted until that match is unlocked — the same rule the dashboard follows.

Query parameters: job_id (optional), min_score (optional, 0–100), limit (optional, max 200).

curl https://scouting.ae/api/public/v1/candidates?min_score=70 \
  -H "Authorization: Bearer $SCOUTING_API_KEY"

{
  "object": "list",
  "data": [
    {
      "match_id": "8f1c...",
      "job": { "id": "3ab2...", "title": "Store Manager" },
      "score": 84,
      "explanation": "Eight years of UAE retail management ...",
      "pipeline_stage": "new",
      "unlocked": false,
      "candidate": {
        "id": "b71e...",
        "headline": "Senior level",
        "skills": ["stock control", "team leadership"],
        "years_experience": 8,
        "location": "Dubai"
      }
    }
  ]
}

GET /jobs

Every job on your account with its status and stats.

curl https://scouting.ae/api/public/v1/jobs \
  -H "Authorization: Bearer $SCOUTING_API_KEY"

POST /jobs

Push a posting from your ATS. Include external_id and repeat calls update the existing posting with the same title instead of creating duplicates. Publishing with status: "active" puts the role into matching.

curl -X POST https://scouting.ae/api/public/v1/jobs \
  -H "Authorization: Bearer $SCOUTING_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "external_id": "ATS-4821",
    "title": "Store Manager",
    "description": "Run a 12-person team across two Dubai Mall locations ...",
    "requirements": "5+ years UAE retail management; stock and rota ownership",
    "salary": "AED 16,000 - 20,000 / month",
    "location": "Dubai",
    "remote_ok": false,
    "seniority": "Senior",
    "status": "active",
    "engagement_type": "full_time"
  }'

For project work send engagement_type: "freelance" with project_budget and project_duration.

Errors

Errors return a JSON body with a code and a message. 401 means a missing, unknown or revoked key; 400 means the body failed validation; 404 means the job id is not on your account.

{ "error": { "code": "unauthorized", "message": "Unknown API key." } }