ATS

Get Candidate Hiring Funnel/Stage Progress

Get Candidate Hiring Funnel/Stage Progress

Track Every Candidate's Journey Across Your Entire Hiring Pipeline

Implementation Details

Step 1: Monitor Application Status and Stage Progression

Call the List Applications API to retrieve applications with current stage information, or use the Get Application API for specific candidate details. The application_stage data model provides the stage id and descriptive text for where each candidate currently sits in the hiring pipeline (e.g., "Phone Screen," "Technical Interview," "Final Round," "Offer").

Track application status using the standardized values: ACTIVE (candidate in progress), REJECTED (candidate declined), HIRED (candidate accepted offer), or NOT_SPECIFIED. Filter by status to focus on active candidates or analyze historical rejection patterns.

For interview-heavy processes, access the application_interviews model which includes interview subject, location, scheduled start/end times, associated stage, interviewer details, creator information, and status (SCHEDULED, AWAITING_FEEDBACK, COMPLETE, CANCELLED). Use this data to monitor interview completion rates and identify feedback bottlenecks.

Step 2: Move Candidates Through the Pipeline

When you need to progress candidates to the next hiring stage, call the Update Application Stage API (POST https://api.getknit.dev/v1.0/ats.application.stage.update) with the target stage ID. This endpoint supports 14 ATS platforms including Greenhouse, Lever, Workable, SmartRecruiters, Ashby, Bullhorn, Oracle Cloud HCM, SAP SuccessFactors, and iCIMS.

This enables workflow automation scenarios like: moving candidates who pass automated assessments to the phone screen stage, advancing candidates to offer stage after final interview approvals, or synchronizing stage progression between your ATS and external interview scheduling tools.

Step 3: Handle Rejections and Track Offer Lifecycle

When candidates don't move forward, first call the List Rejection Reasons API (GET https://api.getknit.dev/v1.0/ats.rejection.reasons) to retrieve available rejection reasons with their IDs for the connected ATS. This endpoint supports 9 platforms: Greenhouse, Lever, SmartRecruiters, TeamTailor, Breezy, Ashby, Zoho Recruit, Recruitee, and Oracle Taleo.

Use the returned rejection reason ID when calling the Reject Application API (POST https://api.getknit.dev/v1.0/ats.application.reject). This endpoint supports 10+ platforms and properly records the rejection with the specified reason. Note that Workable and Breezy ignore the rejection ID parameter, while Recruitee and Oracle Taleo don't honor note fields—but the rejection still processes successfully.

For candidates who receive offers, track the complete offer lifecycle through the application_offers model, which includes status (IN_PROGRESS, SIGNED, DENIED, DEPRECATED), createdAt, sentAt, closedAt, startDate, and hireDate. Monitor offer acceptance rates and time-to-acceptance metrics to optimize your closing process.

Key Data Models and APIs

API/Data Model Description
GET /v1.0/ats.application.list Retrieves applications with filtering capabilities for status, stage, and other criteria
GET /v1.0/ats.application.get Returns detailed application information including current stage, interviews, rejections, and offers
POST /v1.0/ats.application.stage.update Moves candidates to different pipeline stages; supports 14 ATS platforms
POST /v1.0/ats.application.reject Rejects applications with specified rejection reason; supports 10+ platforms
GET /v1.0/ats.rejection.reasons Lists available rejection reasons with IDs for use in rejection API; supports 9 platforms
application_stage Current pipeline stage: id and descriptive text (e.g., "Technical Interview")
application_interviews Interview details: id, subject, location, scheduledStart/End, stage, interviewers, creator, status (SCHEDULED/AWAITING_FEEDBACK/COMPLETE/CANCELLED)
application_rejection Rejection details including reason and timestamp
application_offers Offer lifecycle tracking: status (IN_PROGRESS/SIGNED/DENIED/DEPRECATED), createdAt, sentAt, closedAt, startDate, hireDate

Wrapping Up

Knit's pipeline visibility APIs transform opaque hiring processes into transparent, data-driven workflows. With standardized access to stage progression, interview schedules, rejection reasons, and offer lifecycle data across 30+ ATS platforms, you build insights and automation that work regardless of which system manages the candidates.

Real-Time Pipeline Visibility: Track candidates as they move through hiring stages without polling or manual exports. Build dashboards that reflect the current state of your recruitment pipeline across all positions and all ATS instances.

Actionable Interview Intelligence: Monitor interview schedules, track feedback submission status, and identify bottlenecks where candidates wait too long for next steps. Use interview completion data to measure recruiter and hiring manager responsiveness.

Standardized Rejection Handling: Access platform-specific rejection reasons through a unified API, record rejections with proper attribution, and analyze rejection patterns to identify bias or process issues. Even platforms that don't expose rejection reasons via API still support the rejection workflow.

Complete Offer Lifecycle Tracking: Monitor offers from creation through acceptance or decline, measuring time-to-decision and acceptance rates. Track start dates and hire dates to project onboarding capacity and new hire ramp timelines.

Stop flying blind through your hiring process. Let Knit provide the pipeline visibility you need to optimize recruitment operations.

Built for Scale, Speed,
and Simplicity

Ready to Get Started?
Book a 1-on-1 demo today