Skip to main content

Overview

The Analytics API provides comprehensive metrics and insights for your recruitment process. It exposes data for candidates, interviews, and candidate interviews (phone screens), allowing you to track performance, completion rates, and feedback.

Get Analytics

Retrieve comprehensive analytics data grouped by resource type. Endpoint: GET /qsi/gather/analytics
curl -X GET https://api.prod.qualifi.hr/qsi/gather/analytics \
  -H "x-api-key: ${API_KEY}"

Custom Date Range

curl -X GET "https://api.prod.qualifi.hr/qsi/gather/analytics?startDate=2023-01-01&endDate=2023-03-31" \
  -H "x-api-key: ${API_KEY}"

Filter by User

curl -X GET "https://api.prod.qualifi.hr/qsi/gather/analytics?userId=user-uuid" \
  -H "x-api-key: ${API_KEY}"

Filter by Interview Template

curl -X GET "https://api.prod.qualifi.hr/qsi/gather/analytics?interviewId=interview-uuid" \
  -H "x-api-key: ${API_KEY}"
{
  "data": {
    "candidates": {
      "total": 150,
      "archived": 45
    },
    "interviews": {
      "total": 10,
      "active": 8,
      "archived": 2,
      "standard": 8,
      "questionnaire": 2
    },
    "candidateInterviews": {
      "total": 100,
      "statusBreakdown": {
        "inviteSent": 20,
        "newResponse": 15,
        "hasReviewed": 30,
        "partiallyCompleted": 5,
        "hired": 5,
        "archived": 20,
        "expired": 5
      },
      "completed": 50,
      "incomplete": 25,
      "completionRate": 0.5,
      "averageResponseTime": "2 days",
      "averageResponseTimeInHours": 48,
      "hoursSaved": 25,
      "positiveFeedbackPercentage": 80
    },
    "dateRange": {
      "startDate": "2023-01-01T00:00:00.000Z",
      "endDate": "2023-01-31T23:59:59.999Z"
    }
  },
  "meta": {
    "requestId": "req-123",
    "timestamp": "2023-02-01T12:00:00.000Z",
    "cached": false
  }
}

Response Structure

Candidates Analytics

Metrics related to candidate entities.
  • total: Total unique candidates found in the date range
  • archived: Candidates that have been archived

Interviews Analytics

Metrics related to interview templates. These metrics are generally scoped to the team and organization, not strictly by date range (showing currently available templates).
  • total: Total interview templates
  • active: Currently active templates
  • archived: Archived templates
  • standard: Standard audio interviews
  • questionnaire: Text-based questionnaire interviews

Candidate Interviews Analytics

Metrics related to interview instances (phone screens) assigned to candidates. This is the primary section for performance metrics.
  • total: Total interview instances in the date range
  • statusBreakdown: Detailed count of interviews by current status
    • inviteSent: Invites that have been sent
    • newResponse: New responses awaiting review
    • hasReviewed: Responses that have been reviewed
    • partiallyCompleted: Partially completed interviews
    • hired: Candidates marked as hired
    • archived: Archived interviews
    • expired: Expired interviews
  • completed: Count of completed interviews
  • incomplete: Count of incomplete interviews
  • completionRate: Ratio of completed interviews to total interviews (0.0 to 1.0)
  • averageResponseTime: Human-readable average time from invite to completion
  • averageResponseTimeInHours: Numeric average response time in hours
  • hoursSaved: Estimated hours saved based on completed interviews (0.5 hours per interview)
  • positiveFeedbackPercentage: Percentage of interviews rated positively

Caching Behavior

To ensure performance, analytics results are cached based on the queried date range:
  • Date range ≤ 1 day: Cached for 5 minutes
  • Date range 2-7 days: Cached for 15 minutes
  • Date range 8-30 days: Cached for 1 hour
  • Date range > 30 days: Cached for 2 hours
The meta.cached field in the response indicates if the data was served from cache (true) or computed fresh (false).

Error Responses

{
  "code": "UNAUTHORIZED",
  "message": "Missing organization context",
  "meta": {
    "requestId": "req-123",
    "timestamp": "2023-02-01T12:00:00.000Z"
  }
}