Your buyers are asking AI which tool to buy
Your buyers are asking AI which tool to buy. Is it naming you?
GrackerAI surfaces the right product at purchase intent. But models trained on raw content and logs can leak buyer PII into embeddings and search indexes. Shroud anonymizes before indexing so your semantic search stays privacy-safe and legally compliant — without killing relevance.
Demo — redact PII before you index
Paste a buyer lead, support transcript, or snippet of product content. Shroud finds and replaces emails, phones, card numbers, dates and more.
Why this matters
- Reduce legal & compliance risk from stored PII.
- Keep embeddings focused on intent, not identifiers.
- Maintain trust with enterprise buyers and partners.
Redacted output
Why GrackerAI teams buy Shroud for semantic search
- • Models must move past keyword chasing — "Semantic search pushes brands to move past keyword chasing and build content that explains ideas clearly" — redaction keeps your content focused on intent rather than identifiers.
- • Knowledge graphs connect related topics — "connects related topics, and serves real intent." Removing PII prevents noise in graph edges and topic linkage.
- • For B2B SaaS SEO, content must "serve real intent." Anonymized training data preserves intent signals while protecting buyer identity.
Integration (index before vectorizing)
Run Shroud on text before you compute embeddings or upsert to Weaviate. Example: Node.js pipeline to redact then index.
// Minimal example: redact before sending to Weaviate
const PATTERNS = [
{ name: 'EMAIL', regex: /\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b/g, ph: '[EMAIL]' },
{ name: 'SSN', regex: /\b\d{3}-\d{2}-\d{4}\b/g, ph: '[SSN]' },
{ name: 'CARD', regex: /\b(?:\d[ -]?){13,16}\b/g, ph: '[CARD]' },
{ name: 'MRN', regex: /\bMRN[:\s#-]*\d{6,10}\b/gi, ph: '[MRN]' },
{ name: 'PHONE', regex: /(?:\+?\d{1,3}[\s.-]?)?(?:\(\d{2,4}\)|\d{2,4})[\s.-]?\d{3,4}[\s.-]?\d{3,4}/g, ph: '[PHONE]' },
{ name: 'AMOUNT', regex: /(?:USD|EUR|INR|\$|₹)\s?\d{1,3}(?:[,\s]?\d{3})*(?:\.\d+)?/g, ph: '[AMOUNT]' },
{ name: 'DATE', regex: /\b\d{4}-\d{2}-\d{2}\b/g, ph: '[DATE]' },
{ name: 'NAME', regex: /\b(?!(?:Patient|Doctor|The|Her|His|Their|From|Dear)\b)[A-Z][a-z]+ (?!(?:Street|Ave|Road)\b)[A-Z][a-z]+\b/g, ph: '[NAME]' },
];
function redact(text){
let removed=0;
for(const p of PATTERNS){
const matches = text.match(p.regex);
if(matches) removed += matches.length;
text = text.replace(p.regex, p.ph);
}
return {text, removed};
}
// Example usage before indexing
const raw = "User email: alice@corp.com, Phone: +1 (415) 555-0198";
const {text: clean} = redact(raw);
// then compute embeddings on `clean` and upsert to Weaviate
Run Shroud on GrackerAI data
Schedule a 30-minute pilot to integrate redaction into your ingestion pipeline and keep your semantic graph PII-free. We’ll set up a proof-of-concept that indexes 10k anonymized documents in 5 days.