Skip to content

Generation System

The JobyApp Generation System automates the creation of personalized documents including cover letters, CVs, and professional profiles. Configure generation parameters, manage runs, and export customized documents at scale.

System Architecture

The generation system follows a three-step workflow: Input Configuration → Document Generation → Export & Management

1. Input Configuration

Define search parameters, target positions, and generation settings

2. AI Processing

AI analyzes job requirements and generates personalized content

3. Export & Manage

Export documents in multiple formats and track generation history

Input Configuration

Configure your generation parameters using the Input tab in the Generation Dashboard:

Search Parameters

Basic Search Configuration

Keywords & Location
  • Keywords: Job titles, skills, technologies
  • Location: Target city, region, or "Remote"
  • Sites: Job platforms to search
  • Max Results: Number of job offers to process
Advanced Filters
  • Contract Types: CDI, CDD, Freelance, etc.
  • Experience Level: Junior, Mid-level, Senior
  • Publication Date: Hours since posting
  • Remote Options: Remote, hybrid, on-site
Input Configuration Example
const inputConfig = {
  keywords: "Senior React Developer",
  location: "Paris, France",
  sites: ["linkedin", "indeed", "wttj"],
  maxResults: 20,
  contractType: ["CDI"],
  experienceLevel: ["Confirmé", "Senior"],
  hoursOld: 72,
  remote: true
};

Generation Configuration

Customize document generation settings in the Config tab:

Document Types

Cover Letter

  • Personalized content for each job
  • Tone and style customization
  • Skills emphasis and project highlights
  • Company research integration

CV/Resume

  • Professional summary generation
  • Experience optimization
  • Skills highlighting
  • Layout and formatting options

Cover Letter Settings

Cover Letter Configuration
{
  "documentTypes": ["cv", "letter"],
  "motivationConfig": {
    "tone": "Professional and Formal",
    "characterCount": 800,
    "paragraphCount": 3,
    "emphasisProject": "E-commerce Platform Redesign",
    "emphasisSkills": ["React", "TypeScript", "Node.js"],
    "companyResearch": "Innovative fintech startup",
    "personalTouch": "Passionate about financial technology",
    "avoidGeneric": true,
    "includeSalaryExpectation": "competitive",
    "mentionAvailability": "immediately",

    "cvIntroductionCharCount": 600,
    "cvIntroductionPhraseCount": 4,
    "cvPreventLayoutOverflow": true
  }
}

Tone and Style Options

Formal

Professional corporate language, suitable for traditional companies

Professional

Balanced professional tone, works for most companies

Casual

Relaxed tone, suitable for startups and modern companies

Running Generation

Launch document generation with configured parameters:

Generation Process

  1. 1
    Job Search: System searches for matching job offers across configured platforms
  2. 2
    AI Analysis: AI analyzes job requirements and matches with your profile
  3. 3
    Content Generation: Personalized documents are created for each position
  4. 4
    Quality Review: Generated content is reviewed and optimized
  5. 5
    Results Available: Documents are ready for review and export
Launch Generation
// Launch generation with configured parameters
const generationRun = await jobyapp.generation.create({
  inputConfig: {
    keywords: "Full Stack Developer",
    location: "Paris",
    sites: ["linkedin", "indeed"],
    maxResults: 15
  },
  generationConfig: {
    documentTypes: ["cv", "letter"],
    motivationConfig: {
      tone: "Professional and Formal",
      characterCount: 800,
      emphasisSkills: ["React", "Node.js", "TypeScript"]
    }
  }
});

console.log(`Generation started: ${generationRun.id}`);

Runs Management

Track and manage your generation runs in the Runs tab:

Run Status Tracking

Pending

Run is queued and waiting to start processing

Running

Currently processing job offers and generating documents

Completed

Generation finished successfully, documents ready

Failed

Error occurred during processing, check details

Run Details

Available Information

Run Metadata
  • Run ID: Unique identifier
  • Created At: When the run was started
  • Completed At: When processing finished
  • Duration: Processing time
  • Status: Current run state
Results Summary
  • Jobs Found: Number of matching positions
  • Documents Generated: Total documents created
  • Cover Letters: Letter documents count
  • CVs: Resume documents count
  • Success Rate: Percentage of successful generations
Monitoring Run Status
// Check run status
const run = await jobyapp.generation.getRun(runId);

switch(run.status) {
  case 'pending':
    console.log('Run is queued...');
    break;
  case 'running':
    console.log(`Processing: ${run.progress}%`);
    break;
  case 'completed':
    console.log('Generation completed successfully!');
    console.log(`Generated ${run.results.documentCount} documents`);
    break;
  case 'failed':
    console.error('Generation failed:', run.error);
    break;
}

// List all runs
const runs = await jobyapp.generation.listRuns({
  status: 'completed',
  limit: 10
});

Export Options

Export generated documents in various formats:

Supported Formats

Document Formats

  • PDF: Professional format for applications
  • DOCX: Editable Microsoft Word format

Export Options

  • Individual Files: Download one document at a time
  • Bulk Export: Download all documents as ZIP
Export Documents
// Export individual document
const document = await jobyapp.generation.exportDocument(
  runId,
  documentId,
  'pdf'
);

// Download document
const blob = await document.blob();
const url = URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = 'cover-letter.pdf';
a.click();

// Bulk export all documents
const zipFile = await jobyapp.generation.exportRun(
  runId,
  'zip',  // Format: pdf, docx, zip
  {
    includeCoverLetters: true,
    includeCVs: true,
    organizeByCompany: true
  }
);

// Email documents
await jobyapp.generation.emailDocuments(runId, {
  to: 'recruiter@company.com',
  subject: 'Application for Senior React Developer',
  message: 'Please find my application materials attached.',
  includeCoverLetter: true,
  includeCV: true
});

Best Practices

Optimization Tips

Configuration

  • • Use specific keywords for better matching
  • • Limit max results to 20-30 for quality
  • • Customize tone for each company type
  • • Include relevant skills in emphasis list

Generation Management

  • • Monitor run progress regularly
  • • Review generated content before export
  • • Save successful configurations
  • • Keep track of application deadlines

Troubleshooting

Why did my generation run fail?

Common causes and solutions:

  • Invalid search parameters: Check keywords and location format
  • Site connectivity issues: Some job sites may be temporarily unavailable
  • API rate limits: Wait a few minutes before retrying
  • Template errors: Verify template syntax and required fields

Why are documents not personalized enough?

Improve personalization with these settings:

  • Enable "avoid generic content" option
  • Add specific projects and achievements
  • Include company research and personal touch
  • Customize skills emphasis for each position

How can I improve generation speed?

Optimize performance with these tips:

  • Reduce max results to 10-15 for faster processing
  • Limit to essential job sites only
  • Use specific keywords to reduce irrelevant results
  • Run generations during off-peak hours