gmail: folder: 'Newsletters' credentials: '~/.nlc/gmail-credentials.json' token: '~/.nlc/gmail-token.json' output: name: 'Newsletter Link Catalog' sheets_api: enabled: false credentials: '~/.nlc/sheets-credentials.json' token: '~/.nlc/sheets-token.json' spreadsheet_id: '' excel: enabled: true path: './output/newsletter-catalog.xlsx' database: enabled: true path: './data/newsletter-catalog.sqlite' newsletters: 'sender@example.com': display_name: 'Example Newsletter' date_override: 'subject' date_format: '%B %d, %Y' links: unwrap_redirects: true strip_utm: true tracking_params: - 'utm_*' - 'fbclid' - 'gclid' - 'mc_cid' - 'mc_eid' redirect_limit: 5 read_more_pattern: '(?i)^(read more|continue reading|learn more)$' share_patterns: - '(?i)share' - '(?i)forward to a friend' sponsor_markers: - '(?i)sponsor' - '(?i)sponsored' - '(?i)advertisement' - '(?i)partner' filter_unsubscribe: true filter_social_footer: true filter_share_links: true merge_read_more: true categories: custom: - 'AI/ML' - 'Career' - 'Rust' llm: provider: 'anthropic' model: 'claude-sonnet-4-6' api_key_env: 'ANTHROPIC_API_KEY' base_url: null failure_category: 'Uncategorized' enrichment: enabled: true concurrency: 3 delay_ms: 1500 retries: 2 timeout_ms: 10000 rate_limit: gmail_qps: 5 link_concurrency: 3 state_file: '~/.nlc/state.json' plugins: substack: enabled: true