How Last Look works
Scheduling posts in advance is how good social media gets done, and it is also how a post that was right on Monday goes out wrong on Thursday. Last Look is the pre-flight check: one look at everything queued, with the problems pulled to the top.
1. Connect
You sign in with Buffer (OAuth with PKCE). Last Look gets a token that lasts about an hour. It can read your queue, and it can change a post only when you press a fix and confirm it.
2. Scan
Last Look reads every scheduled post, post awaiting approval and draft across your channels in one to three requests, and your browser runs the checks in plain code. There is no AI model involved: every flag comes from a rule you can read below, so the same post always gets the same answer.
3. The checks
- Links. Each link gets one HEAD request (one GET only if the site says it does not support HEAD), following up to three redirects. Flags: 404 and 410, other 4xx errors, 5xx errors, no answer within 8 seconds, domains that do not exist, more than three redirects, links that land on a sign-in page or on a different site, links to private addresses such as localhost, and links written as bare IP addresses (noted, not opened).
- Time. Everything is judged at the scheduled send time in the channel’s time zone. Flags: written dates that will already be past (and whether they were still ahead when you wrote the post), a weekday that does not match its date, “today at 7pm” going out at 9pm, “Good morning” at night, “Happy Friday” or #ThrowbackThursday on the wrong day, holiday greetings out of season, and day words such as “tomorrow” in posts that sit in a queue slot, where the send time can move.
- Formatting. **bold**, __bold__, ~~strike~~, # headings, [text](link), backticks, HTML tags and HTML codes such as &, on networks that show them as typed (X, Bluesky, LinkedIn, Threads, Mastodon, Facebook, Instagram, TikTok, Pinterest, YouTube, Google Business Profile). The fix suggests a clean version.
- Length. Each network’s limit, counted the way that network counts, following Buffer’s published character limits: X 280 (25,000 on paid plans) with links as 23 and emoji as 2, Bluesky 300 counted as visible characters with links shortened, LinkedIn 3,000 with links as 24, Threads 500, Instagram 2,196 with line breaks as 2, Mastodon your server’s limit, and the rest.
- Repeats. The same text, or text at least 80% alike, queued twice on one channel; and identical text on other channels at different times. On very large queues the near-match comparison stops early and says so.
- Leftovers. Template placeholders ([link], {{first_name}}, TODO), images without alt text, hashtags cut short by a hyphen or apostrophe, a space after @ or #, unmatched brackets, too many hashtags, and posts landing between 1 and 5 a.m.
- Your channel rules. Per channel, set phrases to avoid (with a word to say instead, such as “sneak peek” => “first look”) and tags or phrases every post must include (#ad, your brand tag; the first comment counts). Matching ignores case, works on whole words and skips links. A post that breaks a rule gets the fix: the suggested word swapped in, or the missing tag added. Rules are saved in your browser only, so the daily digest does not use them yet.
4. Fix
Each flag offers the fixes that make sense for it: edit the text (with a suggested version where one can be made, a live character count and a word-by-word view of the change), move the post to drafts, or move a queue post to the top or bottom of its queue. Nothing is saved until you confirm. Before saving, Last Look reads the post again and stops if it changed in Buffer since your scan, or if it goes out in the next three minutes. Threads are left to Buffer’s editor so every part stays in step. After a fix, that one post is updated on the page from Buffer’s answer and checked again; nothing else is re-read. After an edit, Undo stays available for two minutes: it reads the post again and puts the previous text back only if the post still holds exactly what Last Look wrote. Last Look never deletes a post.
Reorders move more than one post
Moving a post in its queue changes when it goes out. Moved to the end, it takes the last slot, often days later; moved to the front, Buffer sets it to share next, with no time until it goes out. After every move, Last Look reads that channel’s queue again and re-checks the day words of every post whose time changed: a “tomorrow” that meant Friday at the old slot but now means Saturday is flagged, with a one-click word that keeps Friday (“today”, a weekday, or a date). If that day has already passed at the new time, it offers the front of the queue or drafts instead. A post set to share next has no time to judge, so its day words are flagged for you to check.
5. Look back
After you connect, the Look back tab reads your most recent sent posts (up to 90, one request per organization) and runs the text checks on them, each judged at the moment it actually went out in its channel’s time zone: formatting that showed as raw text, posts longer than the network allows, leftover placeholders, the same post sent twice, day and time words that were wrong when it went out, and images sent without alt text. The result reads “Last Look would have caught N issues in your last M sent posts”, grouped by check, each linking to the post. It only reads: sent posts cannot be changed, and their links are not opened.
6. Daily digest (opt-in)
A pre-flight check only helps if someone opens it. Turn on the daily digest and, every day at the hour you pick, Last Look reads the posts going out before the end of the next day and lists what it would fix, on a private page and an Atom feed: follow it in Slack (/feed subscribe), any feed reader or an RSS-to-email service. It uses its own read-only Buffer connection, keeps the last 7 digests, and one click turns it off and deletes everything.
Limits
- Up to 300 queued posts per scan (three requests to Buffer), one scan a minute, 20 scans and 40 fixes a day per account, and at most 15 Buffer requests per 15 minutes and 60 a day per account.
- Some sites block automated visitors; those links are marked as “probably fine, open it once” rather than broken.
- Day words are a judgment call. When a post has its own fixed time, Last Look only notes what “tomorrow” will mean, it does not call it wrong.