← back to Norma Platform
IG reshare: curate real populated community hashtags for all 32 accounts (drop dead handle-tags) — previously-empty accounts now find vendor-matched posts; regen preserves curation
aca7fab94c918e33215c2acaa572237f4cfe0308 · 2026-08-14 16:03:14 -0700 · Steve
Files touched
M agents/instagram-agent/build-ig-data.jsM agents/instagram-agent/data/account-hashtags.json
Diff
commit aca7fab94c918e33215c2acaa572237f4cfe0308
Author: Steve <steve@designerwallcoverings.com>
Date: Fri Aug 14 16:03:14 2026 -0700
IG reshare: curate real populated community hashtags for all 32 accounts (drop dead handle-tags) — previously-empty accounts now find vendor-matched posts; regen preserves curation
---
agents/instagram-agent/build-ig-data.js | 7 +-
agents/instagram-agent/data/account-hashtags.json | 216 ++++------------------
2 files changed, 38 insertions(+), 185 deletions(-)
diff --git a/agents/instagram-agent/build-ig-data.js b/agents/instagram-agent/build-ig-data.js
index 8fa13c8..841cfa7 100644
--- a/agents/instagram-agent/build-ig-data.js
+++ b/agents/instagram-agent/build-ig-data.js
@@ -20,8 +20,11 @@ for (const h of accounts.list().map((a) => a.handle)) {
kw.split(/\s+/).filter((w) => w.length > 3).forEach((w) => tags.add(w.toLowerCase()));
tags.add('interiordesign'); map[h] = [...tags].slice(0, 4);
}
-fs.writeFileSync(path.join(DATA, 'account-hashtags.json'), JSON.stringify(map, null, 1));
-console.log(`account-hashtags.json: ${Object.keys(map).length} accounts`);
+// account-hashtags.json is HAND-CURATED (real populated community hashtags) — only seed it if
+// missing, never overwrite the curation with the auto-derived (weaker) version.
+const AHPATH = path.join(DATA, 'account-hashtags.json');
+if (!fs.existsSync(AHPATH)) { fs.writeFileSync(AHPATH, JSON.stringify(map, null, 1)); console.log(`account-hashtags.json: seeded ${Object.keys(map).length} accounts (derived — curate by hand)`); }
+else { console.log('account-hashtags.json: exists (hand-curated) — preserved'); }
// 2) dw-vendors.txt baseline — vendor_registry + scrub (skip if psql/db unavailable)
try {
const raw = cp.execSync(`psql "host=/tmp dbname=dw_unified" -tAc "SELECT DISTINCT lower(vendor_name) FROM vendor_registry WHERE vendor_name IS NOT NULL"`, { encoding: 'utf8' });
diff --git a/agents/instagram-agent/data/account-hashtags.json b/agents/instagram-agent/data/account-hashtags.json
index 594a425..54e334d 100644
--- a/agents/instagram-agent/data/account-hashtags.json
+++ b/agents/instagram-agent/data/account-hashtags.json
@@ -1,184 +1,34 @@
{
- "asseeninhotels": [
- "asseeninhotels",
- "hospitality",
- "interiordesign"
- ],
- "beverlyhillsvideos": [
- "beverlyhillsvideos",
- "metallic",
- "gold",
- "glamour"
- ],
- "borninbeverlyhills": [
- "borninbeverlyhills",
- "glamour",
- "metallic",
- "interiordesign"
- ],
- "chinoiseriewallpaper": [
- "chinoiseriewallpaper",
- "chinoiserie",
- "interiordesign"
- ],
- "commercialwallcoverings": [
- "commercialwallcoverings",
- "commercial",
- "vinyl",
- "interiordesign"
- ],
- "customwallcoverings": [
- "customwallcoverings",
- "mural",
- "interiordesign"
- ],
- "designerlaboratory": [
- "designerlaboratory",
- "modern",
- "geometric",
- "interiordesign"
- ],
- "designerwallcoverings": [
- "designerwallcoverings",
- "luxury",
- "wallcovering",
- "interiordesign"
- ],
- "fabric_fridays": [
- "fabricfridays",
- "fabric",
- "interiordesign"
- ],
- "ffepurchasing": [
- "ffepurchasing",
- "woven",
- "texture",
- "interiordesign"
- ],
- "grassclothwallpaper": [
- "grassclothwallpaper",
- "grasscloth",
- "interiordesign"
- ],
- "hollywoodwallcoverings": [
- "hollywoodwallcoverings",
- "hollywood",
- "glamour",
- "interiordesign"
- ],
- "hospitalitywallcoverings": [
- "hospitalitywallcoverings",
- "hospitality",
- "vinyl",
- "interiordesign"
- ],
- "interiordesignervideos": [
- "interiordesignervideos",
- "interior",
- "design",
- "interiordesign"
- ],
- "linenwallpaper": [
- "linenwallpaper",
- "linen",
- "interiordesign"
- ],
- "metallicwallpaper": [
- "metallicwallpaper",
- "metallic",
- "interiordesign"
- ],
- "patterndesignlab": [
- "patterndesignlab",
- "geometric",
- "pattern",
- "interiordesign"
- ],
- "philliperomanodesigns": [
- "philliperomanodesigns",
- "phillipe",
- "romano",
- "interiordesign"
- ],
- "restorationwallpaper": [
- "restorationwallpaper",
- "traditional",
- "damask",
- "interiordesign"
- ],
- "retrowalls": [
- "retrowalls",
- "retro",
- "century",
- "interiordesign"
- ],
- "roomsettings": [
- "roomsettings",
- "room",
- "setting",
- "interiordesign"
- ],
- "screenprintedwallpaper": [
- "screenprintedwallpaper",
- "screen",
- "printed",
- "interiordesign"
- ],
- "sheltermagazines": [
- "sheltermagazines",
- "editorial",
- "interior",
- "interiordesign"
- ],
- "suedewallpaper": [
- "suedewallpaper",
- "suede",
- "interiordesign"
- ],
- "textilewallpaper": [
- "textilewallpaper",
- "textile",
- "interiordesign"
- ],
- "thedesignerlibrary": [
- "thedesignerlibrary",
- "classic",
- "damask",
- "interiordesign"
- ],
- "thesetdecorator": [
- "thesetdecorator",
- "dramatic",
- "scenic",
- "interiordesign"
- ],
- "traditionalwhimsy": [
- "traditionalwhimsy",
- "traditional",
- "whimsical",
- "interiordesign"
- ],
- "velvetwallpaper": [
- "velvetwallpaper",
- "velvet",
- "interiordesign"
- ],
- "wallpaperhistory": [
- "wallpaperhistory",
- "vintage",
- "damask",
- "interiordesign"
- ],
- "wallpaperinstallers": [
- "wallpaperinstallers",
- "textured",
- "wallcovering",
- "interiordesign"
- ],
- "wallpaperwednesdays": [
- "wallpaperwednesdays",
- "designer",
- "wallcovering",
- "interiordesign"
- ]
-}
\ No newline at end of file
+ "asseeninhotels": ["hospitalitydesign", "hoteldesign", "hotelinteriors", "interiordesign"],
+ "beverlyhillsvideos": ["luxuryinteriors", "glamdecor", "metallicwallpaper", "interiordesign"],
+ "borninbeverlyhills": ["luxuryinteriors", "glaminterior", "beverlyhills", "interiordesign"],
+ "chinoiseriewallpaper": ["chinoiserie", "chinoiseriewallpaper", "handpaintedwallpaper", "interiordesign"],
+ "commercialwallcoverings": ["commercialdesign", "contractinteriors", "hospitalitydesign", "interiordesign"],
+ "customwallcoverings": ["wallmural", "custommural", "wallpaperdesign", "interiordesign"],
+ "designerlaboratory": ["geometricwallpaper", "modernwallpaper", "wallpaperdesign", "interiordesign"],
+ "designerwallcoverings": ["wallpaper", "wallcovering", "luxuryinteriors", "interiordesign"],
+ "fabric_fridays": ["fabricfriday", "fabrics", "textiledesign", "interiordesign"],
+ "ffepurchasing": ["ffe", "hospitalitydesign", "contractdesign", "interiordesign"],
+ "grassclothwallpaper": ["grasscloth", "grassclothwallpaper", "naturalwallcovering", "interiordesign"],
+ "hollywoodwallcoverings": ["hollywoodregency", "glamdecor", "luxurywallpaper", "interiordesign"],
+ "hospitalitywallcoverings": ["hospitalitydesign", "hoteldesign", "contractinteriors", "interiordesign"],
+ "interiordesignervideos": ["interiordesign", "interiordesigner", "designinspo", "homedecor"],
+ "linenwallpaper": ["linenwallpaper", "naturalwallcovering", "texturedwalls", "interiordesign"],
+ "metallicwallpaper": ["metallicwallpaper", "goldwallpaper", "luxurywallpaper", "interiordesign"],
+ "patterndesignlab": ["surfacedesign", "patterndesign", "textiledesign", "interiordesign"],
+ "philliperomanodesigns": ["luxurywallpaper", "corkwallpaper", "wallcovering", "interiordesign"],
+ "restorationwallpaper": ["traditionaldecor", "damaskwallpaper", "historichomes", "interiordesign"],
+ "retrowalls": ["retrowallpaper", "midcenturymodern", "vintagedecor", "interiordesign"],
+ "roomsettings": ["interiorstyling", "homedecor", "roomdecor", "interiordesign"],
+ "screenprintedwallpaper": ["screenprint", "handprintedwallpaper", "wallpaperdesign", "interiordesign"],
+ "sheltermagazines": ["designinspo", "interiorstyling", "homedecor", "interiordesign"],
+ "suedewallpaper": ["suede", "texturedwalls", "luxurywallpaper", "interiordesign"],
+ "textilewallpaper": ["textiledesign", "textiles", "texturedwalls", "interiordesign"],
+ "thedesignerlibrary": ["damaskwallpaper", "traditionaldecor", "classicinteriors", "interiordesign"],
+ "thesetdecorator": ["setdecor", "setdesign", "productiondesign", "interiordesign"],
+ "traditionalwhimsy": ["grandmillennial", "traditionaldecor", "whimsicaldecor", "interiordesign"],
+ "velvetwallpaper": ["velvet", "flockedwallpaper", "luxurywallpaper", "interiordesign"],
+ "wallpaperhistory": ["vintagewallpaper", "historicinteriors", "damaskwallpaper", "interiordesign"],
+ "wallpaperinstallers": ["wallpaperinstallation", "wallpaperinstaller", "wallpaperhanger", "interiordesign"],
+ "wallpaperwednesdays": ["wallpaperwednesday", "wallpaper", "wallcovering", "interiordesign"]
+}
← d165d00 IG reshare: fix robustness gap — track vendor list + hashtag
·
back to Norma Platform
·
chore: lint fixes (guard JSONL parses, __dirname paths, fix 039ad5d →