Skip to content

Each social platform has its own voice, length limits, and conventions. The ai.generateContent() method tailors a single description into platform-specific captions in one round trip.

Basic example

typescript
const { content } = await socifyr.ai.generateContent({
  uploadType: 'photo',
  platforms: ['instagram', 'linkedin', 'x'],
  description: 'Behind-the-scenes from our team retreat in the mountains',
  tone: 'casual',
})

console.log(content.instagram) // long, hashtag-heavy
console.log(content.linkedin)  // longer, professional
console.log(content.x)         // tight, < 280 chars

Using the output directly

typescript
const { content } = await socifyr.ai.generateContent({
  uploadType: 'photo',
  platforms: ['instagram', 'linkedin'],
  description: 'Launching our new SDK',
})

await socifyr.uploads.photos({
  connections: ['instagram-mybrand', 'linkedin-myhandle'],
  medias: [readFileSync('banner.jpg')],
  text: content.linkedin, // default
  platformOptions: {
    'instagram-mybrand': { text: content.instagram },
  },
})

Tones

ToneWhen to use
professionalBusiness updates, B2B, press releases
casualLifestyle, brand voice, day-in-the-life
humorousMemes, light branded content
inspirationalStories, milestones, founder posts
informativeTutorials, how-tos, announcements

Brand voice

brandVoice is a free-text instruction that the AI follows globally:

typescript
const { content } = await socifyr.ai.generateContent({
  uploadType: 'text',
  platforms: ['linkedin'],
  description: 'Q4 financial results',
  tone: 'professional',
  brandVoice: 'Speak as a SaaS company. Avoid hype words like "revolutionary" or "game-changing". Lead with data.',
})

Save your brand voice once in a constant and reuse it:

typescript
const BRAND_VOICE = 'Friendly, direct, no jargon. We always lead with the user benefit, not the feature.'

await socifyr.ai.generateContent({
  ...params,
  brandVoice: BRAND_VOICE,
})

Hashtags

Separately, suggestHashtags returns platform-appropriate tags:

typescript
const suggestions = await socifyr.ai.suggestHashtags({
  text: content.instagram,
  platforms: ['instagram'],
  count: 15,
})

const tags = suggestions[0].hashtags.join(' ')
const finalCaption = `${content.instagram}\n\n${tags}`

Cost and limits

  • AI features require Pro or Business tier
  • Generations are rate-limited to ~50 per minute per workspace
  • Each generation costs roughly 1 ¢ in usage credits