> ## Documentation Index
> Fetch the complete documentation index at: https://docs.instructorphp.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Use cases

Instructor powers structured data extraction across industries. Here's how teams are using it.

## E-Commerce

### Product Data Enrichment

Transform sparse product listings into rich, searchable data:

```php theme={null}
<?php
class ProductEnrichment {
    public string $title;
    public string $description;
    /** @var string[] */
    public array $keywords;
    /** @var string[] */
    public array $categories;
    public string|null $brand;
    public string|null $material;
    /** @var string[] */
    public array $useCases;
}

$enriched = (new StructuredOutput)
    ->withResponseClass(ProductEnrichment::class)
    ->withMessages("Blue cotton t-shirt, size M, machine washable")
    ->get();
```

### Review Analysis

Extract structured insights from customer reviews:

```php theme={null}
<?php
class ReviewAnalysis {
    public string $sentiment; // positive, negative, neutral
    public float $rating; // inferred 1-5 scale
    /** @var string[] */
    public array $positiveAspects;
    /** @var string[] */
    public array $negativeAspects;
    /** @var string[] */
    public array $productMentions;
    public bool $wouldRecommend;
}
```

### Customer Support Triage

Route support tickets automatically:

```php theme={null}
<?php
class SupportTicket {
    public string $category; // billing, technical, shipping, returns
    public string $urgency; // low, medium, high, critical
    public string $summary;
    public string|null $orderId;
    public string|null $productSku;
    /** @var string[] */
    public array $suggestedActions;
}
```

***

## Healthcare

### Medical Record Processing

Extract structured data from clinical notes:

```php theme={null}
<?php
class ClinicalNote {
    public string $patientId;
    public string $visitDate;
    public string $chiefComplaint;
    /** @var Diagnosis[] */
    public array $diagnoses;
    /** @var Medication[] */
    public array $medications;
    /** @var string[] */
    public array $allergies;
    public string|null $followUp;
}

class Diagnosis {
    public string $condition;
    public string $icdCode;
    public string $severity;
}

class Medication {
    public string $name;
    public string $dosage;
    public string $frequency;
}
```

### Insurance Claim Processing

Parse and validate insurance claims:

```php theme={null}
<?php
class InsuranceClaim {
    public string $claimId;
    public string $patientName;
    public string $dateOfService;
    /** @var Procedure[] */
    public array $procedures;
    public float $totalAmount;
    public string $providerNpi;
    /** @var string[] */
    public array $validationIssues;
}
```

***

## Finance

### Document Analysis

Extract key terms from financial documents:

```php theme={null}
<?php
class ContractAnalysis {
    public string $documentType;
    public string $effectiveDate;
    public string|null $expirationDate;
    /** @var Party[] */
    public array $parties;
    /** @var FinancialTerm[] */
    public array $financialTerms;
    /** @var string[] */
    public array $obligations;
    /** @var string[] */
    public array $riskFactors;
}

class FinancialTerm {
    public string $type; // payment, penalty, interest
    public float $amount;
    public string $currency;
    public string|null $frequency;
}
```

### Transaction Categorization

Classify and enrich transaction data:

```php theme={null}
<?php
class Transaction {
    public string $merchantName;
    public string $category; // food, transport, utilities, entertainment
    public string $subcategory;
    public bool $isRecurring;
    public string|null $subscriptionService;
    public bool $isTaxDeductible;
    public string|null $taxCategory;
}
```

***

## Real Estate

### Property Listing Extraction

Parse unstructured property descriptions:

```php theme={null}
<?php
class PropertyListing {
    public string $propertyType; // house, apartment, condo
    public int $bedrooms;
    public float $bathrooms;
    public int $squareFeet;
    public int|null $yearBuilt;
    /** @var string[] */
    public array $amenities;
    public string|null $parkingType;
    public bool|null $petFriendly;
    public string|null $heatingType;
    /** @var string[] */
    public array $nearbyFeatures;
}
```

### Contract Data Extraction

Pull key terms from lease agreements:

```php theme={null}
<?php
class LeaseAgreement {
    public string $landlordName;
    public string $tenantName;
    public string $propertyAddress;
    public float $monthlyRent;
    public float $securityDeposit;
    public string $leaseStart;
    public string $leaseEnd;
    /** @var string[] */
    public array $includedUtilities;
    /** @var string[] */
    public array $restrictions;
    public string|null $renewalTerms;
}
```

***

## Recruitment

### Resume Parsing

Extract structured candidate data:

