Roadmap

What's shipped, what's in flight, and what's next. Email Suryaraj8147@gmail.com to vote on or request features.

32 shipped 0 in progress 3 planned Subscribe

Builder

Markdown + ATS plain-text export

Shipped

Dev-friendly .md and ATS-safe .txt exports.

Streaming AI responses

Shipped

Cover letter and AI suggestions now stream live.

Keyboard shortcut cheatsheet

Shipped

Ctrl+/ opens a full list of shortcuts.

Last-edited timestamp

Shipped

"Saved 2m ago" in the builder footer.

Dark mode persistence

Shipped

Toggle survives page reload and navigation.

ATS-risk badges on templates

Shipped

Every template card shows ✓ / △ / ✗ ATS with a tooltip — Sidebar/Modern/Tech flagged risky.

Cover letter as PDF cover page

Shipped

Export dialog checkbox prepends the cover letter as page 1 of the PDF.

JSON Resume import/export

Shipped

jsonresume.org schema — round-trip your resume in/out of any JSON Resume tool.

Share-link expiry

Shipped

Never / 24h / 7d / 30d. Expiry baked into the URL fragment; viewer renders "expired" past it.

Page-break preview guide

Shipped

Dashed line in the live preview at A4 boundaries; hidden in print.

Resume version history

Shipped

Up to 30 named snapshots, auto-save hourly, restore with pre-restore backup.

Shareable read-only link

Shipped

/r#<payload> — gzip+base64url encoded URL fragment, zero backend.

LinkedIn JSON import

Shipped

Auto-detects LinkedIn Data Export, Voyager API, JSON Resume formats.

Resume diff viewer

Shipped

Word-level LCS diff, inline or side-by-side.

AI

Streaming responses

Shipped

SSE parser for Groq — chat-style incremental output.

JD-tailored rewrite

Shipped

Paste JD, AI rewrites summary + top bullets with diff preview. Auto-snapshots first.

Cover letter tone variants

Shipped

4 tones: Professional, Formal, Casual, Concise. Per-tone temperature tuning.

ATS score trend

Shipped

SVG sparkline of score history with debounced snapshots.

Infrastructure

Account deletion API

Shipped

GDPR-safe account deletion (user + profile cascade, R2 avatar cleanup).

Server-side rate limiting

Shipped

Enforce AI/PDF limits on the server. Kills bypass vector.

Upstash-backed rate limiting

Shipped

Per-IP/per-route limits shared across every Lambda when UPSTASH_REDIS_REST_URL is set. Falls back to in-memory.

Stripe webhook idempotency

Shipped

webhook_events table records every processed event.id; retries short-circuit before mutating state.

DB indexes for cron query paths

Shipped

profiles.last_seen_at, inactive_warned_at, notify_product, stripe_customer_id, user.created_at — no more full-table scans.

Inactive-account lifecycle

Shipped

Daily cron warns then deletes accounts inactive for 6 months with grace period.

R2 cleanup on avatar overwrite + delete

Shipped

Old avatars removed from Cloudflare R2 before a new upload, and the user prefix is wiped on account delete.

Schema-version migration scaffold

Shipped

Zustand persist version + migrate hook so future schema changes don't break existing localStorage payloads.

Stripe checkout for Pro tier

Shipped

Unlimited AI + PDF — signed webhooks, idempotent handlers.

Waitlist backend

Shipped

/api/leads/waitlist with rate-limit + duplicate guard.

Server-component migration

Planned

Move 20+ marketing pages to server components for real SEO metadata.

Bundled pdfjs worker

Shipped

Worker copied to /public/pdfjs/. Works behind corporate firewalls.

Growth

Changelog RSS feed

Shipped

/changelog/rss.xml for power users.

Status page

Shipped

/status shows health of every upstream dependency.

Public roadmap

Shipped

This page.

Referral codes

Planned

Free Pro month per invite.

Template marketplace

Planned

Community-submitted templates with moderation.