india-location-normalizer
v1.0.1Normalize Indian real-estate location text into canonical city and locality fields (Mumbai and Pune v1) with confidence and unresolved flags. Use when leads contain aliases like Goregaon, Andheri W, PCMC, Hinjewadi, Baner, or Wakad. Recommended chain position: lead-extractor then india-location-norm...
Installation
Please help me install the skill `india-location-normalizer` from SkillHub official store.
npx skills add vishalgojha/india-location-normalizer
India Location Normalizer
Resolve messy India locality aliases into canonical location fields without side effects.
Quick Triggers
- Normalize Mumbai/Pune location aliases from extracted leads.
- Map PCMC and Hinjewadi variants to canonical localities.
- Resolve Mumbai shorthand like
Scruz,Khar,Andheri W,Turner Road,Carter Road. - Standardize locality names before scoring or storage.
Recommended Chain
message-parser -> lead-extractor -> india-location-normalizer -> sentiment-priority-scorer
Target KPI for production tuning: improve canonical Mumbai/Pune locality resolution versus extractor-only baseline.
Execute Workflow
- Accept lead-location payload from Supervisor.
- Validate input against
references/location-normalizer-input.schema.json. - Use
references/india-location-aliases-v1.jsonas the authoritative lookup map. - Match in this order:
- exact alias match (case-insensitive)
- token-normalized alias match (trim punctuation, collapse spaces)
- conservative fuzzy match only when clearly unambiguous
- Return one normalized location record per input lead with:
citylocality_canonicalmicro_marketmatched_aliasconfidenceunresolved_flag- Validate output against
references/location-normalizer-output.schema.json.
Enforce Boundaries
- Never parse raw chat exports.
- Never extract non-location entities.
- Never write to Google Sheets, databases, or files.
- Never send messages or trigger external channels.
- Never auto-resolve low-confidence ambiguous aliases.
Handle Ambiguity
- If multiple localities match equally, set
unresolved_flag: true. - If no confident match exists, preserve input in
matched_aliasand mark unresolved. - Prefer false-negative over false-positive for city/locality assignment.