insights.get_dashboard
Read the statistics for one board
- Request
- GET
/api/v1/boards/{boardId}/insights - Scope required
insights:read- Effect
- Reads only. Safe to retry and safe for an agent to call unprompted.
- Acts on
- Serves an account’s own data and, where shared, an organization’s.
- MCP tool
insights_get_dashboard- Environment
- Live and sandbox alike.
- Request body
- JSON.
What it does
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`.
Parameters
| Name | Sent in | Requirement | Accepts |
|---|---|---|---|
| boardId | path | Required | string |
| range | query | Optional | one of: 30d, 90d, 1y, all |
Response
- activity
- object, required
- buckets
- array of object, required
- count
- integer, required
- cumulative
- integer, required
- startsOn
- string, required
- heatmap
- array of object, required
- count
- integer, required
- date
- string, required
- attention
- object, required
- staleApplications
- array of object, required
- applicationId
- string, required
- company
- string, required
- daysWaiting
- number, required
- jobTitle
- string, required
- upcomingInterviews
- array of object, required
- applicationId
- string, required
- company
- string, required
- jobTitle
- string, required
- time
- string, required
- type
- one of: phone_screen, technical, behavioral, panel, take_home, video_call, in_person, other or null, required
- compensation
- object, required
- count
- integer, required
- median
- number or null, required
- rangeMax
- number or null, required
- rangeMin
- number or null, required
- funnel
- array of object, required
- reached
- integer, required
- status
- one of: saved, applied, interviewing, offer, rejected, accepted, archived, required
- generatedAt
- string, required
- headline
- object, required
- active
- integer, required
- interviewRate
- number, required
- lastWeek
- integer, required
- offerRate
- number, required
- responseTimeDays
- number or null, required
- thisWeek
- integer, required
- total
- integer, required
- range
- one of: 30d, 90d, 1y, all, required
- roleMix
- object, required
- companySize
- array of object, required
- count
- integer, required
- label
- string, required
- location
- array of object, required
- count
- integer, required
- label
- string, required
- workMode
- array of object, required
- count
- integer, required
- label
- string, required
- workType
- array of object, required
- count
- integer, required
- label
- string, required
- sources
- array of object, required
- applications
- integer, required
- interviews
- integer, required
- source
- string, required
- statusCounts
- array of object, required
- count
- integer, required
- status
- one of: saved, applied, interviewing, offer, rejected, accepted, archived, required
- timeInStatus
- object, required
- completedSecondsByStatus
- object, required
- currentlyWaitingInAppliedSeconds
- number or null, required
Examples
The whole history of one board
curl -s https://www.jobapplicationtracking.com/api/v1/boards/brd_7/insights \
-H "Authorization: Bearer $JAT_KEY"{
"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
}
}