feat: default light theme for recruiter-entry users#3442
Merged
rebelchris merged 9 commits intomainfrom Jan 15, 2026
Merged
Conversation
- Fetch UserCandidatePreference with location relation - Use preferenceLocation.country as primary source, fallback to flags.country - Ensures user's explicit location preference takes precedence Co-authored-by: Chris Bongers <rebelchris@users.noreply.github.com>
- Add Redis storage for anonymous user theme preferences (30-day TTL)
- Accept `referrer` query param in boot endpoint
- Return light theme ('bright') for referrer=recruiter, dark otherwise
- Persist theme choice and don't override on subsequent visits
- Migrate theme from anonymous trackingId to userId on login
- Add tests for recruiter default theme logic
Closes ENG-332, ENG-334, ENG-335, ENG-336
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2 tasks
|
🍹 The Update (preview) for dailydotdev/api/prod (at b57e2bc) was successful. Resource Changes Name Type Operation
~ vpc-native-clean-zombie-user-companies-cron kubernetes:batch/v1:CronJob update
~ vpc-native-update-highlighted-views-cron kubernetes:batch/v1:CronJob update
~ vpc-native-update-tag-recommendations-cron kubernetes:batch/v1:CronJob update
~ vpc-native-update-trending-cron kubernetes:batch/v1:CronJob update
+ vpc-native-api-db-migration-66056841 kubernetes:batch/v1:Job create
- vpc-native-api-clickhouse-migration-1253b599 kubernetes:batch/v1:Job delete
~ vpc-native-daily-digest-cron kubernetes:batch/v1:CronJob update
~ vpc-native-update-source-public-threshold-cron kubernetes:batch/v1:CronJob update
~ vpc-native-deployment kubernetes:apps/v1:Deployment update
~ vpc-native-update-current-streak-cron kubernetes:batch/v1:CronJob update
~ vpc-native-calculate-top-readers-cron kubernetes:batch/v1:CronJob update
+ vpc-native-api-clickhouse-migration-66056841 kubernetes:batch/v1:Job create
~ vpc-native-bg-deployment kubernetes:apps/v1:Deployment update
~ vpc-native-update-views-cron kubernetes:batch/v1:CronJob update
~ vpc-native-post-analytics-clickhouse-cron kubernetes:batch/v1:CronJob update
~ vpc-native-generic-referral-reminder-cron kubernetes:batch/v1:CronJob update
~ vpc-native-ws-deployment kubernetes:apps/v1:Deployment update
- vpc-native-api-db-migration-1253b599 kubernetes:batch/v1:Job delete
~ vpc-native-sync-subscription-with-cio-cron kubernetes:batch/v1:CronJob update
~ vpc-native-temporal-deployment kubernetes:apps/v1:Deployment update
~ vpc-native-generate-search-invites-cron kubernetes:batch/v1:CronJob update
~ vpc-native-personalized-digest-cron kubernetes:batch/v1:CronJob update
~ vpc-native-clean-zombie-images-cron kubernetes:batch/v1:CronJob update
~ vpc-native-post-analytics-history-day-clickhouse-cron kubernetes:batch/v1:CronJob update
~ vpc-native-clean-zombie-opportunities-cron kubernetes:batch/v1:CronJob update
~ vpc-native-validate-active-users-cron kubernetes:batch/v1:CronJob update
~ vpc-native-user-profile-updated-sync-cron kubernetes:batch/v1:CronJob update
~ vpc-native-update-tags-str-cron kubernetes:batch/v1:CronJob update
~ vpc-native-clean-stale-user-transactions-cron kubernetes:batch/v1:CronJob update
~ vpc-native-clean-zombie-users-cron kubernetes:batch/v1:CronJob update
~ vpc-native-private-deployment kubernetes:apps/v1:Deployment update
~ vpc-native-update-source-tag-view-cron kubernetes:batch/v1:CronJob update
~ vpc-native-clean-gifted-plus-cron kubernetes:batch/v1:CronJob update
~ vpc-native-personalized-digest-deployment kubernetes:apps/v1:Deployment update
~ vpc-native-check-analytics-report-cron kubernetes:batch/v1:CronJob update
~ vpc-native-hourly-notification-cron kubernetes:batch/v1:CronJob update
|
- Apply anonymous theme from Redis when user has no saved settings - Add tests for theme persistence after login - Add test for DB settings taking precedence over Redis - Simplify theme determination logic Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
idoshamun
reviewed
Jan 15, 2026
| } | ||
| if (req.userId !== whoami.userId) { | ||
| // Migrate theme from anonymous trackingId to new userId before overwriting | ||
| const oldTrackingId = req.trackingId; |
Member
There was a problem hiding this comment.
I'm not sure this part is needed
Contributor
Author
There was a problem hiding this comment.
I think so right, because on signup you still don't have settings (until you do something) so we need to still read from redis until that's done.
idoshamun
approved these changes
Jan 15, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
/recruiter/*pages now default to light theme instead of darkRelated Issues
Test plan
/recruiterpage as anonymous user, verify light theme🤖 Generated with Claude Code