Skip to main content
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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;
}

Contract Review

Extract and flag key clauses:
<?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
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
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 for complete working examples of these patterns.