ScavioScavio
ProductoPreciosDocumentación
Iniciar sesionComenzar
  1. Inicio
  2. Tutoriales
  3. Cómo agregar filtros negativos a un canal de búsqueda B2B
Tutorial

Cómo agregar filtros negativos a un canal de búsqueda B2B

Filtre los clientes potenciales irrelevantes de su canal de búsqueda B2B mediante la concordancia negativa de palabras clave y la exclusión de dominio. Tutorial de Python con API Scavio.

Obtener clave API gratisDocumentacion API

Agregue filtros negativos a un canal de búsqueda B2B definiendo reglas de exclusión que eliminen resultados irrelevantes antes de que lleguen a su CRM o herramienta de divulgación. Sin filtrado negativo, los canales de búsqueda B2B producen entre un 30% y un 50% de ruido: bolsas de trabajo, agregadores de noticias, directorios y competidores obstruyen su lista de clientes potenciales. Este tutorial crea una capa de posprocesamiento que filtra los resultados de búsqueda por lista de bloqueo de dominios, exclusión de palabras clave y señales de contenido, garantizando que solo pasen clientes potenciales calificados.

Requisitos previos

  • Python 3.8+ instalado
  • solicita biblioteca instalada
  • Una clave API de Scavio de scavio.dev
  • Un canal de búsqueda B2B existente o una lista de clientes potenciales

Guia paso a paso

Paso 1: Defina sus reglas de filtro negativo

Configure listas de bloqueo para dominios, palabras clave y patrones de URL que indiquen resultados que no sean clientes potenciales.

Python
import os, requests

API_KEY = os.environ['SCAVIO_API_KEY']

BLOCKED_DOMAINS = {
    'linkedin.com', 'indeed.com', 'glassdoor.com', 'crunchbase.com',
    'wikipedia.org', 'reddit.com', 'youtube.com', 'medium.com',
    'g2.com', 'capterra.com',
}

NEGATIVE_KEYWORDS = [
    'job posting', 'careers', 'hiring', 'salary',
    'review site', 'comparison chart', 'free template',
]

BLOCKED_URL_PATTERNS = ['/careers', '/jobs', '/hiring', '/press-release']

Paso 2: Construya las funciones de filtro

Cree funciones de filtro que verifiquen cada resultado con reglas de dominio, palabra clave y patrón de URL.

Python
from urllib.parse import urlparse

def is_blocked_domain(url: str) -> bool:
    domain = urlparse(url).netloc.replace('www.', '')
    return any(blocked in domain for blocked in BLOCKED_DOMAINS)

def has_negative_keyword(title: str, snippet: str) -> bool:
    text = f'{title} {snippet}'.lower()
    return any(neg in text for neg in NEGATIVE_KEYWORDS)

def has_blocked_url_pattern(url: str) -> bool:
    path = urlparse(url).path.lower()
    return any(pattern in path for pattern in BLOCKED_URL_PATTERNS)

def is_valid_lead(result: dict) -> bool:
    url = result.get('link', '')
    title = result.get('title', '')
    snippet = result.get('snippet', '')
    if is_blocked_domain(url): return False
    if has_negative_keyword(title, snippet): return False
    if has_blocked_url_pattern(url): return False
    return True

Paso 3: Aplicar filtros a los resultados de búsqueda

Busque clientes potenciales B2B y aplique todos los filtros negativos, informando cuántos resultados se filtraron.

Python
def filtered_search(query: str) -> dict:
    resp = requests.post('https://api.scavio.dev/api/v1/search',
        headers={'x-api-key': API_KEY},
        json={'platform': 'google', 'query': query}, timeout=15)
    results = resp.json().get('organic_results', [])
    valid = [r for r in results if is_valid_lead(r)]
    filtered_count = len(results) - len(valid)
    return {
        'query': query,
        'total': len(results),
        'valid': len(valid),
        'filtered': filtered_count,
        'leads': [{'title': r['title'], 'url': r['link'], 'snippet': r.get('snippet', '')} for r in valid],
    }

result = filtered_search('martech companies series a 2026')
print(f"{result['valid']}/{result['total']} results passed filters")
for lead in result['leads'][:5]:
    print(f"  {lead['title']}")

Paso 4: Registrar resultados filtrados para ajustar reglas

Guarde los resultados filtrados por separado para que pueda revisarlos y ajustar sus reglas con el tiempo.

