ai-persona

Create or Update AI Persona

Create or update the authenticated user's Voice & Tone persona. Controls how AI generates content on their behalf.

put/ai-persona

Request

  • Base URL: https://api.aiapplyd.com/api/v1
  • URL: https://api.aiapplyd.com/api/v1/ai-persona
  • Auth: HTTP bearer

Request body

allowFabricationboolean

Allow the apply agent to fill gaps: complete a required field it cannot take from profile facts, sourcing real-data-first (the resume, tailored resume, and cover letter for this application, then job preferences, then profile) and fabricating only as a last resort. Enabled by default; set false to opt out. Contact/identity completion is always-on and not gated by this flag.

coverLetterStrategy'off' | 'use_base' | 'tailor_base' | 'generate_new'

Cover letter handling strategy

dailyLimitinteger
generateCoverLetterPerJobboolean

Whether to generate cover letter per job

minMatchScoreinteger
mode'copilot' | 'auto_approve'

Application mode

personalDescriptionstring nullable

Free text about yourself (max 500 chars)

presetId'balanced' | 'the_professional' | 'the_conversationalist' | 'the_storyteller' | 'the_closer' | 'the_enthusiast' | 'custom' required

Selected persona preset

resumeStrategy'base' | 'tailor'

Resume handling strategy

samplePhrasesstring[] nullable

Example phrases you naturally use (max 10)

tailorResumePerJobboolean

Whether to tailor resume per job

toneInstructionsstring nullable

Custom tone rules (max 1000 chars)

translationStrategy'off' | 'translate' | 'translate_and_tailor'

Translation strategy

Example request

{
  "allowFabrication": true,
  "coverLetterStrategy": "generate_new",
  "generateCoverLetterPerJob": true,
  "mode": "copilot",
  "personalDescription": "Senior engineer with 10 years in fintech",
  "presetId": "balanced",
  "resumeStrategy": "tailor",
  "samplePhrases": [
    "Let me walk you through my approach"
  ],
  "tailorResumePerJob": true,
  "toneInstructions": "Always mention my passion for open-source",
  "translationStrategy": "off"
}

Response

AI persona created or updated

successtrue required

Example response

{
  "data": {
    "id": "abc-123",
    "userId": "user_abc123",
    "presetId": "balanced",
    "personalDescription": "Senior engineer with 10 years in fintech",
    "toneInstructions": "Always mention my passion for open-source",
    "samplePhrases": [
      "Let me walk you through my approach",
      "I thrive in fast-paced environments"
    ],
    "generateCoverLetterPerJob": true,
    "tailorResumePerJob": true,
    "resumeStrategy": "tailor",
    "coverLetterStrategy": "generate_new",
    "translationStrategy": "off",
    "mode": "copilot",
    "allowFabrication": true,
    "scoringWeights": {
      "skills": 1,
      "location": 1,
      "remote": 1,
      "seniority": 1,
      "salary": 1,
      "visa": 1
    },
    "createdAt": "2026-01-15T12:00:00Z",
    "updatedAt": "2026-03-10T08:30:00Z"
  },
  "meta": {
    "duration": 150,
    "requestId": "req_abc123",
    "timestamp": "2026-10-13T10:27:20.268Z",
    "version": "v1"
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.