application_list
Retrieve and filter candidate applications from the Ashby hiring pipeline by job ID, status, or creation date using pagination.
Instructions
List applications. Can filter by jobId and/or status. Uses cursor pagination.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | No | Filter by job ID (UUID) | |
| status | No | Filter by application status | |
| createdAfter | No | Only return applications created after this timestamp (ms since epoch) | |
| limit | No | Max results per page (default/max 100) | |
| cursor | No | Cursor for next page |
Implementation Reference
- src/ashby/server.py:407-418 (handler)The tool call handler `handle_call_tool` uses `TOOL_ENDPOINT_MAP` to route tool calls to the appropriate Ashby API endpoint. The execution logic is defined generically by calling `ashby.post(endpoint, data=arguments)`.
@server.call_tool() async def handle_call_tool(name: str, arguments: dict[str, Any]) -> list[types.TextContent]: """Route tool calls to the correct Ashby endpoint, passing arguments directly.""" endpoint = TOOL_ENDPOINT_MAP.get(name) if not endpoint: return [types.TextContent(type="text", text=f"Unknown tool: {name}")] try: # Pass arguments straight through -- tool schemas already use Ashby's # camelCase param names so no translation is needed. response = ashby.post(endpoint, data=arguments if arguments else None) return [types.TextContent(type="text", text=json.dumps(response, indent=2))] - src/ashby/server.py:214-230 (schema)The definition and input schema for the `application_list` tool.
types.Tool( name="application_list", description="List applications. Can filter by jobId and/or status. Uses cursor pagination.", inputSchema={ "type": "object", "properties": { "jobId": {"type": "string", "description": "Filter by job ID (UUID)"}, "status": { "type": "string", "enum": ["Active", "Hired", "Archived", "Lead"], "description": "Filter by application status", }, "createdAfter": { "type": "integer", "description": "Only return applications created after this timestamp (ms since epoch)", }, "limit": {"type": "integer", "description": "Max results per page (default/max 100)"}, - src/ashby/server.py:386-399 (registration)The mapping of `application_list` to its corresponding Ashby API endpoint path `/application.list` in `TOOL_ENDPOINT_MAP`.
"application_list": "/application.list", "application_info": "/application.info", "application_create": "/application.create", "application_change_stage": "/application.change_stage", "interview_stage_list": "/interviewStage.list", "interview_plan_list": "/interviewPlan.list", "interview_list": "/interview.list", "interview_info": "/interview.info", "department_list": "/department.list", "user_list": "/user.list", "source_list": "/source.list", "archive_reason_list": "/archiveReason.list", "location_list": "/location.list", }