Your agents post as you, find people engaging with posts on your problem, and send each a request and a first message, 20 a weekday.
- Connect
- Sign in once, 3 grants
- Runs through
- Your account or a browser agent
- First run
- List 25 people engaging with posts on your problem, about 0.95¢
- Sites
Find the property managers who commented on LinkedIn posts about late rent this month, and show me the first 25.
curl -X POST "https: //api.sb/ leaseline.app/ prospects/ find? mode= try" \
-H "Authorization: Bearer $SB_TOKEN" \
-H "Content-Type: application/ json" \
-d '{"question": "property managers who commented on LinkedIn posts about late rent in the last 30 days", "limit": 25, "save": 0, "maxCost": 0.5}'
npx startup-builder do Prospect.find --try --data '{"question": "property managers who commented on LinkedIn posts about late rent in the last 30 days", "limit": 25, "save": 0, "maxCost": 0.5}'
{
"name": "do",
"arguments": {
"mode": "try",
"code": "return await $.Prospect.find({ question: 'property managers who commented on LinkedIn posts about late rent in the last 30 days', limit: 25, save: 0, maxCost: 0.5 })"
}
}
import { $ } from 'startup-builder'
const result = await $.try.Prospect.find({ question: 'property managers who commented on LinkedIn posts about late rent in the last 30 days', limit: 25, save: 0, maxCost: 0.5 })
{
"$type": "Prospect",
"mode": "try",
"stored": false,
"prospects": [
{
"name": "Rosa Alvarez",
"title": "Owner",
"organization": {
"name": "Northgate Rentals",
"hostname": "northgate-rentals.com"
},
"reason": "Commented “we still chase this by text” on a post about late rent, Oct 21",
"hasEmail": true
},
{
"name": "Maya Chen",
"title": "Owner",
"organization": {
"name": "Cedar Hollow Rentals",
"hostname": "cedar-hollow-rentals.example"
},
"reason": "Reacted to a post comparing rent ledgers, Oct 14",
"hasEmail": true
}
],
"total": 38,
"cost": {
"usd": 0.11,
"maxUsd": 0.5
}
}
Connect once
- Call
Integration.connectwithsystem:and'social' venue:, then open the'linkedin' connectUrlit returns and sign in as yourself on LinkedIn. - Sign in once more in the browser window the platform opens; that saved session sends requests and messages, and posts as your company page if you are its admin.
- Call
Handle.connectfor each account that posts: your profile, and your company page if you have one.
| Grant | What it unlocks | Scope |
|---|---|---|
| Sign in | Your name and member id, so every Post and request is filed under your account | openid profile email |
| Post as you | Posts with text, an image, a document or a video, published from your profile | w_member_social |
| Your saved session | Connection requests, messages and company page posts, done in LinkedIn’s own screens | browser session: |
| To | Do this |
|---|---|
| Pause | Integration.pause stops every call through LinkedIn at once and keeps the token; Integration.resume picks up from the same cursor. |
| Reconnect | Integration.reconnect returns a fresh connectUrl that lasts one hour, and keeps the Integration's id and cursor, so nothing imports twice. |
| Disconnect | Integration.revoke revokes the token with LinkedIn; every record it brought in stays in your records. |
What your agents do
| Ask | Verb | Runs through | Price |
|---|---|---|---|
| Post this as me, with the chart attached. | Post.publish | Your account | Free |
| Post the same update as our company page. | Post.publish | A browser agent | About 1.6¢ a step |
| Send a connection request to each of them, signed in as me, no more than 20 a weekday. | Message.schedule | A browser agent | About 1.6¢ a step |
| When they accept, send my first message within a day and one follow-up after 4 days, signed in as me. | Contact.enroll | A browser agent | About 1.6¢ a step |
| Answer each reply in the same LinkedIn thread, signed in as me. | Conversation.answer | A browser agent | About 1.6¢ a step |
Calls on your own account are free.
Reading this site’s public data needs no account: Prospect.find, Keyword.search, Ad.find are Data calls (the three ways a call runs).
What it holds
| Noun | The account’s object | When | Which side leads |
|---|---|---|---|
| Post | share or ugcPost | Your agent publishes from your profile or your page | Your records |
| Prospect | person | Someone engages with a post in your category, or accepts your request | Your records |
| Organization | organization | A Prospect’s employer is seen for the first time | Your records |
| Message | message | A request is accepted or a reply arrives | The account |
Events and webhooks
| Direction | Event |
|---|---|
| Emits | Post.published, Message.created, Prospect.engaged, Contact.enrolled |
Any Event can wake a Workflow, and a Watch delivers it to your endpoint, signed (Events and webhooks).
Limits
| What | Limit | Call |
|---|---|---|
| Connection requests | Capped by your standing approval at 20 a weekday, about 100 a week; LinkedIn publishes no number, and a request past your standing approval waits with over-mandate | Message.schedule |
| Pending requests | A request unanswered after 3 weeks is withdrawn, so pending requests never pile up | Message.schedule |
| Follow-ups | One first message and one follow-up per person; any reply stops the rest | Contact.enroll |
| Replies | Read from your LinkedIn inbox every 30 minutes on weekdays, since LinkedIn sends no webhook for member messages | Every call |
| Company page posts | Need your administrator or content admin role on the page | Post.publish |
Start here
| Move | The rule |
|---|---|
| Structure | One personal profile that names the buyer and the outcome in its headline, a featured walkthrough, and 3 posts in the last 30 days before the first request goes out. |
| Budget | No ad spend: 20 requests a weekday under your standing approval, warm sources first (people who engaged with posts in your category, then the authors of problem posts), at about 1.6¢ a browser step. |
| Creative | No note for warm sources, one line naming the shared post for cold ones. On acceptance, one message within a day that leads with the evidence and asks one easy question; one follow-up after 4 days. |
| Kill rule | Read at 200 requests: under 20% accepted means fix the profile or the targeting before sending more; under 5% replying after acceptance means rewrite the first message. |
| Benchmark | Source |
|---|---|
| 28.5% of requests accepted; 10.4% reply to the first message after acceptance | Vendor study of 13.2 million requests |
| A note lowers acceptance (25.3% against 27.6%) and raises replies (8.2% against 5.3%) | Vendor study of 11.5 million requests |
| About 100 requests a week per seat | Practitioner reports |
| 400 requests a month, about 12 replies, about 6 positive | Our planning number |
Field map
| Our field | LinkedIn’s field | Notes | Calls |
|---|---|---|---|
Post.body | commentary | Mentions and hashtags keep LinkedIn’s own annotation format | Post.publish |
Post.media | content.media.id | An image, video or document is uploaded first and posted by its URN | Post.publish |
Post.handle | author | urn:li:person for you, urn:li:organization for your page | Post.publish |
Post.status | lifecycleState | Always PUBLISHED on create; a scheduled Post is held by the platform and published at its time | Post.publish |
Message.body | invitation note or message | Typed into LinkedIn’s own screens by the browser agent | Message.schedule, Contact.enroll |
What try does here
Posts render as LinkedIn will show them and nothing is sent; requests and messages return each person, the note and the day it goes, and no browser session opens.
How long a connection lasts
A connection lasts 60 days per access token, renewed from a refresh token that LinkedIn ends 365 days after your first sign-in, however often it is used.
The platform asks you to reconnect 7 days before it runs out; until you do, a call that needs it refuses with needs-reauth.
Formats
| Site | Format | Limits |
|---|---|---|
| Feed post | 3,000 characters, with one image, a document, a video or several images | |
| Single image ad Size 1200 × 628, 1200 × 1200 or 720 × 900 | Intro text 3,000 characters, 150 before it truncates; headline 200, 70 before it truncates; JPG, PNG or GIF up to 5 megabytes | |
| Document ad | PDF, DOC, DOCX, PPT or PPTX up to 100 megabytes and 300 pages; LinkedIn advises under 10 pages |
Plays and strategies
| Kind | Where |
|---|---|
| Plays | LinkedIn outbound, Founder voice, Engagement bridge, Warm intros, Buying committee, Launch week, Events and webinars |
| Strategies | Hands-on, Launch and search |
Used by
- Agent tasks: Launch day · Personal first touch
Reference
5 calls, each with its path and price
| Call | Path | Price |
|---|---|---|
Post.publish | POST / | Free |
Post.publish | POST / | About 1.6¢ a step |
Message.schedule | POST / | About 1.6¢ a step |
Contact.enroll | POST / | About 1.6¢ a step |
Conversation.answer | POST / | About 1.6¢ a step |