LinkedIn Content Library & Analyzer app changelog

I've been active on LinkedIn for many years now, and I've always wanted a way to browse through or search for a post. There isn't a way to easily do this in LinkedIn or Buffer, which I use to schedule posts.

When the Buffer API was released, I realized I could build it myself. The LinkedIn Content Library & Analyzer app was born.

It's not open to users at the moment. I've generated this changelog to build a record of how the app has evolved. I've written more about the app itself over on Buffer.

Changelog

July 2026

Platform

  • Patched the backend client, charting, and spreadsheet-parsing libraries to clear known security advisories.

June 2026

Post Library

  • Cmd+Enter (Ctrl+Enter on Windows) now saves a note, so you don't have to reach for the Save button.
  • The "Import analytics" button on both the Post Library and Analytics screens now opens the Buffer CSV importer directly instead of making you pick a source first. The LinkedIn and Shield importers are still available behind the scenes.
  • The date-range picker now looks and behaves like the one on Analytics.

Analytics

  • Hovering any impressions or engagements figure in the "by post type" and "by tag" tables shows the average per post, not just the total.

AI Chat

  • Taught the AI to answer growth questions from actual analytics data instead of falling back on post notes. It now gets pre-computed performance rollups by tag and post type, a daily follower series, and a per-post follower attribution table showing net follower change 1, 3, and 7 days after each post — plus the biggest follower spikes and which posts sat next to them.
  • Fixed a bug where a new chat's answer and cited posts flashed on screen briefly and then disappeared. The streamed response now stays put until the saved version is confirmed.
  • Made "Analyze these posts" actually restrict the AI to the selected posts. Before, the whole library was sent with a polite hint to stay in scope; now out-of-scope posts are simply left out of the context, while global post numbering stays stable.
  • Fixed garbled answers and truncated responses by raising the response limit and making the streaming pipeline hold onto partial lines instead of dropping fragments that straddle network chunks.
  • Stopped long messages and code blocks from overflowing the chat bubble horizontally.

May 2026

Post Library

  • Posts now carry a media type (text, image, video, document, carousel) and asset count, synced from Buffer.
  • Added tag search inside the tag dropdown.
  • Notes are editable in place and line breaks are preserved.
  • Standardized page widths and the analytics grid across the app.

Analytics

  • Switched the stats importer to Buffer CSV exports as the primary source. posts.csv matches each row to a post 1:1 via Buffer's own post ID, and timeseries.csv supplies daily views and follower counts. No more fuzzy URL matching.
  • Added a clear priority order across three import sources: Shield wins for anything before May 2025, Buffer wins from May 2025 onward, and LinkedIn XLSX fills whatever Buffer doesn't reach.
  • Changed overlapping-period behavior so re-uploading a full month replaces earlier weekly uploads instead of double-counting.
  • Rebuilt the Shield importer's matcher around publish date (±1.5 days) plus text similarity, with a disambiguation step when more than one post is a plausible match.
  • Rebuilt the Stats screen on daily data so any date range — last 7 days, last 90 days, mid-month — reports correctly.
  • Added performance breakdowns by post type and by tag, with sortable columns and a details popover.
  • Made stats periods handle partial months: a bucket that only partly overlaps your selected range is prorated rather than counted whole.
  • Reworked the date-range picker UX.
  • Added the first analytics importer for monthly LinkedIn exports, with a resolver dialog for rows that couldn't be matched automatically.
  • Added the first Analytics screen showing impressions, engagements, and followers over a chosen date range, plus an AI Insights card that generates a written read of what's working and what isn't.

AI Chat

  • Added content buckets: define your own topical lenses (name, description, linked tags) and switch them on for a conversation. Buckets frame how the AI reads your library without filtering which posts it can see, and the selection is remembered per conversation.
  • Added idea seeds: ask for post ideas and the AI returns short angles (1–3 sentences) rather than finished drafts. Each is typed as a new direction, a buried seed from an existing post, or a gap in your coverage, and rendered as an editable card you can push straight to Buffer as an idea.
  • Added @mentions of posts in the chat input, with normalization so near-miss text still matches.
  • Conversations can be scoped to a set of posts, and that scope is saved with the conversation.
  • Added suggested follow-up questions after an answer.
  • The cited-posts panel can be collapsed and no longer overlaps the chat on narrow windows.
  • The AI now receives a tag index and per-tag tables so it can reason about topics as groups rather than one post at a time.
  • Tightened citation filtering so the AI only cites posts it actually referenced in its answer.

April 2026

Post Library

  • Added post notes: attach timestamped private notes to any post, search them as their own scope, edit or delete them, and have them included in the AI's context.
  • Added a backfill mode that pulls historical Buffer posts older than anything currently in the library without disturbing the forward sync cursor.
  • Synced tags from Buffer, showed them on each card, and added AND-style multi-tag filtering next to the date filters.
  • Added a manual sync button and switched sync to sentAt ordering so incremental pulls pick up the right posts.
  • Gave the app a consistent header, page layout, and spacing so the Post Library, Chat, and Analytics screens feel like one tool instead of three separate prototypes.

AI Chat

  • Made conversation memory persist properly across messages and sessions.

March 2026

Post Library

  • Built the first working version as a browsable library of your synced LinkedIn posts: search, filter, and scroll every post in a three-column grid of collapsible cards.

AI Chat

  • Added an AI chat on top of the synced library: ask questions about your posts and get answers that cite the specific posts they came from.
  • Added chat sessions and history: conversations are saved, auto-titled, and reopenable from a history view.
  • Added a cited-posts side panel that accumulates across a whole conversation; clicking a "Post N" reference scrolls to its card, and each card links out to the post in Buffer.
  • Added optimistic sending so your message appears immediately.
  • Stopped internal tool-call syntax and raw post IDs from leaking into the AI's prose.
  • Added stable global post numbering: Post 1 is your oldest post, and a given number always means the same post — in chat, in the cited-posts panel, and in the library. The numbering used in each answer is stored with it, so old conversations still read correctly as the library grows.

Platform

  • Set up the backend on Lovable Cloud and connected the Buffer API so posts could sync in for the first time.