Maintenance

One place for everything we run on a schedule and every external service we depend on. Read top-to-bottom: red is broken, yellow needs attention, green is healthy.

3 items need attention

Scheduled processes 4

Background jobs that run on a clock. The first three live inside the FastAPI process via APScheduler; the affiliate maintenance sweep runs as a separate weekly systemd timer on the VPS.

Reddit polling tick ok
Poll one batch of due comments (insights + visibility) every 5 min during waking hours. Visibility check uses authed Reddit JSON only; ScrapeCreators is reserved for the once-a-month keyword sweep.
every 5 min, 08:00-24:00 UTC
Reddit /commentstats (authed)Reddit /<thread>.json (authed)
next in 4m
2026-06-20 13:22 UTC
Monthly refresh ok
Single monthly cron: brand extraction (LLM) AND the keyword-driven SERP+JSON sweep. For each unique ranking Reddit post: authed JSON for rank/replies, then ScrapeCreators paginated comments for public visibility / shadowban detection. Cross-updates Keyword Management and Reddit Analytics.
1st of month, 03:00 UTC
OpenAI /v1/chat/completionsScrapeCreators /v1/google/searchReddit /<thread>.json (authed)ScrapeCreators /v1/reddit/post/comments (monthly shadow / public visibility only)
next in 10d
2026-07-01 03:00 UTC
Reddit comment discovery ok
Pull the latest comments from u/<REDDIT_USERNAME>'s profile feed and add new ones to the polling queue
every 4h inside the tick loop, waking hours only
Reddit /user/<u>/comments.json (authed)
next in 2h
2026-06-20 16:07 UTC
last 1h ago
Affiliate maintenance sweep critical
Check every linkopener slug against FlexOffers / Sovrn / StyleDean and queue mint/disable/enable suggestions
Sunday 04:00 UTC (systemd timer)
FlexOffers /advertisersSovrn merchants CSV (local file)StyleDean repo (filesystem)OpenAI /v1/chat/completions (brand resolution, when needed)
last run was 41d ago; weekly timer may be broken
last 41d ago

External APIs 7

Health of every third-party service we call. A red row means the most recent calls have been failing — usually credits, billing, or an expired key. Click the fix-it hint for the action you need to take.

ScrapeCreators (Google SERP) critical
Google search results for SERP rank checks
HTTP 402 · {"success":false,"message":"Looks like you're out of credits :( You'll need to buy more to continue using the service."}
→ Top up credits at https://app.scrapecreators.com/dashboard
last ok 19d ago
last err 50d ago
746 calls · 33.5% err
ScrapeCreators (Reddit visibility) ok
Comment visibility checks (active / collapsed / shadow-removed)
last ok 7s ago
last err 22d ago
7421 calls · 2.4% err
OpenAI critical
Brand name extraction (gpt-4o-mini)
→ Check billing + key rotation at https://platform.openai.com/account
last ok 2d ago
80 calls · 0.0% err
Reddit (authenticated) ok
Comment discovery + per-comment insights (views, upvotes)
last ok 13s ago
last err 1d ago
10523 calls · 2.5% err
FlexOffers API ok
Affiliate advertiser lookup + deeplink minting
last ok 2d ago
last err 5d ago
238 calls · 3.8% err
magicofclothes.com (WP) ok
Pretty Links wrapper layer for FlexOffers + Sovrn deeplinks
last ok 2d ago
65 calls · 0.0% err
linkopener /__reload ok
Hot-reload slug map after creating/editing a link
last ok 2d ago
93 calls · 0.0% err

Data pipelines 4

Internal queues and backlogs. These are not "broken" if they have items — they show how much work is waiting and whether anything is stuck.

Reddit polling queue
next slot in 7m
520 / 668 processed
Brand-extraction backlog
posts whose brand has never been LLM-probed
1 posts
SERP-check backlog
branded posts that haven't been Google-checked yet
0 posts
Click ingestion (linkopener.db)
1m ago
latest click 1m ago

Data freshness 4

Snapshots and external files we depend on. These drift over time (Sovrn merchant exports get stale; cookies expire) — refresh from source when they go yellow.

Sovrn approved-merchants CSV
/opt/reddit-analytics/all approved sovrn merchants.csv
23,310 rows, 54d old
StyleDean repo (filesystem)
/opt/styledean
present
Most recent successful comment poll
2026-06-20 13:17 UTC
7s ago
Most recent SERP check
2026-06-01 03:18 UTC
19d ago

Affiliate suggestions inbox 10 pending

The weekly affiliate-maintenance sweep queues advisory mint / disable / enable suggestions here. Nothing is applied to live links until you click Apply.

Last run #13 · 2026-05-09 20:05 · manual

checked 106 links · 10 mint suggestions · 0 disable · 0 enable

Mint (10)

Networks newly approved this brand. Apply to mint a fresh affiliate version and add it to the splitter.

styledean Fjällräven · fjallraven-sizing

