# insights.get_dashboard

Read the statistics for one board

GET /boards/{boardId}/insights — answers 200

MCP tool: insights_get_dashboard

Scope: insights:read. Kind: read. Acts on: both.

Answers how a job search is going: how many applications there are and how many are still live, the interview and offer rates, how long applications wait in each stage, where the applications came from, which ones have gone stale, and the mix of roles and pay. Every figure is computed over `range`, and `generatedAt` is the instant the numbers were taken. Staff of an organization the board is shared with may read it too, and see exactly what the applicant sees. A board this credential cannot read answers 404. The applications the figures are computed from are listed by `applications.list`.

Path and query parameters: boardId, range

Example — The whole history of one board

Request:

```json
{"boardId":"brd_7"}
```

Response:

```json
{
  "range": "all",
  "generatedAt": "2026-02-11T17:05:00.000Z",
  "headline": {
    "total": 42,
    "active": 9,
    "interviewRate": 31,
    "offerRate": 7,
    "responseTimeDays": 12,
    "thisWeek": 3,
    "lastWeek": 5
  },
  "funnel": [
    {
      "status": "applied",
      "reached": 38
    }
  ],
  "statusCounts": [
    {
      "status": "applied",
      "count": 9
    }
  ],
  "sources": [
    {
      "source": "LinkedIn",
      "applications": 20,
      "interviews": 6
    }
  ],
  "activity": {
    "buckets": [],
    "heatmap": []
  },
  "attention": {
    "upcomingInterviews": [],
    "staleApplications": []
  },
  "timeInStatus": {
    "completedSecondsByStatus": {
      "applied": 1036800
    },
    "currentlyWaitingInAppliedSeconds": 604800
  },
  "roleMix": {
    "location": [],
    "companySize": [],
    "workMode": [],
    "workType": []
  },
  "compensation": {
    "median": null,
    "rangeMin": null,
    "rangeMax": null,
    "count": 0
  }
}
```