← back to Sdcc Awards
cypressaward/scraper/add-administrators-firms.js
237 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 addAdministratorsAndFirms() {
console.log('Adding class action administrators and law firms...');
// Class Action Administrators
const administrators = [
{
name: 'Angeion Group',
ranking: 'Class Action Administrator',
location: 'Philadelphia, PA',
size: 'Settlement Administrator',
practice_areas: 'Class action notice and distributions, cy pres capable',
revenue: 'Major settlement administrator',
website: 'https://www.angeiongroup.com',
source: 'Cy Pres Administrator',
data_type: 'law_firm'
},
{
name: 'Epiq Class Action & Claims Solutions',
ranking: 'Global Administrator',
location: 'Portland, OR',
size: 'Settlement Administrator',
practice_areas: 'Global class action administration; absorbed Garden City Group and Heffler Claims',
revenue: 'Largest settlement administrator',
website: 'https://www.epiqglobal.com',
source: 'Cy Pres Administrator',
data_type: 'law_firm'
},
{
name: 'Rust Consulting',
ranking: 'Class Action Administrator',
location: 'Minneapolis, MN',
size: 'Settlement Administrator',
practice_areas: 'Consumer, antitrust, securities class action administration',
revenue: 'Major settlement administrator',
website: 'https://www.rustconsulting.com',
source: 'Cy Pres Administrator',
data_type: 'law_firm'
},
{
name: 'JND Legal Administration',
ranking: 'Class Action Administrator',
location: 'Seattle, WA',
size: 'Settlement Administrator',
practice_areas: 'Large complex settlements administration',
revenue: 'Major settlement administrator',
website: 'https://www.jndla.com',
source: 'Cy Pres Administrator',
data_type: 'law_firm'
},
{
name: 'KCC (Kurtzman Carson Consultants)',
ranking: 'Class Action Administrator',
location: 'El Segundo, CA',
size: 'Settlement Administrator',
practice_areas: 'Class action and bankruptcy administration',
revenue: 'Major settlement administrator',
website: 'https://www.kccllc.com',
source: 'Cy Pres Administrator',
data_type: 'law_firm'
},
{
name: 'Simpluris',
ranking: 'Class Action Administrator',
location: 'Burlingame, CA',
size: 'Settlement Administrator',
practice_areas: 'Wage & hour, consumer, antitrust administration',
revenue: 'Settlement administrator',
website: 'https://www.simpluris.com',
source: 'Cy Pres Administrator',
data_type: 'law_firm'
},
{
name: 'American Legal Claim Services (ALCS)',
ranking: 'Class Action Administrator',
location: 'Jacksonville, FL',
size: 'Settlement Administrator',
practice_areas: 'Class action claims administration',
revenue: 'Settlement administrator',
website: 'https://www.americanlegal.com',
source: 'Cy Pres Administrator',
data_type: 'law_firm'
},
{
name: 'Analytics Consulting LLC',
ranking: 'Class Action Administrator',
location: 'Chantilly, VA',
size: 'Settlement Administrator',
practice_areas: 'Administration and noticing services',
revenue: 'Settlement administrator',
website: 'https://www.analyticsllc.com',
source: 'Cy Pres Administrator',
data_type: 'law_firm'
},
{
name: 'First Class, Inc.',
ranking: 'Class Action Administrator',
location: 'Chicago, IL',
size: 'Settlement Administrator',
practice_areas: 'Claims administration and noticing',
revenue: 'Settlement administrator',
website: 'https://www.firstclassinc.com',
source: 'Cy Pres Administrator',
data_type: 'law_firm'
},
{
name: 'CAC Services (Class Action Claims Services)',
ranking: 'Boutique Administrator',
location: 'Los Angeles, CA',
size: 'Settlement Administrator',
practice_areas: 'Boutique class action administration',
revenue: 'Boutique administrator',
website: 'http://www.cacservices.com',
source: 'Cy Pres Administrator',
data_type: 'law_firm'
},
{
name: 'SSI (Settlement Services, Inc.)',
ranking: 'Boutique Administrator',
location: 'New York, NY',
size: 'Settlement Administrator',
practice_areas: 'Boutique settlement administration',
revenue: 'Boutique administrator',
website: 'http://www.settlementservicesinc.com',
source: 'Cy Pres Administrator',
data_type: 'law_firm'
},
{
name: 'Kinsella Media',
ranking: 'Notice Expert',
location: 'Washington, DC',
size: 'Notice Specialist',
practice_areas: 'Notice program design; often paired with administrators',
revenue: 'Notice specialist',
website: 'https://www.kinsellamedia.com',
source: 'Cy Pres Notice Expert',
data_type: 'law_firm'
}
];
// Additional Law Firms with Cy Pres Activity
const additionalLawFirms = [
{
name: 'Keller Rohrback LLP',
ranking: 'Complex Litigation Firm',
location: 'Seattle, WA',
size: '90+ attorneys',
practice_areas: 'Privacy, antitrust, consumer class actions with cy pres distributions',
revenue: 'Significant settlements',
website: 'https://www.kellerrohrback.com',
source: 'Cy Pres Specialist',
data_type: 'law_firm'
},
{
name: 'Scott+Scott Attorneys at Law LLP',
ranking: 'Securities & Antitrust Firm',
location: 'Colchester, CT',
size: '60+ attorneys',
practice_areas: 'Antitrust and securities class actions with cy pres provisions',
revenue: 'Major recoveries',
website: 'https://www.scott-scott.com',
source: 'Cy Pres Specialist',
data_type: 'law_firm'
},
{
name: 'Keller Lenkner / Keller Postman',
ranking: 'Consumer Rights Firm',
location: 'Chicago, IL',
size: '50+ attorneys',
practice_areas: 'Consumer and privacy class actions with cy pres awards',
revenue: 'Growing practice',
website: 'https://www.kellerpostman.com',
source: 'Cy Pres Specialist',
data_type: 'law_firm'
},
{
name: 'Quinn Emanuel Urquhart & Sullivan LLP',
ranking: 'Global Litigation Powerhouse',
location: 'Los Angeles, CA',
size: '900+ attorneys',
practice_areas: 'Complex litigation including class actions with cy pres negotiations',
revenue: '$1.4B+ annual revenue',
website: 'https://www.quinnemanuel.com',
source: 'Cy Pres Negotiator',
data_type: 'law_firm'
}
];
try {
// Add administrators
for (const admin of administrators) {
admin.hash = generateHash(admin);
const { error } = await supabase
.from('scraped_law_firms')
.upsert(admin, { onConflict: 'hash' });
if (error) {
console.error('Error adding administrator:', error);
} else {
console.log(`Added administrator: ${admin.name}`);
}
}
// Add additional law firms
for (const firm of additionalLawFirms) {
firm.hash = generateHash(firm);
const { error } = await supabase
.from('scraped_law_firms')
.upsert(firm, { onConflict: 'hash' });
if (error) {
console.error('Error adding law firm:', error);
} else {
console.log(`Added law firm: ${firm.name}`);
}
}
console.log('Successfully added all administrators and law firms!');
} catch (error) {
console.error('Error:', error);
}
}
addAdministratorsAndFirms();