feat(ship-posts): measure via the bulk social scrape (posts=N), not the X connector#72
Conversation
…ctor Step 1 now leads with POST /api/artist/socials/scrape?posts=N — one call returns per-post metrics for X (incl. viewCount impressions), YouTube (videos + Shorts), and Instagram (latestPosts); LinkedIn stays on LINKEDIN_LIST_REACTIONS (its scrape is profile-only). Documents the per-platform dataset shapes, the 5 + posts per-profile credit cost, the profile-linking setup (PATCH profileUrls), and the gotchas learned shipping it: X depth counts timeline items incl. RTs, IG public plays vs insights views, ~1h token burst rule. Replaces the dead X-connector guidance — TWITTER_GET_POST_ANALYTICS 403s (client-not-enrolled) and post lookup 401s; verified 2026-07-02. Backed by recoupable/api#741 + #744 (shipped to prod 2026-07-02; tracker: recoupable/chat#1836). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Warning Review limit reached
Next review available in: 38 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
One bulk scrape now covers all four platforms: LinkedIn posts=N returns post items with engagement (likes, comments, shares, reaction breakdown) via harvestapi/linkedin-profile-posts — richer than the connector, which can't see personal-post comments/shares. LINKEDIN_LIST_REACTIONS is demoted to its remaining real use: pulling reactor identities (the warm-lead list on comment-gated posts). Shipped to prod 2026-07-02 (recoupable/api#745, tracker chat#1838). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Updated for api#745 (merged to prod 2026-07-02, tracker chat#1838): one bulk scrape now covers all four platforms — the LinkedIn table row documents the posts-actor dataset ( |
…-era prose Net reduction vs main. Removed outdated/historical text rather than stacking additions: the timestamp_ms=id>>22 trick (scrape returns postedAt), the why-the-X-connector-fails explanation (one clause now), the LinkedIn personal-post limitation rationale and company-page reconnect note (justified a workaround we no longer use), and the full LINKEDIN_LIST_REACTIONS curl block (Step 4 already teaches connector calls; one gotcha line names the slug + entity format for the who-reacted lead-list case). Table collapsed to one column per platform. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Refactored per review: removed the connector-era prose instead of stacking additions. Cut: the Net diff vs |
Summary
Updates
recoup-internal-social-ship-postsso the measurement steps (1 and 5) use the scrape pipeline shipped in api#741 + api#744 (live on prod 2026-07-02; tracker chat#1836) — onePOST /api/artist/socials/scrapewithposts=Nreplaces the connector/syndication patchwork.Step 1 rewritten:
viewCountimpressions, YouTube videos + Shorts (depth per content type), InstagramlatestPosts, LinkedIn = profile-only → connector.PATCH /api/artists/{id}profileUrls; ids come from the account workspace (ACCOUNT.md/posts-log.md).TWITTER_GET_POST_ANALYTICS403s (client-not-enrolled) and post lookup 401s, verified live 2026-07-02. LinkedIn'sLINKEDIN_LIST_REACTIONSblock and its gotchas are kept unchanged.Step 5: re-measure = one bulk scrape + LinkedIn reactions per post.
Copy/CTA/publish steps untouched.
Verified
Every command and dataset shape in the diff was exercised live while shipping the api changes — deduction amounts (−5/−25/−20 exact), dataset contents (20 tweets w/ impressions; 40 YT items incl. 4 pinned Shorts), and the X-connector failures are all documented with run ids on chat#1836 and the api#744 verification.
🤖 Generated with Claude Code
Summary by cubic
Switches measurement to the bulk social scrape across X, YouTube, Instagram, and LinkedIn. Steps 1 and 5 now run one scrape; use
LINKEDIN_LIST_REACTIONSonly when you need reactor identities. Also simplifies the measurement section by removing connector-era notes./api/artist/socials/scrapewithposts=N; poll runs; cost is 5 + posts per profile.viewCountimpressions; YouTube pulls videos + Shorts; Instagram useslatestPosts; LinkedIn returns post items with likes, comments, shares, and reaction breakdown.LINKEDIN_LIST_REACTIONScurl; collapsed the table for brevity.PATCH /api/artists/{id}profileUrlsand verify withGET /api/artists/{id}/socials; X depth includes RTs/replies; IG public plays ≠ insights views; tokens expire in ~1h.LINKEDIN_LIST_REACTIONSonly to fetch reactor identities; read gated-post comment bodies manually.Written for commit e7c6f69. Summary will update on new commits.