newly eligible: page file present

detected 2026-05-09 20:05 · run #13

sovrn Fjällräven · fjallraven-sizing · adv 125542

newly eligible: Sovrn merchant 125542

detected 2026-05-09 20:05 · run #13

styledean Maison Margiela · maison-margiela-replica-sizing

newly eligible: page file present

detected 2026-05-09 20:05 · run #13

styledean Kuhl · kuhl-sizing

newly eligible: page file present

detected 2026-05-09 20:05 · run #13

styledean Fjallraven · fjallraven-sale

newly eligible: no page yet (mint will create)

detected 2026-05-09 20:05 · run #13

styledean Herman Miller · herman-miller-sale

newly eligible: no page yet (mint will create)

detected 2026-05-09 20:05 · run #13

sovrn Herman Miller · herman-miller-sale · adv 70316

newly eligible: Sovrn merchant 70316

detected 2026-05-09 20:05 · run #13

flexoffers Maui Jim · maui-jim · adv 239898

newly eligible: FO advertiser 239898 (Maui Jim)

detected 2026-05-09 20:05 · run #13

styledean Rejuvenation · rejuvenation-sale

newly eligible: no page yet (mint will create)

detected 2026-05-09 20:05 · run #13

flexoffers Nine West · nine-west · adv 159984

newly eligible: FO advertiser 159984 (Nine West)

detected 2026-05-09 20:05 · run #13

Audit trail · 20 recent events
  • 05-09 20:05 suggest_mint · flexoffers · nine-west — newly eligible: FO advertiser 159984 (Nine West)
  • 05-09 20:05 suggest_mint · styledean · rejuvenation-sale — newly eligible: no page yet (mint will create)
  • 05-09 20:05 suggest_mint · flexoffers · maui-jim — newly eligible: FO advertiser 239898 (Maui Jim)
  • 05-09 20:05 flag_ambiguous · flexoffers · aeron — low-confidence brand (slug-derived: 'Aeron'); not suggesting disable. original: no advertiser match in FlexOffers
  • 05-09 20:05 suggest_mint · sovrn · herman-miller-sale — newly eligible: Sovrn merchant 70316
  • 05-09 20:05 suggest_mint · styledean · herman-miller-sale — newly eligible: no page yet (mint will create)
  • 05-09 20:05 suggest_mint · styledean · fjallraven-sale — newly eligible: no page yet (mint will create)
  • 05-09 20:05 suggest_mint · styledean · kuhl-sizing — newly eligible: page file present
  • 05-09 20:05 suggest_mint · styledean · maison-margiela-replica-sizing — newly eligible: page file present
  • 05-09 20:05 suggest_mint · sovrn · fjallraven-sizing — newly eligible: Sovrn merchant 125542
  • 05-09 20:05 suggest_mint · styledean · fjallraven-sizing — newly eligible: page file present
  • 04-28 14:39 suggest_mint_dedup · flexoffers · old-navy-sizing — newly eligible: FO advertiser 162751 (Old Navy)
  • 04-28 14:39 flag_ambiguous · flexoffers · nike-sizing-3 — FO has a regional-only program for 'Nike' (177441 'Nike Asia Pacific'). (near-misses: 177441:'Nike Asia Pacific')
  • 04-28 14:39 flag_ambiguous · flexoffers · nike-sizing-4 — FO has a regional-only program for 'Nike' (177441 'Nike Asia Pacific'). (near-misses: 177441:'Nike Asia Pacific')
  • 04-28 14:39 suggest_mint · flexoffers · herman-miller-sale — newly eligible: FO advertiser 227460 (Herman Miller)
  • 04-28 14:39 suggest_mint_dedup · sovrn · herman-miller-sale — newly eligible: Sovrn merchant 70316
  • 04-28 14:39 suggest_mint_dedup · styledean · herman-miller-sale — newly eligible: no page yet (mint will create)
  • 04-28 14:39 suggest_mint · flexoffers · fjallraven-sale — newly eligible: FO advertiser 235909 (Fjällräven)
  • 04-28 14:39 suggest_mint_dedup · sovrn · fjallraven-sale — newly eligible: Sovrn merchant 125542
  • 04-28 14:39 suggest_mint_dedup · styledean · fjallraven-sale — newly eligible: no page yet (mint will create)

System info

Server-side configuration and which env vars are set. A missing key here usually explains why a related external API is showing red.

Server time
2026-06-20 13:17 UTC
Waking hours (UTC)
08:00 - 00:00 UTC currently waking
Polling cycle
168h per comment
Reddit user
u/mehuly24
Env vars configured
REDDIT_SESSION
REDDIT_USERNAME
SCRAPECREATORS_API_KEY
OPENAI_API_KEY
FLEXOFFERS_API_KEY
MAGICOFCLOTHES_USERNAME
MAGICOFCLOTHES_APP_PASSWORD
LINKOPENER_ADMIN_TOKEN
STYLEDEAN_REPO_PATH