← back to Sdcc Awards

cypressaward/scraper/populate-administrators.js

242 lines

require('dotenv').config();
const { createClient } = require('@supabase/supabase-js');
const crypto = require('crypto');

// Supabase configuration
const supabaseUrl = process.env.SUPABASE_URL;
const supabaseKey = process.env.SUPABASE_ANON_KEY;
const supabase = createClient(supabaseUrl, supabaseKey);

// Generate unique hash for deduplication
function generateHash(data) {
  return crypto.createHash('md5').update(JSON.stringify(data)).digest('hex');
}

async function populateAdministrators() {
  console.log('Populating settlement administrators table...');
  
  // Settlement Administrators
  const administrators = [
    {
      name: 'Angeion Group',
      type: 'administrator',
      location: 'Philadelphia, PA',
      phone: '(215) 563-4116',
      website: 'https://www.angeiongroup.com',
      description: 'Leading class action settlement administrator with extensive cy pres distribution experience',
      specialties: 'Class action notice and distributions, cy pres capable, media campaigns',
      cy_pres_capable: true,
      press_page: 'https://www.angeiongroup.com/news',
      notes: 'Handles complex multi-state settlements with cy pres components',
      source: 'Settlement Administrator',
      email: 'info@angeiongroup.com'
    },
    {
      name: 'Epiq Class Action & Claims Solutions',
      type: 'administrator',
      location: 'Portland, OR',
      phone: '(503) 520-4400',
      website: 'https://www.epiqglobal.com',
      description: 'Global leader in class action administration, absorbed Garden City Group and Heffler Claims',
      specialties: 'Large-scale settlements, international claims, cy pres distributions',
      cy_pres_capable: true,
      press_page: 'https://www.epiqglobal.com/en-us/about/news',
      notes: 'Largest settlement administrator globally',
      source: 'Settlement Administrator',
      email: 'classaction@epiqglobal.com'
    },
    {
      name: 'Rust Consulting',
      type: 'administrator',
      location: 'Minneapolis, MN',
      phone: '(612) 359-2000',
      website: 'https://www.rustconsulting.com',
      description: 'Experienced administrator for consumer, antitrust, and securities class actions',
      specialties: 'Consumer protection, antitrust, securities, cy pres distributions',
      cy_pres_capable: true,
      press_page: '',
      notes: 'Specializes in complex financial settlements',
      source: 'Settlement Administrator',
      email: ''
    },
    {
      name: 'JND Legal Administration',
      type: 'administrator',
      location: 'Seattle, WA',
      phone: '(800) 207-7160',
      website: 'https://www.jndla.com',
      description: 'Specializes in large and complex class action settlements',
      specialties: 'Mass tort, consumer, employment, cy pres capable',
      cy_pres_capable: true,
      press_page: 'https://www.jndla.com/press',
      notes: 'Known for handling billion-dollar settlements',
      source: 'Settlement Administrator',
      email: 'info@jndla.com'
    },
    {
      name: 'KCC (Kurtzman Carson Consultants)',
      type: 'administrator',
      location: 'El Segundo, CA',
      phone: '(866) 381-9100',
      website: 'https://www.kccllc.com',
      description: 'Class action and bankruptcy administration specialist',
      specialties: 'Class action, bankruptcy, mass tort, cy pres distributions',
      cy_pres_capable: true,
      press_page: '',
      notes: 'Dual expertise in class action and bankruptcy',
      source: 'Settlement Administrator',
      email: ''
    },
    {
      name: 'Simpluris',
      type: 'administrator',
      location: 'Burlingame, CA',
      phone: '(800) 779-2104',
      website: 'https://www.simpluris.com',
      description: 'California-based administrator for wage & hour, consumer, and antitrust cases',
      specialties: 'Wage & hour, consumer protection, antitrust, cy pres',
      cy_pres_capable: true,
      press_page: '',
      notes: 'Strong California presence',
      source: 'Settlement Administrator',
      email: ''
    },
    {
      name: 'American Legal Claim Services (ALCS)',
      type: 'administrator',
      location: 'Jacksonville, FL',
      phone: '(904) 517-2000',
      website: 'https://www.americanlegal.com',
      description: 'Full-service class action claims administrator',
      specialties: 'Consumer, employment, civil rights settlements',
      cy_pres_capable: true,
      press_page: '',
      notes: 'Southeast regional focus',
      source: 'Settlement Administrator',
      email: ''
    },
    {
      name: 'Analytics Consulting LLC',
      type: 'administrator',
      location: 'Chantilly, VA',
      phone: '(714) 889-7900',
      website: 'https://www.analyticsllc.com',
      description: 'Settlement administration and legal noticing services',
      specialties: 'Data analytics, notice programs, cy pres distributions',
      cy_pres_capable: true,
      press_page: '',
      notes: 'Technology-focused administrator',
      source: 'Settlement Administrator',
      email: ''
    },
    {
      name: 'First Class, Inc.',
      type: 'administrator',
      location: 'Chicago, IL',
      phone: '(888) 213-0166',
      website: 'https://www.firstclassinc.com',
      description: 'Claims administration and legal noticing specialist',
      specialties: 'Consumer claims, notice campaigns, cy pres',
      cy_pres_capable: true,
      press_page: '',
      notes: 'Midwest regional focus',
      source: 'Settlement Administrator',
      email: ''
    },
    {
      name: 'CAC Services',
      type: 'administrator',
      location: 'Los Angeles, CA',
      phone: '(310) 482-2222',
      website: 'http://www.cacservices.com',
      description: 'Boutique class action claims administrator',
      specialties: 'California consumer cases, cy pres distributions',
      cy_pres_capable: true,
      press_page: '',
      notes: 'Boutique West Coast administrator',
      source: 'Settlement Administrator',
      email: ''
    },
    {
      name: 'Settlement Services Inc. (SSI)',
      type: 'administrator',
      location: 'New York, NY',
      phone: '(212) 684-1100',
      website: 'http://www.settlementservicesinc.com',
      description: 'Boutique settlement administrator',
      specialties: 'Securities, consumer, employment settlements',
      cy_pres_capable: true,
      press_page: '',
      notes: 'Boutique East Coast administrator',
      source: 'Settlement Administrator',
      email: ''
    },
    {
      name: 'Kinsella Media',
      type: 'notice_specialist',
      location: 'Washington, DC',
      phone: '(202) 686-4111',
      website: 'https://www.kinsellamedia.com',
      description: 'Legal notice program design expert, partners with administrators',
      specialties: 'Notice program design, media planning, Rule 23 compliance',
      cy_pres_capable: false,
      press_page: '',
      notes: 'Often paired with settlement administrators',
      source: 'Notice Specialist',
      email: ''
    },
    {
      name: 'Heffler Claims Group',
      type: 'administrator',
      location: 'Philadelphia, PA',
      phone: '(215) 665-2150',
      website: 'https://www.hefflerclaims.com',
      description: 'Now part of Epiq, continues operations under Heffler brand',
      specialties: 'Securities, consumer, mass tort settlements',
      cy_pres_capable: true,
      press_page: '',
      notes: 'Legacy brand, now part of Epiq',
      source: 'Settlement Administrator',
      email: ''
    },
    {
      name: 'Garden City Group',
      type: 'administrator',
      location: 'Melville, NY',
      phone: '(631) 470-5000',
      website: 'https://www.gardencitygroup.com',
      description: 'Now part of Epiq, continues as premium brand',
      specialties: 'Complex litigation, mass tort, cy pres distributions',
      cy_pres_capable: true,
      press_page: '',
      notes: 'Legacy premium brand, now part of Epiq',
      source: 'Settlement Administrator',
      email: ''
    }
  ];

  try {
    // Clear existing administrators
    await supabase.from('scraped_administrators').delete().gte('id', 0);
    
    // Add administrators
    for (const admin of administrators) {
      admin.hash = generateHash(admin);
      const { error } = await supabase
        .from('scraped_administrators')
        .insert(admin);
      
      if (error) {
        console.error('Error adding administrator:', error);
      } else {
        console.log(`Added: ${admin.name}`);
      }
    }
    
    console.log('Successfully populated settlement administrators table!');
  } catch (error) {
    console.error('Error:', error);
  }
}

populateAdministrators();