{
  "$schema": "https://pinlyx.com/resources/schema/scrape-filter.json",
  "version": 1,
  "name": "Quality cohort filter",
  "description": "The filter preset from Step 5. Import once under Scrapers > Filters, then reuse on every group scrape. Expect 10-25% of raw members to survive; that is the point.",
  "filters": [
    {
      "field": "last_seen",
      "op": "within_days",
      "value": 7,
      "why": "Dormant accounts do not reply, and they do report."
    },
    {
      "field": "has_profile_photo",
      "op": "equals",
      "value": true,
      "why": "A missing photo correlates strongly with an abandoned or throwaway account."
    },
    {
      "field": "messages_in_group",
      "op": "gte",
      "value": 1,
      "why": "Someone who has never posted is a lurker, not a participant."
    },
    {
      "field": "is_bot",
      "op": "equals",
      "value": false,
      "why": "Obvious, and still worth stating."
    },
    {
      "field": "is_deleted_account",
      "op": "equals",
      "value": false,
      "why": ""
    },
    {
      "field": "has_username",
      "op": "equals",
      "value": true,
      "why": "Without a username the only way to reach them is by user id, which is far more fragile."
    }
  ],
  "firstPassAdvice": "Run the first scrape with NO filters and look at the last-seen distribution. That histogram tells you whether the group is alive before you spend any sending budget on it.",
  "expectedSurvivalRate": "10-25%",
  "afterFiltering": [
    "Save the cohort as a named segment.",
    "Tag every contact with the source group name and the scrape date.",
    "Those two tags are your compliance audit trail and your per-group reply-rate measurement."
  ]
}
