Changelog
What's new in PrismCV. Features, improvements, and fixes.
July 2, 2026
Privacy policy contact addresses now reach a monitored inbox, and the policy states the operator, Endpaper Labs LLC.
Extension and AI assistant setup pages now say clearly when installs go live, with an early access contact.
June 29, 2026
Job search and filter counts load faster, especially under heavy traffic.
LinkedIn import now correctly handles work descriptions that span multiple lines.
Company and location job filters, and the documents list, load faster.
ATS keyword analysis runs faster, especially on repeat checks.
The applications board stays responsive even with hundreds of cards.
June 23, 2026
Your resume now gets an ATS score automatically when you upload it during onboarding, so you see where you stand right away.
Resume share links you copy now open correctly (were returning Not Found), the cover letter generator's Saved Jobs tab shows your tracked jobs, and the tailor upgrade prompt shows your real usage.
Resetting your password on a Google account now lets you manage it in Settings; ATS file uploads no longer use a check when the file can't be read; tailor errors show the right next step.
Application board now blocks invalid status moves up front (no more snap-back), editing an application that changed elsewhere no longer wipes your edits, and due-date labels are off-by-one no more.
Saving job preferences now refreshes your match scores right away, the data export includes all your preference and email settings, and your job re-ranking errors are no longer hidden.
Your data export (Settings, Privacy) is now complete: it includes resume edit history, saved searches, resume share links, your full profile bank, and email, usage, and account-security history.
Expired sessions now send you to sign in with a clear message, instead of leaving failed or blank panels on the screen.
The sign-in page no longer briefly shows the login form when you are already signed in.
Closing the resume tailoring window now cancels the in-progress generation instead of flashing a generation error.
Upgrading your plan no longer clears your billing renewal date.
Turning off the daily digest, or using its unsubscribe link, now actually stops the emails.
The weekly summary email's unsubscribe link now turns off the right category of emails.
Failed or cached ATS checks no longer use up one of your monthly checks.
The plan downgrade screen now warns you when you have more resume share links than the lower plan allows.
Slow job syncs now show a clear try-again-later message instead of a generic failure.
Job titles typed during onboarding are saved even if you don't press Enter first.
Hitting the saved-jobs limit while saving several jobs at once now shows a clear upgrade message.
Saved-search alert email links now open your actual search results, not the default catalog.
The saved-search match-count badge now reflects what the alert email will actually send.
Your target industries and company sizes now boost matching jobs in your match score.
Daily digest emails now arrive at the time and timezone you set, instead of a fixed hour.
Job listings now have a 'Tailor a resume' button that takes you straight into tailoring, and the 'Tailor' links in saved-search alert emails now open the tailoring flow instead of doing nothing.
You can now generate a cover letter right from the Prepare to Apply dialog, without leaving for the Documents page.
Import a job by pasting its URL: a new link button in the jobs header opens a paste field, so you can add postings on desktop without the share menu.
Resume upload no longer errors out when parsing a large file takes a while; it now falls back gracefully and returns your resume.
Cover letter generation and resume exports no longer fail on resumes created through the API or integrations.
Saved searches scroll in a single row instead of wrapping, and the ATS analysis page shows a content skeleton while loading.
Companies now appears in the main navigation, so you can reach your tracked companies without needing a direct link.
After creating a resume, a one-time prompt lets you jump straight to an ATS score check.
ATS quantification detection no longer counts calendar years as metrics, and now credits single-digit counts like "shipped 9 features."
ATS skills-in-context checks now use precise word matching, so a bullet only earns credit when it truly names a skill (short skills like "R" or "Go" no longer match inside words like "our" or "category").
ATS now recognizes common skill abbreviations (JS, TS, K8s, Postgres, Golang) as their full technical skills, so listing them no longer undercounts your hard-skill match.
ATS no longer reports "mixed date formats" when a resume consistently uses abbreviated months and includes a May date.
ATS buzzword detection now catches overused words even when they sit next to punctuation (e.g. "passionate," or "ninja!"), so the buzzword check no longer misses them.
The Resume Quality measurable-achievements check now uses the same accurate metric detection as the main score, so calendar years no longer count and single-digit results do.
The Resume Quality technologies-in-experience check now uses precise word matching, so it only credits bullets that genuinely name a skill.
The Resume Quality buzzword check now catches overused words even when they sit next to punctuation, matching the main score's detection.
Total years of experience no longer double-counts overlapping roles (e.g. concurrent or promotion-split positions); it now reflects your actual calendar span.
Years of experience now count inclusively of the end month, matching LinkedIn (a Jan to Dec role counts as a full year). Totals may read slightly higher than before.
Job titles with higher level numerals (e.g. "Engineer VII", "Manager 10") are now ranked correctly, so career progression across senior levels is detected.
Date-format consistency now recognizes year-only ranges (e.g. "2020 - Present"), so mixing year-only and month-name dates is correctly flagged as inconsistent.
June 18, 2026
Privacy policy now fully documents the optional Gmail integration, including exactly what we read (headers and short snippets only, never full emails) and that Gmail data never goes to AI models.
ATS checks now auto-detect the job title from a pasted job description, so your target role is captured even if you leave the title field blank.
Detected job title now applies consistently across ATS suggestions, the JD comparison view, and the exported PDF report, not just the score check.
Tailoring and ATS checks now work directly from a catalog job, tailored resumes show which job they target (even catalog ones), and the applications list shows each application's attached resume.
Job search now shows match scores for API, extension, and MCP callers (Bearer token), matching the web app and the single-job view.
Resume share links you copy now open correctly (were returning Not Found), the cover letter generator's Saved Jobs tab shows your tracked jobs, and the tailor upgrade prompt shows your real usage.
Resetting your password on a Google account now lets you manage it in Settings; ATS file uploads no longer use a check when the file can't be read; tailor errors show the right next step.
Application board now blocks invalid status moves up front (no more snap-back), editing an application that changed elsewhere no longer wipes your edits, and due-date labels are off-by-one no more.
Saving job preferences now refreshes your match scores right away, the data export includes all your preference and email settings, and your job re-ranking errors are no longer hidden.
Your data export (Settings, Privacy) is now complete: it includes resume edit history, saved searches, resume share links, your full profile bank, and email, usage, and account-security history.
Expired sessions now send you to sign in with a clear message, instead of leaving failed or blank panels on the screen.
The sign-in page no longer briefly shows the login form when you are already signed in.
Closing the resume tailoring window now cancels the in-progress generation instead of flashing a generation error.
Upgrading your plan no longer clears your billing renewal date.
Turning off the daily digest, or using its unsubscribe link, now actually stops the emails.
The weekly summary email's unsubscribe link now turns off the right category of emails.
Failed or cached ATS checks no longer use up one of your monthly checks.
The plan downgrade screen now warns you when you have more resume share links than the lower plan allows.
Slow job syncs now show a clear try-again-later message instead of a generic failure.
Job titles typed during onboarding are saved even if you don't press Enter first.
Hitting the saved-jobs limit while saving several jobs at once now shows a clear upgrade message.
Saved-search alert email links now open your actual search results, not the default catalog.
The saved-search match-count badge now reflects what the alert email will actually send.
Your target industries and company sizes now boost matching jobs in your match score.
Daily digest emails now arrive at the time and timezone you set, instead of a fixed hour.
AI resume tailoring and cover letter generation work again.
ATS scores are more accurate. The checker now credits skills you clearly demonstrate even when the exact keyword is missing, no longer flags your skills list as keyword stuffing, and ignores boilerplate job-description phrases when matching.
ATS keyword match scoring is now smoothly graduated, so a resume just under the match threshold no longer drops several points versus one just over it.
ATS keyword scoring now compares your job titles to the actual role instead of the company name, and checks industry terminology against the job description, so well-matched resumes are no longer unfairly capped.
If AI resume suggestions are slow to generate, you now get a clear retry message instead of a generic error.
The application pipeline board now always shows the latest status, including applications marked applied from the browser extension, instead of sometimes showing a stale one.
June 10, 2026
Two new blog posts: how ATS systems actually parse your resume, and how resume keyword matching works (and how to tailor honestly).
Every job in the catalog now has its own public page with the full description, salary, location, and apply link. Open any job from Explore or a company profile without signing in.
Resume examples, job guides, and interview prep pages for 14 more roles.
June 10, 2026
Saved job limits now work the way the pricing page describes: free plans include 30 saved jobs, and you get a clear upgrade prompt when you reach the cap instead of surprises later. Removing or hiding saved jobs is always available.
Monthly AI and ATS check credits now reset on your billing anniversary every month for annual subscribers, and the billing page shows the same usage numbers that limits are enforced against.
MCP support ticket tools and pipeline analytics no longer fail with an authorization error. New MCP tokens also include support scopes.
The I Applied button on job pages now works even after you have edited the application. It previously failed with a conflict error.
Saving a search now adds it to your saved searches list immediately.
Status changes, edits, and deletions no longer appear to undo themselves when you leave a page and come back within a minute.
Snoozing or dismissing a dashboard reminder now shows an error message when it fails instead of pretending it worked.
Sharing a job link to PrismCV imports it again. The import page was failing before contacting the server.
You can now remove saved jobs even after the listing expires. Stale saved jobs were stuck before.
Using a kanban card's options menu (Move to, Mark Rejected, Delete) no longer also opens the application detail page, so the undo option stays available after a move.
The status menu on the application detail page now only offers moves that are actually allowed from the current status, and shows a clear error message if a status change fails.
Profile Bank no longer shows stale entries after you add or delete items and navigate to another page and back.
The email verification banner can be dismissed again. The dismiss button hides it for 24 hours.
The Share Your Score button on the ATS checker now copies your score link with a visible confirmation on desktop browsers, and tells you when copying fails instead of doing nothing.
Cover letter editor no longer shows a false leave-site warning when you navigate away without making any edits.
Changes you make right after a page loads (like adding a skill) now show up immediately instead of after a refresh.
June 9, 2026
Tracking a company that another user already tracks no longer fails with an error.
Sorting jobs by best match no longer skips or repeats listings when loading more results.
Login, signup, password reset, and job import now explain exactly what went wrong (connection problem, server error, or a specific request issue) instead of showing a generic error.
June 7, 2026
Deep links now return you to the page you wanted after signing in, instead of bouncing to the dashboard.
Clicking 'Not Yet' on the dashboard's 'Did you apply' banner now snoozes the prompt instead of deleting your prepared applications.
The 'Did you apply to these jobs?' dashboard banner now only asks about applications the system auto-created from outbound link clicks, not ones you prepared yourself.
Share a job posting from any app, and we'll save it straight into PrismCV.
Pricing page Free plan button now goes to sign-up for new visitors.
Browser tab titles now show the right page name on Applications, Jobs, Documents, and Billing.
/cover-letters now redirects to the cover letter tab inside Documents.
Application cards on the Kanban board open the detail view when you click anywhere on them, not just the title.
Hitting the free ATS check limit now shows an upgrade prompt with reset date instead of a generic 'analysis failed' screen.
Documents list and counts now refresh immediately after generating a cover letter, no hard reload needed.
Visiting a non-existent resume URL now shows a clear not-found page with a Back to Documents link instead of a Retry button that cannot help.
Cover letter editor no longer asks 'leave this page?' after the letter is deleted from another tab.
Pro subscribers no longer see the free-tier checks-remaining badge on the ATS checker.
The job preferences prompt no longer appears inside the Saved or Applied job results.
Login error message now clears as soon as you start correcting your email or password.
Quick Tailor no longer names new resumes 'Quick Tailor - Target Company - Target Role' when those fields were left blank, falling back to the base resume name.
Fixed signup and login analytics events that weren't being recorded, so funnel reports are accurate again.
Fixed Google sign-in and subscription analytics events that still weren't recording after the prior fix.
Onboarding no longer crashes for visitors using their browser's built-in page translation.
Your resume now gets an ATS score automatically when you upload it during onboarding, so you see where you stand right away.
The free ATS checker now shows your score and category breakdown up front, then lets you create a free account to unlock the full detail: every issue found, your missing keywords, and step-by-step fixes.
ATS results now phrase each detected issue as the problem itself, so they are clearer to act on.
Pro members no longer see the free-tier upgrade wall after running an ATS check.
The billing page now shows a specific message when the customer portal cannot be opened, instead of a generic error.
May 9, 2026
Social proof bar now shows real average ATS score improvement instead of a hard-coded fallback.
May 8, 2026
Document actions now show spinners during async work. No more clicking Archive and wondering if anything happened.
Searching in Documents with no matches now shows a clear-search prompt instead of the generic 'create your first' empty state.
Tailor guardrail now also catches AI-fabricated company and school names, not just numbers.
Sidebar no longer briefly expands then collapses on every page navigation.
Sidebar holds its collapsed state on every page load with no expand-then-collapse flash.
Pages you've already visited in this session render instantly with cached data when you navigate back to them.
Cached dashboard data is now strictly scoped to the signed-in user. Switching accounts on the same tab no longer shows the prior session's content for any moment.
Application reminders now back off after a couple of daily nudges and stop entirely if you keep skipping them, instead of emailing the same overdue follow-up every day.
May 2, 2026
Tailor flow streaming path now uses prompt-injection guard, response cache, and parses raw resume text more strictly.
April 28, 2026
Dashboard cards now appear in one smooth motion instead of skeleton-then-tick-up-from-zero, eliminating the perceived double-load on hard refresh.
Behind the scenes: tightened API input validation, added safety nets against duplicate billing actions across replicas, and split two of the largest backend files for faster iteration.
Saved-search alert emails now include ATS scores, matched keywords, and one-click resume tailor links. Added per-search snooze and direct-apply-only filtering.
New saved-search rail at the top of /jobs lets you switch between saved searches with one click and tune alerts inline. Replaces the standalone /jobs/saved-searches page.
Saved-search alert email links now expire after 30 days. Filter allow-list is enforced everywhere a saved search is used.
Saved-search alerts no longer duplicate when a database hiccup interrupts the cron. Explicit source filter wins over direct-apply-only. Per-user alert window now uses posted-at.
Saved-search rail tracks usage in analytics. New database index speeds up alert queries for users with thousands of jobs.
Saved-search alert emails are now actually relevant. Searches without criteria use your career preferences as a fallback. Each job shows ATS score and matched keywords. Too-broad searches get an explicit 'tighten criteria' warning.
Share your ATS score with a public link. Each share gets a preview image with your score.
Score your resume button stays in reach as you read blog posts and comparisons.
Subscribe to weekly resume tips. Inline newsletter form on every blog post and ATS guide.
ATS-by-company guides for Workday, Greenhouse, Lever, Taleo, and iCIMS at /ats.
April 25, 2026
AI-tailored resumes no longer spell out common acronyms inline like "Business-to-Business (B2B) Software as a Service (SaaS)" or "Application Programming Interface (API)". The Claude tailoring prompt now uses these acronyms directly, and the ATS scorer stops flagging recruiter-common terms as needing expansion.
Hide sections from your PDF with the new eye toggle, and move custom sections between main and sidebar columns in two column layouts.
Pricing page now lists Free-tier limits for ATS history (3 scores) and share links (1 active link) so the difference vs Pro is clear.
Yearly billing badge now reflects the actual annual savings instead of a hardcoded value.
Pricing FAQ now answers tax/VAT and what happens to your data if you cancel.
Pricing page Get Started button now links to your dashboard when you are signed in.
Welcome email now arrives the moment you verify your email or sign in with Google, instead of waiting for the next morning's send.
AI usage emails alert you when you're at 80% and 100% of your monthly free generations, so the limit doesn't catch you mid-task.
Plan upgrades and downgrades now send a confirmation email so you have a receipt of every change.
Drip and digest emails now respect your timezone and arrive in the morning, not at 3 AM.
Saved-search alerts no longer fire multiple times per day for the same search.
Detail pages (companies, jobs) and auth pages now render instantly with the data already in place, no skeleton flash on load.
Notifications across the app now share one queue, so two actions in quick succession no longer overlap on screen.
Pricing page checkout button now matches the rest of the app: same 15s timeout, same retry message, and now appears in the analytics funnel.
Resume editor's interview-prep follow-up copy button no longer leaves a stale timer running if you close the panel right after copying.
Stripe checkout sessions, AI cover-letter generation, and Resend webhook handling now ignore duplicate retries instead of running twice.
Pricing page no longer double-counts anonymous clicks in the Free to Paid analytics funnel.
April 23, 2026
Custom sections (Featured Project, Community Leadership, etc.) now render in the resume editor preview and the exported PDF. Previously they were saved to the resume but silently skipped when generating the document.
Resume editor page-count indicator now matches the exported PDF when custom sections are present. The faster Rust/WASM measurement engine previously dropped custom sections, causing the preview to show a different page count than the download.
Reordering sections on a resume now stays in sync across the preview, the page-count indicator, and the exported PDF. The high-performance measurement engine previously used a fixed section order, which caused preview and export to diverge for reordered resumes.
April 21, 2026
Schema constraints added on the role-pages tables to prevent enum value drift.
April 21, 2026
Job notes now show an 'edited' timestamp when they've been modified after creation.
April 21, 2026
Salary medians on Jobs by Role pages now reflect the actual market when postings publish only one of min/max. Aliased URLs (e.g. /resume-examples/swe) now redirect to the canonical role page instead of 404.
April 21, 2026
Job notes: Load older notes no longer skips or duplicates entries on jobs with pinned notes, and the visible count now updates immediately after adding a note.
April 21, 2026
Failed note pin toggles now show an error message, and the MCP server's list_job_notes tool now returns notes correctly.
Job notes list now paginates and the notes API validates UUIDs so malformed links return a clear error.
April 21, 2026
Cover letters now open in a dedicated editor with inline rename, auto-save, job linking, and PDF download.
Cover letter list and grid now expose rename, duplicate, download, and link-to-job actions to match resumes.
Cover letters can now be archived from the overflow menu and shown again via the Show archived documents toggle.
Cover letter editor warns when another tab saved over your changes instead of silently overwriting.
Renaming a cover letter now shows the new name everywhere, not just in the editor.
Cover letter search now matches the editable name, not just the linked job title and company.
April 21, 2026
FAQ now points at 'Settings > Data & Privacy' for data export and account deletion (was an old 'Danger Zone' section name that no longer exists).
Extension Privacy page 'Last updated' date now matches the format used on the main Privacy and Terms pages.
Changelog page shows a friendly empty state if no entries have shipped yet.
April 20, 2026
Profile Bank tabs are now always reachable — new accounts land on the Contact tab with a dismissible Quick Start banner instead of a full-screen empty state.
Profile Bank Contact tab no longer asks you to type your location twice — pick on-site, hybrid, or remote and the resume header is built from your city and state automatically.
The 'unsaved changes' bar on the Profile Bank Contact tab now stays pinned to the bottom of the screen instead of disappearing off-screen.
Work mode (on-site/hybrid/remote) is now set per job in the Professional Experience tab — your Treeline role can be remote while your past WebJaguar role is hybrid, instead of one global setting.
Empty Profile Bank tabs (Experience, Projects, Skills, Education, Certifications, Achievements) now show the entry form inline so you can see all the fields and start typing right away, instead of a generic 'no entries yet' button.
The 'unsaved changes' bar on the Profile Bank Contact tab no longer slides under the dashboard sidebar.
Profile Bank entry forms (Experience, Projects, Skills, Education, Certifications, Achievements) now open inline. No more modal dialogs: edit a card and the card itself becomes the form, add another and the form appears at the top of the list.
Profile Bank Experience form: 'Work Mode' label no longer overlaps the 'Not set' placeholder. Section headings (Role, Dates, Details) now match the cleaner overline style used on the Contact tab.
Profile Bank entry forms are easier to scan: section headings have small icons and the form card has a subtle elevation with a thin spectral accent stripe.
Fixed modal-on-modal bug in Prepare-to-Apply flow. The dialog now closes before the follow-up reminder opens.
Prepare to Apply no longer claims you applied. It tracks the job as Prepared, and a new 'I Applied' button confirms the actual submission.
Applications Kanban now shows 'Prepared' in place of the old 'Draft' and 'Ready to Apply' columns, matching the updated apply flow.
Clicking 'I Applied' on a prepared job no longer crashes the page. The follow-up reminder now opens correctly.
Chrome extension is now featured on the homepage and accessible from the main nav.
Launched in-depth Software Engineer career hub: resume guide, live job listings, and interview prep with sample answers.
Software Engineer resume page now shows two visual resume mockups (entry-level and senior) so you can see what a finished ATS-friendly resume looks like, not just bullet snippets.
Chrome extension no longer saves jobs with garbage titles from custom career pages. Greenhouse-embedded jobs are now looked up by their job ID to get the correct title and company.
Edit a saved job's title, company, location, and posting URL directly from the job detail page.
Applications table now shows an Updated column and sorts by most recently updated by default.
Job detail page tags jobs saved via the Chrome extension, and the applications detail links back to the underlying job posting inside PrismCV.
Dashboard pipeline funnel columns now line up evenly, and legacy draft/ready counts collapse into Prepared to match the unified pipeline.
Launched career hubs for five new roles: AI Product Engineer, Product Manager, Data Analyst, UX Designer, and Marketing Manager. Each includes a resume guide with two visual sample resumes, a live job feed, and 15+ interview questions with sample answers.
Resume Examples is now in the main nav. New hub pages at /resume-examples, /jobs-for, and /interview-questions list every role we have a guide for.
Tightened SEO metadata across all role pages and added unique social-share images per role.
Tailor now accepts a free-form "specific direction" (up to 300 chars) so you can steer the AI beyond the three preset tones.
Tailored resumes now show exactly which bullets the AI guardrail reverted when it tried to invent metrics, along with the text it tried to write.
Tailored resume pages show a match-score delta against your base resume for the target job, so you can see instantly whether tailoring helped.
Tailored resumes auto-archive after 30 days with no application, or when their linked application is rejected/withdrawn. Keeps the Documents list clean.
A Discard option appears for 12 seconds after tailoring so you can quickly bail on a tailored resume that missed the mark.
Tailored resume pages now show a bullet-by-bullet diff against your base resume so you can see exactly what the AI changed.
Each changed bullet now shows a short "Why:" rationale explaining which JD keyword or skill the edit targets.
Regenerate a single bullet with free-form feedback ("make it more technical", "shorter") instead of re-tailoring the whole resume.
Pre-tailor keyword review: the tailor modal now surfaces the JD's top skills as chips so you can confirm or adjust what the AI optimizes for before spending a credit.
Role pages now show a reading time estimate, nav link contrast meets WCAG AA, and headings follow correct order for accessibility.
Profile bank preview: the tailor modal now shows the specific experience, projects, and skills from your profile bank that the AI will pull from. Opt out of the whole bank with one click.
Option to draft a cover letter alongside a tailored resume in one flow. The cover letter generates in the background using the tailored resume's phrasing.
Multi-variant tailor (Pro): generate three tailored resumes in parallel with different emphasis (impact, technical, leadership) so you can pick the best angle.
Extension guide page now matches the dark marketing theme and its title no longer sits behind the header.
Slimmed the marketing header to Jobs, Extension, and Pricing. The dropped links stay in the footer and the mobile menu.
Multi-variant tailor now saves each variant with a distinct name suffix (Impact-leaning, Technical-leaning, Leadership-leaning) so the three versions are easy to tell apart in Documents.
Documents page has a "Show archived resumes" toggle so auto-archived tailors can be browsed and recovered.
The chained cover letter now reports success or failure in a toast instead of silently dropping errors.
Multi-variant tailor reserves all credits atomically in a single transaction, closing a race where two concurrent clicks could exceed a monthly cap.
Mobile menu groups primary and secondary links, with a 'More' divider in between so the list is easier to scan.
Rate limited the pre-tailor helper endpoints (keyword extraction, profile-bank preview, resume archive) so they can't be hammered.
Regenerating a single bullet no longer reloads the whole page; in-flight editor state is preserved.
Before/after diff now covers skill lists and custom sections, not just experience and projects.
Regenerate bullet, preview tailor bank, extract tailor keywords, and archive resume are now exposed as MCP tools for agent workflows.
Generating a cover letter from a resume that is already linked to a job now uses that job automatically, instead of asking you to pick one again.
Chrome extension no longer creates garbage applications with titles like 'Thank you for applying' or companies like 'Embed'. If you submit without saving the job first, the extension now prompts you to save next time instead.
Cover letter generator now lets you pick a length: Short (1 paragraph), Standard (3 paragraphs), or Detailed (4-5 paragraphs).
Pipeline funnel: Offer card now aligns with the other stage cards instead of sitting lower.
Applications page: cleaner card options, deduped Confirmation Number field, status-aware bulk actions, working Select All, dynamic essay prompt, and safer job posting links.
Applications detail page: one-click status changes from the header pill, Link Resume shortcut when unlinked, scoped page titles that survive back-navigation, and alerts that deep-link directly to the Next Action field.
Jobs page: Applied tab count now reflects catalog applies, sort lock tooltip, Undo on hide, salary-not-listed label, expanded skills toggle, and better formatting on expanded job descriptions.
Opening ATS reports no longer bumps the resume's modified date.
Empty resumes show "Empty" instead of a red 0% ATS score.
The 'Perfect Score' banner no longer shows when your score is capped at 70 without a job description.
Sort documents by ATS score (high to low or low to high).
The ATS stats card is scoped to resumes so it doesn't show when viewing cover letters.
Bulk-duplicating a resume no longer produces '(Copy) (Copy) (Copy)' piles.
The 'Generate with AI' button now discloses that it uses your monthly AI generation quota.
The free ATS Checker now recognizes signed-in users: it links to your dashboard and swaps the Pro CTA for an in-app upgrade.
The Documents heading now reads correctly to screen readers (was running together as 'MyDocuments').
The browser tab title now updates to match the resume you're editing.
The 'External' ATS upload chip now has a tooltip explaining what it does.
Profile Bank tabs no longer auto-open the Add form every time you switch to them.
Profile Bank dates no longer show the wrong month on the West Coast (e.g., June 1 no longer displayed as May).
Import from Resumes now tells you how many experiences, projects, and skills were imported.
Importing skills from resumes now dedupes near-duplicates (e.g., 'A/B Testing' and 'A/B Testing & Analytics') and cross-group repeats.
Profile Bank experience category chip now renders with proper capitalization (Professional, Freelance, Volunteer, Internship).
Profile Bank Add Entry button is disabled on empty sections where the add form is already visible.
API token list in Settings now shows consistent date formatting and a Never used label when applicable.
Revoking an API token now has an explicit Cancel button alongside the confirmation, so you can back out if you click the trash by mistake.
Delete Account confirmation now supports pressing Enter to submit and tells you upfront that the text is case-sensitive.
Free-tier users see a 'Pro' lock chip next to the Daily email digest toggle, making the upgrade gate more obvious.
Support empty state no longer duplicates the 'New ticket' button already shown in the section header.
The Upgrade link on the billing usage card now scrolls to the plan comparison instead of a broken anchor.
Plan comparison tells annual subscribers why the monthly button is disabled ('Available at renewal') instead of misleadingly labeling it 'Current Plan' alongside a different price.
Downgrade warnings now read more naturally, for example 'Resumes: 10 (you) vs 3 allowed on Free'.
Billing dialogs (Cancel, Downgrade, Upgrade) now respect dark mode, replacing hardcoded grey backgrounds with theme-aware hover tones.
Role pages now use the dark marketing theme with a centered hero, brand spectral accent, inline reading-time indicator, and interview questions grouped by category.
April 18, 2026
Documents header no longer shows a negative slot count like "-26 slot remaining" when you're over your plan. It now reads "Resume limit reached".
The changelog announcement banner is now dismissible with an X. The close button was being dropped by a Material-UI quirk when the banner also had a call-to-action link.
Dashboard Free Plan Usage shows clearer over-limit phrasing ("26 used · limit 3") with a red bar when you've exceeded your plan, instead of a confusing "26/3" fraction.
Applications page no longer displays "1interviewing" without a space between the count and the label.
Companies directory no longer shows obviously-broken salary ranges like "$0 - $0" or "$24 - $520k" (hourly-rate leak into yearly fields).
Dashboard stat cards renamed: "Total Jobs" → "My Matches", "New Today" → "New (24h)". The count now matches what the Jobs page shows.
Invalid or expired password reset links now show a "Request New Reset Link" button, not just an error.
Settings breadcrumb now shows the active section (e.g., "Home / Settings / Notifications") and updates when you switch sections.
Billing page no longer shows a "Canceled" chip for free-tier users. The chip was misleading if you'd never had a paid subscription, or alarming after a downgrade.
/support and /support/tickets no longer 404. They now redirect to your tickets in Settings.
Pipeline Funnel card labels no longer wrap mid-word ("PHONE / SCREEN") on narrow columns.
/jobs now defaults to the "For You" tab when you have preferences set, instead of showing all 13k+ jobs.
Interviews stat card no longer says "Apply to jobs to get started" when you already have applications. It now reads "Watch this space, interviews follow".
Dashboard Analytics section is collapsed by default for users with no applications yet. Less empty-chart noise on your first session.
Completing the onboarding checklist now shows a brief "You're all set 🎉" card instead of silently disappearing.
The Pro trial prompt no longer fires immediately at the end of onboarding. Trial CTAs now appear at moments when you've felt the free tier's limits.
Dismissing the onboarding checklist now persists across devices and cleared browser storage. Previously it was per-browser only.
Onboarding checklist now includes "Run your first ATS check", the activation milestone where most of PrismCV's value lives.
Dashboard welcome message on return visits now points to your next onboarding step (e.g., "Resume saved. Run an ATS check.") instead of a generic greeting.
Day-3 and Day-7 onboarding emails now skip users who've already done the action the email is nudging them to.
April 17, 2026
Gmail inbox scanner. Connect your inbox in Settings and PrismCV will auto-detect application outcomes (interviews, rejections, offers) from recruiter emails and move your Kanban cards for you.
Pipeline Funnel card on the dashboard. See your conversion rate from Applied → Phone Screen → Interview → Offer at a glance.
Browser extension "Mark as Applied". Click once after submitting a job application in your browser and the card is logged with resume + job link, no manual entry.
315 new company career pages added to the job catalog (Greenhouse, Ashby, Lever boards) plus a Y Combinator "Work at a Startup" crawler.
Remote, hybrid, and onsite location filters on /jobs are now free for everyone. Only salary and skills filters remain Pro.
Grace-period warning and expired-subscription notification emails. You'll hear from us before features get gated instead of silently losing access.
April 16, 2026
Upgrade prompts now appear before you hit a limit. No more surprise 429 errors when creating resumes, running ATS checks, or generating cover letters.
Billing page shows a friendlier display when your usage exceeds your plan ("26 created, 3 in plan") instead of a red progress bar.
Resume creation unified into a single wizard flow with template picker. The old blank-editor shortcut has been retired.
Cover letter tone selector redesigned as selectable cards with keyboard arrow-key navigation.
Add Application dialog now groups fields into labeled sections (Job Details, Status, Resume, Notes) for easier scanning.
Kanban drag-and-drop is snappier. Removed a forced browser reflow that added 250ms+ to every card drop.
Rename dialog now shows a loading spinner during save instead of appearing frozen.
Vague "Something went wrong" error on resume creation replaced with a specific message.
April 15, 2026
TOTP two-factor authentication for admin accounts.
Trial status indicator in the sidebar with link to billing.
Stripe webhook now includes a 48-hour email cooldown for payment failure notifications to prevent inbox spam during retry loops.