APIDocumentation

Programmatic access to AI and crypto job listings, company data, and market statistics.

Overview

The ClawJobs API gives you programmatic access to our database of AI and crypto job listings. We track positions at 500+ companies including OpenAI, Anthropic, Coinbase, and more.

Base URL: https://api.clawjobs.cc/v1

All responses are JSON. The standard response envelope wraps data in a data field with optional meta for pagination.

{
  "data": [...],
  "meta": {
    "total": 1234,
    "limit": 20,
    "offset": 0,
    "has_more": true
  }
}

Authentication

Pass your API key via the Authorization header or the X-API-Key header:

curl https://api.clawjobs.cc/v1/jobs \
  -H "Authorization: Bearer clawjobs_your_api_key"

Unauthenticated requests are treated as free tier with lower rate limits and reduced data fields.

Rate Limits

TierRate LimitMax ResultsData Access
Anonymous / Free10 req/min20 per page, max offset 100Basic fields only
Pro120 req/min100 per page, no offset limitFull data including descriptions and URLs

Rate limits reset on a rolling 60-second window. Exceeding limits returns HTTP 429.

Endpoints

MethodPathDescription
GET/v1/jobsList job listings with filters
GET/v1/jobs/statsAggregated job market statistics
GET/v1/jobs/:idGet job details
GET/v1/searchSearch jobs by keyword
GET/v1/companiesList companies
GET/v1/companies/:idGet company with jobs
GET/v1/categoriesList company categories

GET /v1/jobs

Returns a paginated list of active job listings, sorted by creation date.

Query Parameters

ParamTypeDescription
limitintegerResults per page (default 20, max 20 free / 100 pro)
offsetintegerPagination offset (max 100 for free tier)
qstringFilter by keyword in title/description
locationstringFilter by location (e.g. 'San Francisco', 'Remote')
categorystringFilter by company category (e.g. 'defi', 'ai')
departmentstringFilter by department (e.g. 'Engineering', 'Marketing')
companystringFilter by company ID
remotestringSet to 'true' for remote-only jobs
sortstring'created_at' (default) or 'last_seen'

Example (Pro)

curl "https://api.clawjobs.cc/v1/jobs?limit=3&category=ai" \
  -H "Authorization: Bearer clawjobs_your_key"

{
  "data": [
    {
      "id": 4521,
      "company_id": "anthropic",
      "company_name": "Anthropic",
      "company_logo": "https://...",
      "company_category": "ai",
      "title": "Senior ML Engineer",
      "url": "https://boards.greenhouse.io/anthropic/...",
      "location": ["San Francisco, CA"],
      "employment_type": "Full-time",
      "remote": false,
      "department": "Engineering",
      "created_at": "2026-03-28T10:00:00Z",
      "updated_at": "2026-04-01T08:30:00Z"
    }
  ],
  "meta": {
    "total": 847,
    "limit": 3,
    "offset": 0,
    "has_more": true
  }
}

Example (Free)

curl "https://api.clawjobs.cc/v1/jobs?limit=3"

{
  "data": [
    {
      "id": 4521,
      "title": "Senior ML Engineer",
      "company_name": "Anthropic",
      "location": ["San Francisco, CA"],
      "remote": false,
      "department": "Engineering",
      "created_at": "2026-03-28T10:00:00Z"
    }
  ],
  "meta": {
    "total": 847,
    "limit": 3,
    "offset": 0,
    "has_more": true
  }
}

GET /v1/jobs/stats

Returns aggregated job market statistics. No tier gating - available to all users.

curl "https://api.clawjobs.cc/v1/jobs/stats"

{
  "data": {
    "total": 2847,
    "remote": 892,
    "added_today": 47,
    "by_category": [
      { "category": "ai", "count": 1234 },
      { "category": "defi", "count": 567 }
    ],
    "by_department": [
      { "department": "Engineering", "count": 1823 },
      { "department": "Research", "count": 312 }
    ],
    "by_location": [
      { "location": "San Francisco", "count": 487 },
      { "location": "New York", "count": 312 }
    ]
  }
}

GET /v1/jobs/:id

Returns full details for a single job. Pro users get all fields including the full description and apply URL. Free users get basic fields only.

curl "https://api.clawjobs.cc/v1/jobs/4521" \
  -H "Authorization: Bearer clawjobs_your_key"

GET /v1/companies

Returns a paginated list of companies with active job counts.

Query Parameters

ParamTypeDescription
qstringFilter by company name
categorystringFilter by category
has_jobsstring'true' to only show companies with active jobs
sortstring'tvl' (default), 'jobs', or 'name'
limitintegerResults per page
offsetintegerPagination offset
curl "https://api.clawjobs.cc/v1/companies?has_jobs=true&sort=jobs&limit=3"

{
  "data": [
    {
      "id": "anthropic",
      "name": "Anthropic",
      "category": "ai",
      "logo": "https://...",
      "job_count": 45
    }
  ],
  "meta": {
    "total": 523,
    "limit": 3,
    "offset": 0,
    "has_more": true
  }
}

GET /v1/companies/:id

Returns company details with a list of all active jobs. Pro users get full company data including website URL and social links.

curl "https://api.clawjobs.cc/v1/companies/anthropic" \
  -H "Authorization: Bearer clawjobs_your_key"

GET /v1/categories

Returns all company categories with counts. Useful for building filter UIs.

curl "https://api.clawjobs.cc/v1/categories"

{
  "data": [
    { "category": "ai", "count": 187 },
    { "category": "defi", "count": 134 },
    { "category": "infrastructure", "count": 98 }
  ]
}

Error Responses

All errors follow the same format:

{
  "error": {
    "code": "UNAUTHORIZED",
    "message": "Invalid API key"
  }
}
StatusCodeMeaning
400VALIDATION_ERRORBad request (e.g. missing required parameter)
401UNAUTHORIZEDInvalid or expired API key
404NOT_FOUNDResource not found
429-Rate limit exceeded
500INTERNAL_ERRORServer error

Free vs Pro Data

Free tier returns a subset of fields to give you a taste of the data. Upgrade to Pro for full access.

FieldFreePro
id, title, company_nameYesYes
location, remote, departmentYesYes
created_atYesYes
url (apply link)NoYes
descriptionNoYes
company_logo, company_url, twitterNoYes
employment_type, updated_atNoYes