tomgranot/hubspot-admin-skills/backfill-geo-data
Claude Code and agent skill by tomgranot/hubspot-admin-skills
- community
Checking that the SKILL.md file is still in the repository.
Enrich missing geographic data (country, state, city) on contacts and companies using HubSpot workflows, external data providers, or IP-based geolocation.
Install
npx vskill@latest install tomgranot/hubspot-admin-skills/backfill-geo-dataSKILL.md
Backfill Geographic Data
Fill in missing country, state, and city values on contacts and companies. Geographic data enables territory assignment, regional reporting, and compliance (GDPR, state privacy laws).
Prerequisites
- A HubSpot service key (
HUBSPOT_ACCESS_TOKENin.env; an existing legacy private app token also works) with contact and company read/write scopes - Python 3.10+ with `uv`
- Standardized geo values already in place (run
/standardize-geo-valuesfirst)
Enrichment Methods
Method 1: HubSpot Workflow Enrichment (Simplest)
Use HubSpot's built-in Operations Hub data quality tools or Breeze Intelligence (if available on your plan) to auto-fill geographic fields.
- Create a workflow triggered by: country is unknown AND email is known
- Use the "Enrich contact" action (Operations Hub Professional+) or Breeze Intelligence enrichment
- If enrichment fills country/state, the workflow completes
- If enrichment fails, branch to flag for manual review
Method 2: Company Domain Lookup (API-based)
For contacts with a company domain but no geo data, look up the company's geographic information:
Copy country/state/city from the associated company to the contact (same pattern as /enrich-company-name).
Method 3: External Data Provider
Use /waterfall-enrich-contacts — it provides pluggable provider adapters (FullEnrich by default; Apollo, Hunter, Dropcontact included, or bring your own), per-run cost caps, no-overwrite safety, and a CSV audit trail. Exhaust Methods 1-2 first: external lookups cost credits per contact, internal data is free.
Step-by-Step Instructions
Stage 1: Plan
- Choose the enrichment method (see above) based on volume, plan tier, and budget — confirm with the user.
- Confirm the no-overwrite rule: enrichment must only fill empty fields.
Stage 2: Before — Assess the Gap
- Count contacts missing country, state, and city.
- Segment by source — which lead sources tend to have missing geo data?
- Export a CSV baseline of the affected records before changing anything.
Stage 3: Execute — Run Enrichment
- Apply the chosen method (or combine methods for maximum coverage).
- Process in batches of 100 to respect rate limits.
- Validate enriched values against the standardized geo format from
/standardize-geo-values.
Stage 4: After — Verify
- Re-count contacts missing geographic fields. Calculate improvement percentage.
- Spot-check 20-30 enriched contacts for accuracy.
- Set up the new-contact hygiene workflow to prevent future gaps.
Rollback
- If enrichment data is inaccurate, filter contacts updated by the enrichment process (use
hs_lastmodifieddaterange) and clear the geo fields. - Keep a backup export of the original data before running enrichment.
Tips
- IP-based geolocation (from form submissions) is already captured by HubSpot in
ip_city,ip_state,ip_country. Copy these to the standard fields if the standard fields are empty. - Do not overwrite manually-entered geo data with enrichment data — always check "if empty" before writing.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/backfill-geo-data/SKILL.md
Popularity
- Repository stars
- 56
- Repository forks
- 15
- 7-day trend score
- 20
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/tomgranot/hubspot-admin-skills/backfill-geo-data)