Use cases / Social and community

6 min read

Social profile, post and comment data (X, Reddit, LinkedIn, TikTok, Instagram, YouTube)

Public profiles and recent posts for personalization that survives contact with a reader, plus the keyword search that finds people with the problem.

Give this to your agent
$ Set up https://jell.run/SKILL.md, then find Reddit posts from the last month where people complain about our category, and pull the comments.
On this page

"Personalization" in outbound has degraded into a merge field with a company name in it. Everyone receiving cold email recognizes the pattern, which means the personalization now signals the opposite of what it intends.

Actual personalization needs a fact the sender could only have got by paying attention. Public social data is where those facts live: what someone posted, what they commented on, what their company published, what people said back.

The four calls

social.profile   →  public profile for a handle
social.posts     →  recent public posts for a handle
social.search    →  posts matching a keyword, across platforms
social.comments  →  comments on one public post URL

Live across X, LinkedIn, Reddit, YouTube, TikTok, Instagram and Facebook, with LinkedIn people and company pages addressable as well.

Start with search, not with the person

Most teams begin from a list of people and go looking for something to say. Reverse it. Start from the problem, find who is talking about it, and the personalization is the reason you found them.

curl -X POST https://api.jell.run/v1/run \
  -H "Authorization: Bearer $JELL_API_KEY" \
  -d '{
    "capability": "social.search",
    "input": {"platform": "reddit", "query": "enrichment api pricing", "limit": 50}
  }'

Reddit and X are where people complain in public, in their own words, without a vendor in the room. A post from three days ago describing the exact problem you solve is a better opening than any signal a database will sell you, and the first line writes itself: you are replying to something they said.

Run the same query across x, linkedin and reddit. The registers differ. LinkedIn is where people announce, X is where they think out loud, Reddit is where they say what is actually wrong.

Comments are the underused surface

curl -X POST https://api.jell.run/v1/run \
  -H "Authorization: Bearer $JELL_API_KEY" \
  -d '{"capability": "social.comments",
       "input": {"url": "https://www.reddit.com/r/.../comments/...", "limit": 100}}'

A viral post in your category is a room full of your buyers, and the comments are the transcript. What people object to, what they compare, what they ask that nobody answered. That is objection-handling copy, product positioning and a content calendar, written by your market.

It is also the most quotable research you can do. "Half the thread under that post asked about X" is a sentence with evidence behind it.

Then the person

curl -X POST https://api.jell.run/v1/run \
  -H "Authorization: Bearer $JELL_API_KEY" \
  -d '{"capability": "social.posts",
       "input": {"platform": "linkedin", "handle": "alexrivera", "limit": 20}}'

Recent posts tell you what someone is currently thinking about, which is a much better hook than where they work. social.profile gives the profile itself, and person.enrich adds the role history, where tenure in the current role is the signal: eight months in is someone still changing things.

The rule that keeps this from being creepy: reference something they published deliberately, in public, recently. A post is publication. Their movements are not.

Company accounts are a signal too

Company pages announce launches, hires, partnerships and repositioning before the press does. Pulling social.posts for a competitor's or a target account's handle on a weekly cron and diffing it is a cheap early-warning system.

Paired with ads.search, you get both halves: the message they pay to distribute and the message they publish for free.

Wiring it into outreach

The pattern that produces replies:

  1. Search the problem, not the person. Collect posts from the last 30 days.
  2. Pull the comments on the ones with traction. That is your language bank.
  3. Identify the people worth contacting from who posted and who commented.
  4. Check their recent posts for a current, specific hook.
  5. Enrich and verify the contact. See contact enrichment.
  6. Write the first line from the post. Not the company name. The post.

Step six is the whole thing. Everything before it exists to make that line possible.

Where it breaks

  • Public means public, and that is the boundary. These capabilities return what is publicly visible. Nothing behind a login, nothing private, and platform terms still apply to what you do with it afterwards.
  • Handles change and accounts go private. Cache with a short TTL and expect misses.
  • Volume kills the effect. A hook from a real post works because it is rare. The same technique across 5,000 sends, templated, becomes another pattern people learn to ignore.
  • Recency is the whole value. A hook from a post six months old reads worse than no hook, because it says you researched once and sent late.

Run it as an agent

