Annotation Companies in Mysuru collector facts

Publisher: annotationdatamys (@annotationdatamys).

Version: 1. Last updated: 2026-07-06T09:16:23.357Z.

Run this collector on demand, as an API endpoint, or on a schedule with Firecrawl Prometheus.

Sample fields: city, note, state, total, country, companies, area, name, email, phone, source, address.

Annotation Companies in Mysuru

v1Published

Annotation and BPO/ITES companies in Mysuru, Karnataka, India — verified annotation firms with full contact plus the broader BPO/call-centre listings from JustDial Mysore.

Output & API

Preview the latest data, download it, or call this collector as an API.

Author's sample data
cityMysuru
noteMysuru does not have ~200 dedicated annotation companies. This list combines the verified annotation-specific firms (with full contact) and the broader BPO / ITES / call-centre firms in Mysuru listed on JustDial, where data-annotation work is commonly performed.
stateKarnataka
total64
countryIndia
companies

Marketplace

Publish this collector so others can deploy it — you keep ownership.

1 subscriber
annotationdatamys@annotationdatamys
0 runs in 14d · published 1d ago

Versions

Every build and self-heal appends a version. Pin one to lock runs to it.

managed by author
v1builtapprovedcurrent1d ago
How this script collects data
import Firecrawl from "@mendable/firecrawl-js";

const apiKey = process.env.FIRECRAWL_API_KEY;
if (!apiKey) {
  console.error("FIRECRAWL_API_KEY is not set");
  process.exit(1);
}
const firecrawl = new Firecrawl({ apiKey });

type Firm = {
  name: string;
  area?: string;
  address?: string;
  phone?: string;
  email?: string;
  website?: string;
  source: string;
  category: string;
};

// Curated, verified annotation firms in Mysuru with full contact details
// (gathered from their official contact pages and JustDial listings).
const verifiedFirms: Firm[] = [
  {
    name: "VisonVerse Technologies Pvt Ltd",
    area: "Kuvempunagar",
    address:
      "2nd Floor, above Kosamattam Finance building, Kuvempunagar M Block, 2nd Stage, Near Pooja Bakery, Mysore 570023",
    phone: "+91-9482278578",
    email: "hr@visonverse.com",
    website: "https://www.visonverse.com/",
    source: "visonverse.com/contact",
    category: "Data Annotation",
  },
  {
    name: "Annot IQ Solutions Pvt Ltd",
    area: "Udayagiri",
    address:
      "130/A, 2nd Floor, opp. to Nehru Park, M.G. Road, Udayagiri, Mysuru, Karnataka 570019",
    website: "https://www.annotiqsolutions.com/",
    source: "annotiqsolutions.com / justdial",
    category: "Data Annotation",
  },
  {
    name: "PlanetGlobe",
    area: "Vidyaranyapuram",
    address:
      "#64/8, JLB Road, Yelethota, Vidyaranyapuram, Mysore, Karnataka, India 570004",
    phone: "+91 9945381957",
    email: "info@planetglobe.in",
    website: "https://planetglobe.in/",
    source: "planetglobe.in/contact-us",
    category: "Data Annotation",
  },
  {
    name: "Manasya InfoSolutions",
    area: "N R Mohalla",
    address: "N R Mohalla, Mysore, Karnataka, India",
    phone: "+91 7996230094",
    email: "connect@manasyainfosolutions.in",
    website: "https://www.manasyainfosolutions.in/",
    source: "manasyainfosolutions.in",
    category: "Data Annotation",
  },
  {
    name: "Prudent Partners Pvt Ltd",
    area: "Kuvempunagar",
    address:
      "#667, Shrinidhi Plaza, GF & 2nd Floor, Nrupatunga Rd, Near Bus Depot, M-Block, Kuvempunagar, Mysuru, Karnataka 570023",
    phone: "+91 73488 31666",
    email: "contactus@prudentpartners.in",
    website: "https://prudentpartners.in/",
    source: "prudentpartners.in/contact-us",
    category: "Data Annotation",
  },
  {
    name: "SHIRO BPO Services",
    area: "Vijayanagar 1st Stage",
    address:
      "2nd Floor, #442, Jaya Chama Rajendra Rd, Vijayanagar 1st Stage, Vijayanagar, Mysuru, Karnataka 570017, India",
    phone: "+91 76766 66844",
    email: "info@shirobpo.com",
    website: "https://shirobpo.com/",
    source: "shirobpo.com/contact",
    category: "Data Annotation",
  },
  {
    name: "Goalcryst India Pvt Ltd",
    area: "Saraswathipuram",
    address:
      "#2913, CH-56, 2nd Floor, 4th Cross, Opposite to TTL College, Kantharaja Urs Road, Saraswathipuram, Mysuru, Karnataka 570009",
    phone: "0821-4191187",
    email: "info@goalcryst.com",
    website: "https://www.goalcryst.com/",
    source: "goalcryst.com/about-us",
    category: "Data Annotation / BPO",
  },
  {
    name: "L&T Technology Services (LTTS) - Mysuru Campus",
    area: "Hebbal-Hootangalli",
    address:
      "L&T Special Economic Zone, Mysuru Campus, Plot No. 324-330, KIADB Industrial Area, Hebbal-Hootangalli, Mysuru, Karnataka 570081",
    email: "info@ltts.com",
    website: "https://www.ltts.com/",
    source: "ltts.com/careers/india",
    category: "Data Annotation (AnnotAI)",
  },
];

