{
  "_readme": "Edit this file to make the radar yours. Keywords are case-insensitive regular expressions. Weight = how much a match counts (0.2 = weak hint, 1.3 = core niche). Lines starting with _ are comments and are ignored.",

  "niche": "AI tools, agents and SaaS for builders and creators",

  "keywords": [
    { "match": "\\bclaude( code)?\\b|\\banthropic\\b", "weight": 1.3 },
    { "match": "\\bopen ?ai\\b|\\bchat ?gpt\\b|\\bgpt[- ]?\\d", "weight": 1.2 },
    { "match": "\\bgemini\\b|\\bdeepmind\\b|\\bgoogle ai\\b", "weight": 1.1 },
    { "match": "\\bai agents?\\b|\\bagentic\\b|\\bagents?\\b", "weight": 1.0 },
    { "match": "\\bmcp\\b|model context protocol", "weight": 1.0 },
    { "match": "\\bvibe[- ]?cod", "weight": 1.2 },
    { "match": "\\bcursor\\b|\\bcodex\\b|\\bcopilot\\b|\\blovable\\b|\\breplit\\b|\\bwindsurf\\b", "weight": 1.0 },
    { "match": "\\bn8n\\b|\\bzapier\\b|\\bmake\\.com\\b", "weight": 1.0 },
    { "match": "\\bskills?\\b|\\bplugin\\b", "weight": 0.5 },
    { "match": "\\bllms?\\b|large language model", "weight": 0.9 },
    { "match": "\\bllama\\b|\\bmistral\\b|\\bdeepseek\\b|\\bqwen\\b|\\bgrok\\b|\\bkimi\\b", "weight": 0.9 },
    { "match": "\\belevenlabs\\b|\\bheygen\\b|\\brunway\\b|\\bsora\\b|\\bveo\\b|\\bkling\\b|\\bsuno\\b|\\bmidjourney\\b", "weight": 0.9 },
    { "match": "open[- ]?source|open[- ]?weights?|self[- ]?host", "weight": 0.8 },
    { "match": "\\bai\\b|artificial intelligence|\\bgenai\\b|generative", "weight": 0.6 },
    { "match": "\\bsaas\\b|\\bmrr\\b|indie ?hack|side ?project|bootstrapp", "weight": 0.7 },
    { "match": "automat(e|ion|ing)|workflow|no[- ]?code", "weight": 0.6 },
    { "match": "\\bmodel\\b|\\bmodels\\b|reasoning|inference|fine[- ]?tun|\\brag\\b|prompt", "weight": 0.5 },
    { "match": "\\bgithub\\b|\\bcli\\b|\\bsdk\\b|\\bapi\\b", "weight": 0.4 },
    { "match": "\\blaunch(es|ed)?\\b|\\breleas(e|es|ed)\\b|\\bintroduc(es|ing)\\b|\\bannounc(es|ed)\\b|\\bnow available\\b", "weight": 0.35 },
    { "match": "\\bfree\\b|\\btool\\b|\\bapp\\b|\\bbuilt\\b", "weight": 0.2 }
  ],

  "negative": [
    { "match": "who is hiring|\\bhiring\\b|job post", "weight": 1.2 },
    { "match": "\\belection\\b|\\bcongress\\b|\\bsenate\\b", "weight": 0.5 },
    { "match": "customer stor|case study|\\bwebinar\\b|sponsors-only", "weight": 0.9 },
    { "match": "\\bquits?\\b|\\bresign|\\bdeparture|\\blawsuit|\\bsues?\\b|\\blayoffs?\\b|sounding the alarm|\\bdrama\\b", "weight": 0.8 }
  ],

  "_noise_readme": "Titles matching any of these are dropped before scoring: questions, Ask HN, memes, weekly threads.",
  "noise": [
    "^ask hn\\b",
    "\\?\\s*$",
    "\\b(weekly|daily|monthly)\\b.*\\b(thread|discussion)\\b",
    "\\bmegathread\\b",
    "^(pov|me when|nobody:)",
    "uncensored|abliterated|\\bgguf\\b"
  ],

  "digest": {
    "top": 10,
    "alsoMoving": 5,
    "maxPerSource": 3,
    "minScore": 40,
    "maxAgeDays": 3,
    "rememberDays": 10
  },

  "_delivery_readme": "Any delivery with its secrets set is used. The markdown file is always written unless --dry-run.",
  "delivery": {
    "markdownFile": true,
    "telegram": true,
    "email": true
  }
}
