LinkedIn Content Library & Analyzer app changelog
About the app
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.csvmatches each row to a post 1:1 via Buffer's own post ID, andtimeseries.csvsupplies 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
@mentionsof 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
sentAtordering 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.