```php theme={null}
<?php
class CandidateProfile {
    public string $name;
    public string $email;
    public string|null $phone;
    public string|null $location;
    public string|null $linkedIn;
    /** @var WorkExperience[] */
    public array $experience;
    /** @var Education[] */
    public array $education;
    /** @var string[] */
    public array $skills;
    /** @var string[] */
    public array $certifications;
    public int $yearsOfExperience;
}

class WorkExperience {
    public string $company;
    public string $title;
    public string $startDate;
    public string|null $endDate;
    /** @var string[] */
    public array $highlights;
}
```

### Job Matching

Score candidate fit for positions:

```php theme={null}
<?php
class CandidateMatch {
    public float $overallScore; // 0-100
    /** @var SkillMatch[] */
    public array $skillMatches;
    /** @var string[] */
    public array $strengths;
    /** @var string[] */
    public array $gaps;
    public string $recommendation; // strong_yes, yes, maybe, no
    public string $reasoning;
}
```

***

## Manufacturing

### Quality Control Reports

Structure inspection findings:

```php theme={null}
<?php
class QualityInspection {
    public string $productId;
    public string $batchNumber;
    public string $inspectionDate;
    public string $inspector;
    public string $overallStatus; // pass, fail, conditional
    /** @var Defect[] */
    public array $defects;
    /** @var Measurement[] */
    public array $measurements;
    /** @var string[] */
    public array $correctiveActions;
}

class Defect {
    public string $type;
    public string $severity; // minor, major, critical
    public string $location;
    public string $description;
}
```

### Maintenance Logs

Extract actionable maintenance data:

```php theme={null}
<?php
class MaintenanceRecord {
    public string $equipmentId;
    public string $equipmentName;
    public string $maintenanceType; // preventive, corrective, emergency
    public string $datePerformed;
    public string $technician;
    /** @var string[] */
    public array $workPerformed;
    /** @var Part[] */
    public array $partsUsed;
    public float $laborHours;
    public string|null $nextScheduledMaintenance;
}
```

***

## Education

### Assignment Evaluation

Structure grading feedback:

```php theme={null}
<?php
class AssignmentEvaluation {
    public float $score;
    public string $grade;
    /** @var RubricScore[] */
    public array $rubricScores;
    /** @var string[] */
    public array $strengths;
    /** @var string[] */
    public array $areasForImprovement;
    public string $overallFeedback;
    /** @var string[] */
    public array $suggestedResources;
}

class RubricScore {
    public string $criterion;
    public int $points;
    public int $maxPoints;
    public string $feedback;
}
```

### Content Structuring

Convert educational content into structured formats:

```php theme={null}
<?php
class LessonPlan {
    public string $subject;
    public string $gradeLevel;
    public string $topic;
    /** @var string[] */
    public array $learningObjectives;
    /** @var Activity[] */
    public array $activities;
    /** @var string[] */
    public array $materials;
    public int $durationMinutes;
    /** @var string[] */
    public array $assessmentMethods;
}
```

***

## Legal

### Contract Review

Extract and flag key clauses:

```php theme={null}
<?php
class ContractReview {
    public string $contractType;
    /** @var Clause[] */
    public array $keyClauses;
    /** @var RiskItem[] */
    public array $risks;
    /** @var string[] */
    public array $missingClauses;
    /** @var string[] */
    public array $unusualTerms;
    public string $overallAssessment;
}

class Clause {
    public string $type; // indemnification, limitation_of_liability, termination
    public string $summary;
    public string $fullText;
    public string $favorability; // favorable, neutral, unfavorable
}

class RiskItem {
    public string $description;
    public string $severity; // low, medium, high
    public string $recommendation;
}
```

***

## Content & Media

### Content Moderation

Analyze and classify user-generated content:

```php theme={null}
<?php
class ContentModeration {
    public bool $isSafe;
    /** @var string[] */
    public array $flaggedCategories; // spam, hate_speech, adult, violence
    public float $confidenceScore;
    public string $reasoning;
    public string $recommendedAction; // approve, review, reject
}
```

### Article Summarization

Generate structured article summaries:

```php theme={null}
<?php
class ArticleSummary {
    public string $headline;
    public string $summary;
    /** @var string[] */
    public array $keyPoints;
    /** @var string[] */
    public array $topics;
    /** @var Entity[] */
    public array $entitiesMentioned;
    public string $sentiment;
    public int $readingTimeMinutes;
}

class Entity {
    public string $name;
    public string $type; // person, organization, location, product
    public string|null $context;
}
```

***

## Getting Started with Your Use Case

1. **Define your data model** - Create PHP classes representing your target structure
2. **Add validation** - Use Symfony constraints to ensure data quality
3. **Test with examples** - Start with a few representative inputs
4. **Iterate on prompts** - Use system messages to guide extraction
5. **Handle edge cases** - Set appropriate retry limits

See the [Cookbook](/cookbook/introduction) for complete working examples of these patterns.
