Changelog
What's new in PrismCV. Features, improvements, and fixes.
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.