Native Filters
Filter data based on common time-based or entity-based fields standardized across apps.
Native Filters are fields designed to support common filtering options available across different apps.
They help you fetch targeted records by applying criteria either based on time or specific entities.
There are two types of Native Filters:
- Time-based Filters: Filters based on timestamps, such as creation, update, or stage change (e.g., in ATS systems).
- Entity-based Filters: Filters based on related entity attributes, such as filtering Jobs by tags, department, status, etc.
Supported Native Filters for ATS
Below are the Native Filters supported for ATS syncs:
ATS Applications
ats_applications_created_after
— ATS Applications created after a specific timestampats_applications_created_before
— ATS Applications created before a specific timestampats_applications_updated_after
— ATS Applications updated after a specific timestampats_applications_updated_before
— ATS Applications updated before a specific timestampats_applications_changed_stage_after
— ATS Applications whose stage changed after a specific timestampats_applications_changed_stage_before
— ATS Applications whose stage changed before a specific timestampats_applications_job_id
— Filter Applications based on Job IDsats_applications_stage
— Filter Applications based on Stageats_applications_status
— Filter Applications based on Statusats_applications_tag
— Filter Applications based on Tagats_applications_candidate_id
— Filter Applications based on Candidate IDats_applications_candidate_email
— Filter Applications based on Candidate Email
ATS Jobs
ats_jobs_created_after
— ATS Jobs created after a specific timestampats_jobs_created_before
— ATS Jobs created before a specific timestampats_jobs_updated_after
— ATS Jobs updated after a specific timestampats_jobs_updated_before
— ATS Jobs updated before a specific timestampats_jobs_status
— Filter Jobs based on Statusats_jobs_tag
— Filter Jobs based on Tagats_jobs_office_id
— Filter Jobs based on Office IDats_jobs_department_id
— Filter Jobs based on Department IDats_jobs_confidentiality
— Filter Jobs based on Confidentiality
Filter Format
Each filter is represented as an object with two fields:
{
"type": "filter_type",
"value": "filter_value"
}
type
: The filter type (e.g.,ats_jobs_tag
,ats_applications_created_after
)value
: The value for filtering. It can be a single value or an array of values depending on the filter.
Example: Filtering Jobs by Tag
If you want to fetch jobs that match a particular tag, your filter object would look like:
{
"type": "ats_jobs_tag",
"value": ["engineering", "sales"]
}
How to Add Filters to Your Integration
To add a filter to an integration, use the Update Sync Filter API and provide the filter JSON.
Note:
Updating the filter will trigger an
initial_sync
to rebaseline the data with the new filter.
You can control this behavior using thetriggerSync
parameter in the API request.
Once the filter is set, all future delta_syncs
for that integration will track only the data that passes the filters, ensuring targeted and efficient data syncs.
Sample cURL Request
curl --location 'https://api.getknit.dev/v1.0/sync.filter.update' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <your_access_token>' \
--data '{
"dataType" : "ats_applications",
"nativeFilters" : [
{
"type" : "ats_applications_created_before",
"value" : "2025-01-09T06:18:20Z"
},
{
"type" : "ats_applications_created_after",
"value" : "2025-01-01T00:00:00Z"
},
{
"type" : "ats_applications_job_id",
"value" : ["a651401b-dc08-4bfa-a69a-0f3c0693a52a", "fff1804d-d6f2-4546-a3ca-55e0d7f6c593"]
},
{
"type" : "ats_applications_stage",
"value" : ["lead-new", "lead-responded"]
}
]
}'
You're all set!
Once you set a native filter, Knit will ensure that only relevant data is tracked and synced, keeping your integration efficient and clean.
Updated about 1 hour ago