Python
def search_with_logging(query: str, log_file: str = 'filter_log.jsonl') -> dict:
    import json
    resp = requests.post('https://api.scavio.dev/api/v1/search',
        headers={'x-api-key': API_KEY},
        json={'platform': 'google', 'query': query}, timeout=15)
    results = resp.json().get('organic_results', [])
    valid, rejected = [], []
    for r in results:
        if is_valid_lead(r):
            valid.append(r)
        else:
            reason = 'domain' if is_blocked_domain(r.get('link', '')) else 'keyword' if has_negative_keyword(r.get('title', ''), r.get('snippet', '')) else 'url_pattern'
            rejected.append({'title': r.get('title', ''), 'url': r.get('link', ''), 'reason': reason})
    with open(log_file, 'a') as f:
        f.write(json.dumps({'query': query, 'rejected': rejected}) + '\n')
    print(f'{query}: {len(valid)} valid, {len(rejected)} rejected')
    return {'leads': valid, 'rejected': rejected}

search_with_logging('fintech startups hiring engineers 2026')

Ejemplo en Python

Python
import requests, os
from urllib.parse import urlparse
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}
BLOCKED = {'linkedin.com', 'indeed.com', 'glassdoor.com', 'wikipedia.org'}

def filtered_search(query):
    data = requests.post('https://api.scavio.dev/api/v1/search', headers=H,
        json={'platform': 'google', 'query': query}).json()
    results = data.get('organic_results', [])
    valid = [r for r in results if not any(b in urlparse(r.get('link', '')).netloc for b in BLOCKED)]
    print(f'{len(valid)}/{len(results)} passed filters')
    return valid

filtered_search('martech companies series a 2026')

Ejemplo en JavaScript

JavaScript
const H = {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'};
const BLOCKED = ['linkedin.com', 'indeed.com', 'glassdoor.com'];
async function filteredSearch(query) {
  const r = await fetch('https://api.scavio.dev/api/v1/search', {
    method: 'POST', headers: H, body: JSON.stringify({platform: 'google', query})
  });
  const results = (await r.json()).organic_results || [];
  const valid = results.filter(r => !BLOCKED.some(b => r.link?.includes(b)));
  console.log(`${valid.length}/${results.length} passed filters`);
  return valid;
}
filteredSearch('martech companies series a 2026');

Salida esperada

JSON
A filtered B2B search pipeline that removes noise results by domain blocklist, negative keywords, and URL patterns, with logging for rule tuning.

Tutoriales relacionados

  • Cómo validar una idea de MicroSaaS con señales de búsqueda negativas
  • Cómo construir un canal de prospección de agencias

Preguntas frecuentes

La mayoria de los desarrolladores completan este tutorial en 15 a 30 minutos. Necesitaras una clave API de Scavio (el plan gratuito funciona) y un entorno de Python o JavaScript.

Python 3.8+ instalado. solicita biblioteca instalada. Una clave API de Scavio de scavio.dev. Un canal de búsqueda B2B existente o una lista de clientes potenciales. Una clave API de Scavio te da 50 creditos gratuitos al registrarte.

Si. El plan gratuito incluye 50 creditos al registrarte, mas que suficiente para completar este tutorial y crear un prototipo funcional.

Scavio tiene un paquete nativo de LangChain (langchain-scavio), un servidor MCP y una API REST simple que funciona con cualquier cliente HTTP. Este tutorial usa the raw REST API, pero puedes adaptarlo al framework que prefieras.

Recursos relacionados

Best Of

Las mejores API de enriquecimiento B2B en mayo de 2026

Read more
Best Of

Las mejores API de búsqueda después de los cambios en el modo AI de Google I/O 2026

Read more
Glossary

Panorama de proveedores de API de búsqueda (2026)

Read more
Comparison

Apollo vs API-First Enrichment (Scavio, Exa, search APIs)

Read more
Glossary

Comparación gratuita de niveles de API de búsqueda

Read more
Comparison

Search APIs (Scavio, Tavily, SerpAPI) vs Headless Browser (Playwright, Puppeteer, Browserbase)

Read more

Empieza a construir

Filtre los clientes potenciales irrelevantes de su canal de búsqueda B2B mediante la concordancia negativa de palabras clave y la exclusión de dominio. Tutorial de Python con API Scavio.

Obtener clave API gratuitaLeer la documentacion
ScavioScavio

API de busqueda en tiempo real para agentes de IA. Busca en todas las plataformas, no solo en Google.

Producto

  • Funciones
  • Precios
  • Panel
  • Afiliados

Desarrolladores

  • Documentacion
  • Referencia de API
  • Inicio rapido
  • Integracion MCP
  • Python SDK

Alternativas

  • Alternativa a Tavily
  • Alternativa a SerpAPI
  • Alternativa a Firecrawl
  • Alternativa a Exa

Herramientas

  • Formateador JSON
  • cURL a codigo
  • Contador de tokens
  • Todas las herramientas

© 2026 Scavio. Todos los derechos reservados.

Featured on TAAFT
Terminos de servicioPolitica de privacidad