Skip to main content

Why

A Full Cycle agent is three pieces linked by one list: a source agent finds leads that match your ideal customer and adds them to the list, and a campaign reaches out to everyone on that list. Set it up once and it keeps sourcing and contacting new leads every day. With the MCP server, one prompt builds all three:
“Create a list called ‘Heads of Sales FR’, a source agent that finds Heads of Sales at French SaaS companies of 51 to 200 people who use HubSpot or are hiring, and a LinkedIn campaign with a connection request and two AI messages. Show me everything before you activate it.”
The assistant chains create_list, create_agent, list_campaigns (to find your LinkedIn seat), create_campaign, and activate_campaign once you approve. The steps below are the same calls through the API. Send Authorization: Bearer YOUR_API_KEY. The base URL is https://ext.gojiberry.ai.
1

Create the list

POST /v1/list creates the list that links the agent and the campaign.MCP tool: create_list
The response is the list. Keep its id, here 321.
2

Create the source agent

POST /v1/agent describes your ideal customer and the signals that make a lead worth contacting now. listId is the list from the previous step.MCP tool: create_agent
variables are the signals, 4 to 15 of them. The value format depends on the type: a quoted keyword of 1 to 3 words, a LinkedIn page URL, "true" for events like HIRING, or a lowercase technology name. Values are not validated, so a typo saves fine and then finds nothing.The response is the agent. If your account is at its active agent limit, the agent is created paused.
3

Find your LinkedIn seat

LinkedIn steps are sent from a connected LinkedIn seat. The API has no seat listing yet: GET /v1/campaign returns your campaigns, and linkedinSeatId on any of them is the id to reuse. For email steps, GET /v1/email-seat lists your mailboxes.MCP tool: list_campaigns, and list_email_seats for email.
4

Create the campaign, inactive

POST /v1/campaign defines the outreach. listIds holds the list from the first step. A new campaign starts active by default, so pass "active": false to review it before anything is sent.MCP tool: create_campaign
Steps run in order. A campaign has at most one connection request, which cannot come after a message, and every delayAfterLastStep is at least 1 day. "messageMode": "ai" writes each message for each contact; "same" sends your message as is, with variables such as [FirstName] and [Company].The response is the campaign. Keep its id, here 55.
5

Activate it

PATCH /v1/campaign/{id}/status starts the daily outreach. The launch hours are set in the LinkedIn seat settings in the app.MCP tool: activate_campaign. The assistant asks you to confirm first, since this sends real messages.
Each account runs 2 campaigns at once, plus one per Full-cycle Agent add-on. At capacity, a free add-on from your organization is assigned automatically; without one, the call fails with 400. This endpoint allows 10 calls per minute.
6

Follow the results

  • GET /v1/agent/{id}/logs shows what the source agent did (MCP get_agent_logs).
  • GET /v1/contact?listId=321 lists the leads it added (MCP list_contacts).
  • GET /v1/campaign/{id}/logs shows invitations, messages, and replies (MCP get_campaign_logs).
Replies land in the LinkedIn inbox: see Sync my LinkedIn Inbox.
Every field is listed on Create a list, Create a source agent, Create a campaign, and Activate or deactivate a campaign.