jell run -c social.search -i '{"platform":"reddit","query":"enrichment api pricing","limit":50}'
jell run -c social.comments -i '{"url":"https://...","limit":100}'
jell run -c social.posts -i '{"platform":"linkedin","handle":"alexrivera"}'

An agent can run the search, read the comments, pick the people worth contacting and draft the first line from the actual post, which is the part that does not scale by hand.

What does each call cost?#

Prices below are the starting price per successful call. /v1/inspect returns the exact figure before the run and reserves it against your balance; failures and unbilled no-matches release the hold in full.

CapabilityWhat it returnsFromProviders
social.profile Public profile data for a social handle: name, followers, bio, verified, plus the bio link, every listed link, the person's own domain (link hubs such as Linktree excluded), a public or business email when the profile exposes one, profile URL, business flag, category and location when the platform provides them. $0.002
social.posts Recent public posts for a social handle. $0
social.search Public posts matching a keyword on X, LinkedIn, Reddit, YouTube, TikTok, Instagram or Facebook: brand mentions, category conversations, competitor chatter. $0
social.comments Comments on one public post URL (YouTube, TikTok, Instagram, LinkedIn, Reddit): text, author, likes, replies, time. $0.002
person.enrich Full professional profile from a public LinkedIn profile URL or a work email: name, headline, about, location and the complete role history. $0.005

One prepaid balance covers every row. Capabilities marked coming soon are listed but not yet executable.

FAQ#

Which platform is worth pulling for B2B?

Reddit for the unvarnished problem statements, LinkedIn for professional context and announcements, X for what practitioners think out loud. Reddit is the one most B2B teams underuse and it consistently returns the most usable copy, because people describe their problem there without a vendor listening. Pull all three for the same query and compare: the same complaint is phrased three different ways, and the Reddit phrasing is the one to quote.

Is scraping public social data allowed?

These capabilities return publicly visible data through providers who handle collection, and nothing behind a login. That covers the retrieval side. What you then do with it is a separate question governed by platform terms and by data protection law where your contact lives, which in the EU means having a lawful basis for processing before you send anything. Public availability is not consent.

How recent does a hook need to be?

Under 30 days, and under 14 is better. The reason the technique works is that it proves you looked recently. A reference to something someone posted in March, sent in September, actively signals the opposite: that you ran a batch job once and are only now getting to them.

Can I automate the whole thing including the first line?

You can generate the draft, and you should read it before it sends. The failure mode is specific and expensive: a model that confidently misreads a sarcastic post, or references a layoff announcement as if it were a product launch. A human pass on the first line, or at minimum a filter on post sentiment, is the difference between a clever opener and an apology.

Why comments rather than the posts themselves?

Because posts are performances and comments are reactions. The post is what someone decided to say publicly with their name on it. The comments are what everybody else thought about it, including the objections nobody puts in a case study. For positioning and objection handling, the thread is worth more than the post that started it.

What API lets an AI agent search Reddit, X and TikTok posts by keyword?

social.search with platform set to reddit, x or tiktok (also linkedin, youtube, instagram and facebook) and the keyword as the query. Posts come back with text, author, URL, engagement and time as JSON, priced per post at the limit you request, through providers rather than each platform's official API.

Which API returns a social media profile's followers and recent posts as JSON?

social.profile returns the profile: name, followers, bio, verified flag, bio link and a public email when the profile exposes one. social.posts returns the handle's recent public posts. Both cover X, LinkedIn, Instagram, TikTok and YouTube and return the same JSON shape whichever provider served the call.

How do I pull comments and engagement from a social post through an API?

social.comments takes one public post URL on YouTube, TikTok, Instagram, LinkedIn or Reddit and returns the comments with text, author, likes, replies and time. It is the underused call in this guide: the comments are where objections and buying questions get written in the buyer's own words.

Run this today

Sign up, get $1 of credit, and the first call in this guide costs a fraction of a cent. One key, one balance, price shown before every call.

Get started →
social media apisocial media scraping apireddit apix apitiktok apilinkedin data apisocial listeningoutreach personalization
Give this to your agent
Claude CodeCodexHermesOpenClawCursor

Install the skill once and Claude Code, Codex, Cursor and the rest discover these capabilities, check the price, then run them.

Install the agent skill →

Reading this as an agent? This guide as markdown: /use-cases/linkedin-and-social-signals.md · every guide: /use-cases/llms.txt · RSS