Skip to content

Service twin · API + UI

LinkedIn

Test professional-network agents that research people and companies and manage content workflows.

API + UIdocs-transcribedREST · MCP · CLI
Terminal
$ uv tool install --with "blobfish-sdk @ https://blobfish.ai/sdk/blobfish_sdk-0.6.2-py3-none-any.whl" "blobfish-cli @ https://blobfish.ai/sdk/blobfish_cli-0.1.13-py3-none-any.whl"
$ blobfish login
$ blobfish twin-runs create --twins linkedin --ttl 60 --wait

What’s inside

A deterministic, seeded, resettable replica: every operation below executes real state transitions against the twin’s own SQLite state — reads are hash-invariant, writes produce inspectable diffs, and reset restores the seed baseline.

Operations29
Reads12
Writes17
Entities6
Lifecycles2

Seeded entities

EntityTableFieldsAbout
person_profileperson_profiles8Member profile as exposed by the LinkedIn People API.
organizationorganizations8Company page managed through the LinkedIn Organizations API.
postposts7UGC post with a draft → published → archived lifecycle.
commentcomments6Comment left on a post's social-actions thread.
invitationinvitations6Connection invitation the invitee can accept or ignore.
reactionreactions6Member reaction placed on a post via the Reactions API.

Guarded lifecycles

These state machines are enforced, not decorative: an action whose from state doesn’t match is rejected the way the production service rejects it.

post.lifecycle_state

draft → published → archived
  • publish: draft → published
  • archive: published → archived

invitation.status

pending → accepted → ignored
  • accept: pending → accepted
  • ignore: pending → ignored

Three surfaces, one state

Mount LinkedIn in a twin environment and the same seeded state serves vendor-shaped REST operations, an MCP endpoint for tool calling, and a generated bf-twin CLI — with copy-on-write sessions per rollout and a one-call reset to the seed baseline. Prefer raw HTTP? The same create works with curl:

API
$ curl -sS -X POST https://blobfish.ai/api/v1/twin/environments \
    -H "X-API-Key: $BLOBFISH_API_KEY" -H "Content-Type: application/json" \
    -d '{"services":["linkedin"],"ttl_minutes":60}'

Known limitations

  • transcribed from https://learn.microsoft.com/en-us/linkedin/ (People, Organizations, Community Management, and Invitations APIs); parameter and response schemas simplified
  • URN identifiers simplified to plain string ids; socialActions comment threads and reactions flattened to top-level collections addressed by post_id; post lifecycle changes modeled as explicit publish/archive actions
  • synthetic seeded values