- Shipped
Journalists got a relationship workspace
Every journalist now has a status (Good / Neutral / Strained / Cold), a preferred contact channel, and an activity timeline that captures every pitch, reply, placement, meeting, social moment, and note. The new-pitch picker ranks candidates by warmth so your strongest leads land at the top, not the alphabet.
- Relationship stats card on every journalist page — placements, replies, last-touched dates at a glance
- Inline editor for status + preferred contact, no more 12-field dialogs to make a quick update
- Activity timeline merges auto-logged pitches with manual entries (meetings, RTs, free-form notes)
- Pitch picker now surfaces "3 placed", "8 replied", "last reply 4d ago" badges next to each name
- Filter the Journalists list by client to see who you work with for each brand
- Improved
Mentions counter now respects your timezone
The dashboard's "Mentions today" tile used to use a rolling 24-hour UTC window — so at 6 AM Pacific you'd see mentions from "yesterday." Now it counts mentions since midnight in your organization's timezone, the way a human would expect.
- Improved
Loading times got dramatically faster
Customer dashboard went from 13s to ~1s cold load (13× faster). Admin dashboard 19s → 3s (6× faster). Pages now stream content in progressively instead of waiting for everything before showing anything — you see structure instantly, data fills in.
- Streaming page renders — content shows up the moment it’s ready
- Pre-aggregated KPI snapshots refresh every 5 minutes so the dashboard rarely waits on a query
- Database tier upgrade lifted the throttle on parallel queries
- Shipped
AI deep review on every pitch
New "Get AI review" button on every pitch detail page. The heuristic coach scores structure for free; this calls Claude for the editorial layer — hook strength, lede placement, tone, personalization gaps, CTA clarity. Costs about 2¢ per review and surfaces a verdict + score + collapsible issue list with one-click rewrites you can copy.
- Verdict + 0-100 score + up to 5 ranked issues
- Suggested rewrites you can copy and paste
- Praise chips when something’s genuinely working
- Shipped
Send feedback from anywhere in the app
New floating Feedback button bottom-right of every dashboard page. Tap, pick a type (Bug, Idea, Praise, Other), write a quick note. We auto-capture the page you were on so you don’t have to explain. We read every submission.
- Shipped
Tell the agent to message your Slack
When the chat agent has something worth sharing — a trending topic, a draft pitch, a mention thread — you can now ask it to post the result to a Slack channel. Connect Slack at Settings → Integrations, then say "post a summary to #pr-team" and it handles the rest.
- Improved
Per-client polish: Quick Actions, sentiment, deep-links
Per-client dashboards (when you pick a client from the filter) now have a Quick Actions row at the top — Generate Pitch (pre-filled with the client), Chat with Agent, View Mentions, View Alerts. Each mention shows a sentiment emoji. Each trend shows velocity direction at a glance.
- Improved
One-click access to your per-client notification preferences
Each client detail page now has a "Manage my email preferences for this client" button. Lands you in /settings/notifications with the right tab open and your client’s card already expanded. No more digging through tabs.
- Improved
Faster trend monitoring
Trend monitoring used to refresh every 2 hours. Now it’s every 30 minutes — 4× more responsive. High-urgency clients get processed first when the queue is busy, and bumping a client’s urgency to "high" fires an instant refresh instead of waiting for the next cycle.
- Improved
Smoother agent responses
When the agent is writing a response, the text now flows in smoothly instead of populating in chunky phrases. We render markdown progressively (bold/headers/lists snap into place as they complete) and batch updates to your browser’s paint rhythm so it feels like watching someone type.
- Fixed
Logout that actually logs out
Logout occasionally took 3-7 seconds with no visual feedback, and sometimes failed silently. Now there’s a "Signing out…" indicator the moment you click, a 3-second timeout that redirects you anyway if the server is slow, and middleware that catches any orphaned session on the next page load.
- Fixed
No more "Access Denied" flash when switching admin tabs
Admin pages briefly flashed "Access Denied" about 40% of the time when navigating between tabs, then resolved to the real page a moment later. The race condition between auth resolution and profile loading is now bridged with a proper loading state — clean transitions every time.
- Fixed
Member-scoped dashboards finally match the lists
If your role is "member" and you’re assigned to specific clients, the dashboard tile counts (Active Alerts, Active Pitches, Mentions) now reflect ONLY those clients. Previously the tile showed the org-wide total while the underlying page filtered to your scope — mismatched numbers for the same data. Now they agree.
- Shipped
AI fallback chain when Anthropic is down
When the primary AI provider hits an outage or rate limit, the agent now transparently routes to Gemini Flash or GPT-4o-mini instead of failing the call. You’ll see a small banner explaining the temporary downgrade, and full Claude service resumes automatically when primary is healthy again.
- Shipped
Per-user AI usage budgets
Org owners can now see exactly which team members are burning AI credits and set custom per-user daily/weekly caps in Settings → Team. Prevents one user from accidentally consuming the whole org’s monthly budget, and surfaces who needs more headroom for legitimate work.
- Shipped
White-glove provisioning for partner agencies
New /admin/organizations/new flow for sysadmins to provision an agency with pre-loaded plan, clients, and team invites in one pass — useful when onboarding a partner who pre-paid or who has specific setup expectations.
- Improved
Pitch generator drops you straight on the coach
When a pitch finishes generating, you now land on the new pitch with the quality coach already scrolled into view and briefly highlighted — no more hunting for "where did my draft go?" or scrolling past the body to find the score.
- Improved
Agent welcome screen knows your clients
The "How can I help you today?" screen now suggests prompts using your actual client names ("What’s trending this week that Nike could comment on?") instead of generic copy. A daily rotating tip below the prompts surfaces an agent capability you might not have tried yet.
- Fixed
Mobile chat fixes — rename, delete, and copy on touch
On phones, the conversation row’s actions menu (rename / export / delete) and the assistant message’s Copy button were hidden behind hover-only states, making them invisible on touch. Both are now visible on mobile while staying reveal-on-hover on desktop.
- Security
Tightened access controls on agent conversation memory
Hardened the row-level security on the cross-conversation memory table so the contents of one user’s agent context can’t leak into another’s, even from a malformed update. No customer impact — defensive fix.
- Shipped
Your agent remembers
Conversations across chats now leave a lightweight summary your agent can recall in future sessions. Mention a client or topic once today, and tomorrow’s chat already knows about it. Pin a chat’s memory to make the agent always carry that context (e.g., "I’m the CMO at Acme, always casual tone").
- Shipped
See exactly what your agent did
Every assistant reply now shows the tools the agent actually used ("Pulled up client profile", "Drafted a pitch", "Searched the web") as small chips beneath the message, plus a tiny stats line ("12.3s · 2,847 tokens"). Full transparency, no black boxes.
- Improved
Mention inbox overhaul — triage like email
The mentions page is now a full triage inbox: Inbox, Reviewed, Snoozed, and Hidden tabs with live counts, Gmail-style bulk actions, and a snooze option so a hot story you want to come back to Monday disappears from the queue and pops back exactly when you told it to.
- Four tabs with live count badges (Inbox N · Reviewed N · Snoozed N · Hidden N)
- Snooze any mention for 1, 3, or 7 days — auto-returns to Inbox when the timer’s up
- "Wake now" bulk action if you need it back sooner
- Bulk actions adapt per tab — no dead buttons
- Improved
Pitch generation in the background
Close the generate dialog whenever you like — your pitch keeps cooking server-side and lands in your drafts when it’s done. No more waiting with a spinner if a pitch takes 30+ seconds, no more "request timed out" errors on long generations.
- Shipped
Pitch quality coach
Every draft pitch now gets an instant 0–100 score with actionable nudges on subject line, hook strength, CTA, length, and personalization. No extra AI cost — it’s pure heuristic. Catches the bad pitch before the reporter does.
- Shipped
Email deliverability check in the pitch editor
As you type a reporter’s email, we do a quiet DNS check on the domain and tell you if it actually accepts email, has a valid SPF record, etc. Catches typos in the domain before you send.
- Shipped
Trial-end grace period + reactivation flow
When a trial ends without upgrading, we now show a friendly 3-day grace banner explaining what happens next, then a clear reactivation prompt rather than silently degrading the experience. Your workspace is preserved the whole time — nothing deletes when a trial lapses.
- Shipped
Bulk import your client roster
Paste or drop a CSV of your clients (Name, Industry, Keywords, Competitors, Brand voice) and import the whole list in one shot. Matches the existing journalist CSV import flow. Owners and managers only.
- Shipped
Savings calculator on the landing page
Prospects visiting the pricing section can now plug in their current PR-tool spend + team size and see what they’d save on PRplus. Honest estimates, not inflated, so the conversation starts from real numbers.
- Shipped
Per-org sample-data toggle
Settings → Organization → "Show sample data when empty". New workspaces get curated demo data by default so they feel alive; flip it off for clean empty states (handy before a client walkthrough).
- Improved
Referral invites get a friendlier welcome
When someone clicks a ?ref= link, the signup page now explains up-front that both sides get $20 in AI credits when the trial converts — no more silent capture.
- Improved
Admin org pages show the name, not a UUID
The top-nav breadcrumb on admin organization and client detail pages now reads "Admin / Organizations / Acme PR Agency" instead of a raw ID. Small change, huge readability win when you’re jumping between orgs all day.
- Fixed
Tightened sign-out + home flow
Fixed a subtle race where signing out could bounce you back into the dashboard. Home now always shows the landing page for logged-out users, and the normal "home → login → dashboard" path is restored.
- Shipped
30-day free trial on every paid plan
Pro and Enterprise now include a 30-day free trial — no card charged until day 31, cancel any time during the trial with zero cost. Starter stays free forever.
- New signup CTA: "Start 30-day free trial"
- Reconciled pricing copy with real plan limits
- New /pricing page for deep links from emails and ads
- Shipped
Trust Center — legal, DPA, subprocessors, status
Full trust-and-compliance bundle went live. New substantive Terms + Privacy Policy, a Data Processing Addendum at /dpa, a public subprocessor list at /subprocessors, and a consent-aware cookie banner that honors analytics opt-out.
- GDPR / CCPA-aligned Privacy Policy with retention schedule
- DPA with EU Standard Contractual Clauses for Module Two transfers
- PostHog analytics only loads after consent
- 30-day subprocessor change notification commitment
- Shipped
Sign in with Google
Continue with Google on both the sign-in and signup screens. Password auth still works exactly as before — Google is just an additional option.
- Shipped
Setup-tips email series for new signups
Four opt-in nurture emails walk new users through their first client, first pitch, mid-trial power moves, and a friendly trial-end heads-up. One-click unsubscribe from any email in the series.
- Shipped
Web search across every AI agent
The News, Trend, Pitch, Report, General, and Research agents can now pull live web data when a question needs real-time context — breaking stories, journalist coverage, current stats. Custom agents you build yourself can opt in from the builder form.
- Newsjacking pitches with actual current headlines, not guesses
- Competitor research that cites live URLs
- Trend analysis informed by what's happening right now
- Toggle per custom agent so you control cost
- Improved
Agent chat quality + speed improvements
Hardened every AI call path: quota alerts at 80% and 90%, transparent fallback when a customer's BYOK key breaks upstream, and a sampling gate that keeps chatty agent sessions lean on the server.
- Heads-up emails before you hit your monthly cap
- BYOK Enterprise keys self-heal if Anthropic rejects them
- Staff audit log at /admin/audit for compliance-grade visibility
- Improved
Admin tools grid
All 13 admin sub-pages — AI Usage, Staff Audit, Users, Organizations, Analytics, Announcements, and more — are now one click away from the /admin dashboard.
- Shipped
Bring Your Own Key (BYOK) for Enterprise
Enterprise customers can now provide their own Anthropic API key so AI usage bills directly to their account. Keys are encrypted at rest with AES-256-GCM; only the last four characters are ever shown.
- Keys stored encrypted, never logged, never leaked to Sentry
- Owner-only setup flow in Settings → Integrations
- Automatic fallback to the platform key if the BYOK key ever breaks
- Shipped
Per-user daily and weekly token caps
Protects your team's monthly budget from a single runaway user. Every plan ships with rolling 24h and 7d per-user token allowances; a new top-nav pill shows each user how much of their personal allowance is left.
- Starter: 20k daily / 100k weekly
- Pro: 100k daily / 500k weekly
- Enterprise: unlimited
- Shipped
AI usage alerts at 80% and 90%
Rather than finding out you hit your cap when the app stops working, owners now get a heads-up email + in-app notification as their organization approaches each threshold. One notification per threshold per billing period; fully debounced.
- Improved
Admin visibility into BYOK and AI spend splits
Platform admins can see which orgs are on BYOK, when their key was last verified, and how spend splits between platform-billed and customer-billed traffic on /admin/ai-usage.
- Security
Security hardening pass
End-to-end review of the BYOK + quota code paths. No customer-facing change; listed here because trust matters.
- BYOK ciphertext moved to a dedicated, service-role-only table
- Sentry strips Anthropic keys, Stripe keys, and auth headers before upload
- BYOK verification is rate-limited per-user to prevent key-validity probing
- Token cap enforcement floors the per-call projection server-side
Have a feature request? Let us know.