Releases: JustAJobApp/jobseeker-analytics
v1.0.0 - We Passed the Vibe Check (And the Security Audit)
v1.0.0
We finally added payments, which means JustAJobApp is now a real business and not just a very elaborate hobby. The onboarding flow got a full makeover, the navbar stopped being embarrassing, and paid subscribers can now enjoy auto-refresh twice a day instead of clicking Refresh like it's 2003.
Then we sent the app to strangers whose job it is to find everything wrong with it (the CASA Tier 2 security audit), and they did. So we spent a meaningful chunk of this release implementing AWS KMS, sanitizing inputs we probably should have sanitized earlier, stripping out insecure fallback logic that was doing its best, adding step-up authentication for CSV exports and the Coach view-as feature, fixing cache headers, rate limiting the deletion endpoint, and generally making sure the app fails securely instead of dramatically.
Dependabot also submitted four PRs and remains the most consistent contributor on the team. A Substack newsletter was correctly identified as not a job application and added to the exclusion list. Welcome to 1.0 — we hardened the security, softened the onboarding, and only mildly inconvenienced lodash.
What's Changed
- Add Stripe payments, onboarding flow, and navbar redesign by @lnovitz in #718
- Bump next from 15.5.9 to 16.1.5 in /frontend by @dependabot[bot] in #729
- Bump python-multipart from 0.0.18 to 0.0.22 in /backend by @dependabot[bot] in #728
- Bump lodash from 4.17.21 to 4.17.23 in /frontend by @dependabot[bot] in #725
- Bump protobuf from 5.29.5 to 6.33.5 in /backend by @dependabot[bot] in #730
- fix: add systemdesignone@substack.com to email exclusion filters by @shaominngqing in #733
- Feat: Add Premium Tier for Auto Refresh by @lnovitz in #735
- Add Stripe webhook secret input for backend deployment by @lnovitz in #746
- Bugfix/casa tier 2 by @lnovitz in #747
- Bump js-yaml from 4.1.0 to 4.1.1 in the npm_and_yarn group across 1 directory by @dependabot[bot] in #748
- Bugfix/casa tier 2 (SAQ) by @lnovitz in #750
- Security: Implement strict Cache-Control directives (Fix CWE-525) by @lnovitz in #805
- Navbar UI by @code-qtzl in #734
- Casa Tier 2 Security Audit Questionnaire (SAQ) by @lnovitz in #806
- Step-Up Auth for CSV exports by @lnovitz in #808
- Rate limits deletion endpoint, remove insecure fallback logic by @lnovitz in #809
- Fail securely including when an exception occurs by @lnovitz in #810
- Step-Up Authentication for the Coach
X-View-Asfeature by @lnovitz in #811 - Sanitize Input Data Server-Side by @lnovitz in #812
- Security: AWS KMS, refactor creds management, sanitize csv output, validator file by @lnovitz in #813
- Limits by @lnovitz in #824
New Contributors
- @shaominngqing made their first contribution in #733
Full Changelog: v0.9.0...v1.0.0
v0.9.0 - Fear is the path to the Dark Side. 🌈
What's Changed (tldr;)
- you can choose light and dark mode again, yay! and our color palette got a makeover 🪄 @code-qtzl
- Lianna can rest easy knowing that the app (probably) won't get fined by countries with strict data privacy laws 💸 @okimin
What's Changed (nitty gritty)
- Bump preact from 10.28.1 to 10.28.2 in /frontend by @dependabot[bot] in #714
- Bump urllib3 from 2.6.0 to 2.6.3 in /backend by @dependabot[bot] in #716
- [bugfix] stripe placeholder api key added by @code-qtzl in #717
- Bump pyasn1 from 0.6.1 to 0.6.2 in /backend by @dependabot[bot] in #720
- Add FastApi-Guard as middleware by @okimin in #682
- [Frontend] Fix Dark Theme UX and Color Contrast by @code-qtzl in #723
Full Changelog: v0.8.0...v0.9.0
v0.8.0 - Share Job Search Updates With Your Mentor / Coach!
This is a very exciting release because I've not only added the ability to share your job search activity with a mentor or career coach, but I've fixed lots of bugs that plagued new user onboarding. I'm also getting ready for the public launch, which means adding Stripe as a dependency for subscriptions. The other fun update is that we're officially an Alembic project now! All database migrations happen via Alembic. Heck yeah.
What's Changed
- Chore/82 privacy policy by @lnovitz in #683
- Logo update by @lnovitz in #685
- Landing Page: Separate Job Seeker / Coach in 2 Tabs, Copy Update by @lnovitz in #686
- Feat/89 in product privacy notice by @lnovitz in #688
- Feat/691 add active subscription fields by @lnovitz in #693
- fix non-nullable column for existing rows with server default by @lnovitz in #695
- Nullable set to True for
is_activenew column in Users table by @lnovitz in #696 - Fix passed argument error in alter column command by @lnovitz in #697
- Add user object for active check, new error message by @lnovitz in #698
- Feat/707 add login page by @lnovitz in #709
- Add View for Career Coach by @lnovitz in #664
- fix cascading update on user_id change by @lnovitz in #711
Full Changelog: v0.7.6...v0.8.0
v0.7.6 - Merry Christmas to newest contributors! Jolly security fixes
What's Changed
- Pivot by @lnovitz in #615
- Redesign again by @lnovitz in #617
- add eqrecruiters email filter by @SrilakshmiSripathi in #623
- Tracker pivot by @lnovitz in #624
- Fix broken backend unit tests by @lucas3003 in #627
- add all hire.lever.co emails by @lnovitz in #631
- Enhance login flow by not asking consent for returning users by @lucas3003 in #625
- Add descriptive alt text to images for accessibility by @tysoncung in #634
- Bump next from 15.2.4 to 15.4.7 in /frontend by @dependabot[bot] in #614
- add privacy and cookies by @lnovitz in #643
- deletes by @lnovitz in #653
- Add cleanup container images step to backend and frontend by @lnovitz in #654
- add termly consent preference center by @lnovitz in #656
- Career coach link / jobseeker signups by @lnovitz in #657
- Posthog fix by @lnovitz in #661
- removed sankey by @SrilakshmiSripathi in #665
- removed response rate percentage by @SrilakshmiSripathi in #666
- removed responseRate completely by @SrilakshmiSripathi in #667
- Add Andres Zepeda to Wall of Fame by @code-qtzl in #668
- [BUG]: Fix squished search filter by @code-qtzl in #677
- [BUGFIX] added contributors link to footer on homepage by @code-qtzl in #670
- Bump next from 15.4.7 to 15.4.8 in /frontend by @dependabot[bot] in #675
- Bump playwright and @playwright/test in /frontend by @dependabot[bot] in #626
- Bump urllib3 from 2.3.0 to 2.6.0 in /backend by @dependabot[bot] in #678
- Bump protobuf from 5.29.2 to 5.29.5 in /backend by @dependabot[bot] in #499
- Bump next from 15.4.8 to 15.4.9 in /frontend by @dependabot[bot] in #679
- Bump next from 15.4.9 to 15.4.10 in /frontend by @dependabot[bot] in #680
- Bump starlette from 0.41.3 to 0.49.1 in /backend by @dependabot[bot] in #629
- Bump js-yaml from 4.1.0 to 4.1.1 in /frontend by @dependabot[bot] in #662
New Contributors
- @SrilakshmiSripathi made their first contribution in #623
- @lucas3003 made their first contribution in #627
- @tysoncung made their first contribution in #634
- @code-qtzl made their first contribution in #668
Full Changelog: v0.7.5...v0.7.6
Wall of Fame
What's Changed
- Bugfix: Unsquish response rate by job title graph by @lnovitz in #602
- chore: added jon-wesneski by @jonwesneski in #609
- DOC/Adding name to contributor list. by @okimin in #610
- Completed the workshop successfully and adding name to the list by @amelia2802 in #611
- Add Adam to Wall of Fame by @abuna1985 in #612
New Contributors
- @jonwesneski made their first contribution in #609
- @amelia2802 made their first contribution in #611
- @abuna1985 made their first contribution in #612
Full Changelog: v0.7.0...j
v0.7.0 - Enjoy the Peace & Quiet (We Didn't)
We heard you loud and clear: job hunting is stressful enough without a constant stream of rejection emails. So, our latest and greatest feature is designed to protect your sanity.
What's New (The Part We Tell Our Parents About)
🧘♀️ Inbox Zen, Activated: Rejection and application confirmation emails are now hidden by default. Your dashboard is now a sanctuary of hope, free from automated "thanks, but no thanks" messages.
🧹 Newsletter Begone: We added some filters to stop random newsletters from cluttering your analytics. It’s not as exciting as hiding rejections, but it’s honest work.
🏆 The Wall of Fame: We now have a special place to honor the amazing people contributing to this project. Welcome to the wall, @gillian-black!
💚 Jealous much? Make your own mark on the wall
How the Sausage Was Made (The Unfiltered Truth)
This release was an adventure.
One developer got into a heated argument with themself, committing a feature to redirect users, reverting it, committing it again, and then reverting it again, before finally fixing the bug.
A little while later, the same developer, deep in a frantic debugging session, decided that when it comes to server logs, "the more the merrier," right before pushing a last-minute fix db url commit just under an hour ago.
So while your inbox is now a peaceful oasis, our backend was a raging tire fire of frantic logging.
💡 And for the user who asked if we could build a feature that only delivers job offers? We've officially marked it as in scope. No promises, but we're trying. 😉
What's Changed
- Add Gillian Black to Wall of Fame by @gillian-black in #599
New Contributors
- @gillian-black made their first contribution in #599
Full Changelog: v0.6.0...v0.7.0
Release v0.6: A Series of Unfortunate Commits (& Filters!)
What's Changed (Roasted 👩🍳 Edition)
Our latest update is here, forged in the fires of 104 desperate commits.
We navigated a treacherous path paved with "messy shit," code simply described as "horrible," and a private key that was declared "fakakta."
After a heroic struggle against our own infrastructure, an existential crisis with cookies ("oops origin cookie noms"), and countless commits just labeled "deploy," we finally managed to ship a new search filter.
It wasn't pretty, but as one dev heroically proclaimed before merging, we're sending it "straight to prod baby."
Enjoy the new features... we think they work.
What's Changed (Raw 🥦 Edition)
- [FEAT]: Search by company name by @lnovitz in #561
- [FEAT]: Implement Continuous Deployment in AWS by @lnovitz in #593
- Deploy to AWS Lightsail by @macro1 in #417
Full Changelog: v0.5.3...v0.6.0
Pretty flow charts
What's Changed
- Clear Local Databases on Docker Build Command by @lnovitz in #494
- Add batch size configuration and update email fetching limits by @lnovitz in #537
- check for 0 processed emails by @lnovitz in #549
- [BUGFIX]: User Email Processing Failures by @lnovitz in #551
- Bugfix/sankey download 434 by @ChrysKoum in #538
- Sankey render dashboard by @lnovitz in #554
New Contributors
- @ChrysKoum made their first contribution in #538
Full Changelog: v0.5.2...v0.5.3
v0.5.2 - Clean Up 🧹 No More Dusty Response Rates
What's Changed
🥇 Response rate is actually somewhat accurate now!
- Add .idea to gitignore file by @ysmorid in #489
- added support@userinterviews.com by @hrishav398 in #488
- Not checking for null value when cleaning email text #438 by @MahmoudNasser01 in #441
- Status boxes are consistent and color changed for Dark and Light mode by @hrishav398 in #497
- Bugfix/458 response rate by @lnovitz in #506
- Update CONTRIBUTING.md by @hrishav398 in #508
- Remove write_to_csv endpoint and add conditional logging for message ID by @lnovitz in #511
- Fix Discord Link by @okimin in #513
- Fix CONTRIBUTING.md markdown formatting and add title to the Pull Re… by @andynu in #523
- Bugfix/Update Logo Images by @okimin in #521
- #440 add welcome new contributors GitHub workflow by @MahmoudNasser01 in #442
New Contributors
- @ysmorid made their first contribution in #489
- @MahmoudNasser01 made their first contribution in #441
- @okimin made their first contribution in #513
- @andynu made their first contribution in #523
Full Changelog: v0.5.1...v0.5.2
v0.5.1 - Rainbow in the Dashboard 🌈 & Cute Feedback Button (JAJA)
What's Changed
- Color Coding of Status Column by @hrishav398 in #460
Before:
New Contributors
- @hrishav398 made their first contribution in #460
Full Changelog: v0.5.0...v0.5.1