// JustDial category listing pages for Mysore covering the BPO / ITES scene.
const jdCategories = [
  { path: "BPO/nct-10055809", label: "BPO" },
  { path: "BPO-For-Domestic/nct-10055842", label: "BPO (Domestic)" },
  { path: "Call-Centres/nct-10071239", label: "Call Centres" },
  { path: "Data-Entry-Services/nct-10070745", label: "Data Entry Services" },
];

// Split a JustDial listing title like
//   "Inspire Global Solutions Near Icici Bank ATM Fort Mohalla, Mysore"
// into a company name and an area / landmark hint.
function splitTitle(title: string): { name: string; area: string } {
  const base = title.replace(/,?\s*Mysore$/, "").trim();
  const landmarks = [
    "Near ",
    "Above ",
    "Opposite ",
    "Opp. ",
    "Next To ",
    "Abv ",
    "Beside ",
    "Behind ",
    " in ",
  ];
  let cut = base.length;
  for (const lm of landmarks) {
    const idx = base.indexOf(lm);
    if (idx > 0 && idx < cut) cut = idx;
  }
  const name = base.slice(0, cut).replace(/\s+/g, " ").trim();
  const area = base.slice(cut).replace(/\s+/g, " ").trim();
  return { name, area };
}

function norm(s: string): string {
  return s.toLowerCase().replace(/[^a-z0-9]/g, "");
}

async function scrapeJustDial(): Promise<Firm[]> {
  const out: Firm[] = [];
  const seen = new Set<string>();
  for (const cat of jdCategories) {
    for (let p = 1; p <= 5; p++) {
      const url = `https://www.justdial.com/Mysore/${cat.path}/page-${p}`;
      let md = "";
      try {
        const doc = await firecrawl.scrape(url, {
          formats: ["markdown"],
          integration: "prometheus",
        });
        md = (doc as any).markdown ?? "";
      } catch (e) {
        console.error(`Failed to scrape ${url}:`, (e as Error).message);
        continue;
      }
      if (!md) continue;
      // Stop early if the page has no listings.
      if (!/Mysore/.test(md) || md.length < 500) {
        console.error(`No content on ${url}, stopping this category.`);
        break;
      }
      const re = /"([A-Z][^"]{5,},\s*Mysore)"/g;
      let m: RegExpExecArray | null;
      let added = 0;
      while ((m = re.exec(md)) !== null) {
        const raw = m[1].replace(/\s+/g, " ").trim();
        const { name, area } = splitTitle(raw);
        if (!name) continue;
        const key = norm(name);
        if (seen.has(key)) continue;
        seen.add(key);
        out.push({
          name,
          area: area || undefined,
          source: `JustDial Mysore / ${cat.label}`,
          category: cat.label,
        });
        added++;
      }
      // If a page added nothing new, the category is likely exhausted.
      if (added === 0 && p > 1) break;
    }
  }
  return out;
}

async function main() {
  const jdFirms = await scrapeJustDial();

  // Merge: verified firms first (with full contact), then the broader list.
  const all: Firm[] = [];
  const usedNames = new Set<string>();
  for (const f of verifiedFirms) {
    all.push(f);
    usedNames.add(norm(f.name));
  }
  for (const f of jdFirms) {
    if (usedNames.has(norm(f.name))) {
      // enrich area if a verified firm had no area
      continue;
    }
    all.push(f);
    usedNames.add(norm(f.name));
  }

  const out = {
    city: "Mysuru",
    state: "Karnataka",
    country: "India",
    total: all.length,
    note:
      "Mysuru does not have ~200 dedicated annotation companies. This list combines the verified annotation-specific firms (with full contact) and the broader BPO / ITES / call-centre firms in Mysuru listed on JustDial, where data-annotation work is commonly performed.",
    companies: all,
  };
  process.stdout.write(JSON.stringify(out, null, 2));
}

main().catch((err) => {
  console.error(err);
  process.exit(1);
});
deploy to unlock

Deploy this collector to unlock schedules, the API endpoint, and destinations.

One person builds it. Everyone keeps it fresh.
Annotation Companies in Mysuru Data Collector | Firecrawl Prometheus