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 timestamp
  • ats_applications_created_before — ATS Applications created before a specific timestamp
  • ats_applications_updated_after — ATS Applications updated after a specific timestamp
  • ats_applications_updated_before — ATS Applications updated before a specific timestamp
  • ats_applications_changed_stage_after — ATS Applications whose stage changed after a specific timestamp
  • ats_applications_changed_stage_before — ATS Applications whose stage changed before a specific timestamp
  • ats_applications_job_id — Filter Applications based on Job IDs
  • ats_applications_stage — Filter Applications based on Stage
  • ats_applications_status — Filter Applications based on Status
  • ats_applications_tag — Filter Applications based on Tag
  • ats_applications_candidate_id — Filter Applications based on Candidate ID
  • ats_applications_candidate_email — Filter Applications based on Candidate Email

ATS Jobs

  • ats_jobs_created_after — ATS Jobs created after a specific timestamp
  • ats_jobs_created_before — ATS Jobs created before a specific timestamp
  • ats_jobs_updated_after — ATS Jobs updated after a specific timestamp
  • ats_jobs_updated_before — ATS Jobs updated before a specific timestamp
  • ats_jobs_status — Filter Jobs based on Status
  • ats_jobs_tag — Filter Jobs based on Tag
  • ats_jobs_office_id — Filter Jobs based on Office ID
  • ats_jobs_department_id — Filter Jobs based on Department ID
  • ats_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 the triggerSync 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.