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 charsUsing 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
| Tone | When to use |
|---|---|
professional | Business updates, B2B, press releases |
casual | Lifestyle, brand voice, day-in-the-life |
humorous | Memes, light branded content |
inspirational | Stories, milestones, founder posts |
informative | Tutorials, 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