5 Commits

Author SHA1 Message Date
-Puter
7097ec894d keep applicant count fix surgical 2026-07-17 19:48:35 +05:30
-Puter
e30d24dbe1 fix scout stats applicant counts 2026-07-17 19:47:44 +05:30
-Puter
f3c0775e59 fix: harden RQ Score response parsing 2026-07-14 18:20:06 +05:30
sai karthik
81a845d244 fix: consume strict RQ Score contract 2026-07-14 15:41:48 +05:30
raulgupta
be921559e7 Real Scout dashboard backend + per-board cursor rework
- get_scout_stats aggregator (app/engine/stats): assembles the REAL Summary metrics —
  funnel + cohort engagement rank + active-window (activity timestamps by hour) from our DB,
  accumulating salary band (avg of each deck's peak, ₹L), match/competition stats from the
  feed, Momentum/QX + Q-Score trend (qscore-service), day streak (user-service). Honest:
  unsourced cards return None so the UI omits/locks them, never faked. posted_date extractor.
- Activity tracking: viewed/saved flags + search_count → funnel (Matches→Viewed→Shortlisted→
  Applied) + engagement percentile. matchesFound = all-time count.
- Per-board search cursors {board: page} (replaces the single cursor): only boards that truly
  paginate (LinkedIn) get one; cursor = LAST page fetched (1st search of a new query → 1).
  Resets on query change OR >24h (boards refresh ~daily). Dropped Naukri incremental/stateKey
  (opaque, exhausting, cross-account dedup state) — dedup is the PER-USER seen-net only.
- tests: stats helpers (posting-age, histogram, active-window, engagement score).
2026-06-21 12:12:28 +05:30