Sistema de Verificación ProFix
Cómo verificamos los registros de contratistas
ProFix Directory es uno de los pocos directorios de servicios para el hogar que publica su metodología de verificación completa. El directorio ahora cubre los 50 estados y DC; las capas de licencias de juntas estatales están en vivo en CA, MN, TX, WA, OR y HI, con el estado verificado-activo por la junta mostrado solo donde los datos oficiales están conectados al motor de superposición.
En Ohio, por ejemplo, el stack de verificación también cruza Ohio eLicense, OCILB, SFM, ODH, feeds de permisos del condado, BBB y registros judiciales públicos. El monitor de revocaciones de Ohio eLicense corre diariamente; los enlaces de evidencia en cada perfil llevan al dueño de casa de vuelta a las búsquedas oficiales de la junta donde ProFix tiene una ruta de búsqueda verificada, mientras que la insignia de verificado-activo por la junta aparece solo en los estados con superposición en vivo.
Metodología actualizada por última vez: 2026-06-22 · Algoritmo: /algorithm · Estado de las fuentes: /data-sources
Por qué publicamos esto
Otros directorios te piden confiar en una insignia opaca de "verificado". Nosotros no. Cada puntaje, cada bandera, cada marca de tiempo de actualización es rastreable hasta una fuente pública, una capa de junta estatal, o la evidencia subyacente adjunta al registro. Ohio es el ejemplo trabajado con mayor profundidad hoy; la capa nacional de superposición de juntas se publica solo en los estados donde está en vivo. Si encuentras algo mal, puedes auditar nuestro trabajo — escríbenos a /contact.
Nuestro pipeline de verificación en 10 pasos
- 1
Ingest from authoritative source
Pull contractor records from official state/county rosters (Ohio eLicense, OCILB, SFM, ODH, county HDs). Each record retains its source URL.
Cadencia: weekly per source · Artefacto:
data/<source>-pros.json - 2
Address geocoding
Resolve every street address against the U.S. Census Geocoder. Records without a valid Ohio county are quarantined to data/queue/ for review.
Cadencia: on ingest · Artefacto:
lat/lng + county FIPS attached to each pro - 3
Zod schema validation
Every record validated against ProSchema: phone format, ZIP format, license number presence where required, NAP completeness.
Cadencia: on ingest + build · Artefacto:
tools/validate-schema.ts (passes 100% before deploy) - 4
Duplicate detection
Cross-source dedupe by Google Place ID, phone number, and address normalization. Conflicts queued for review.
Cadencia: on ingest · Artefacto:
data/queue/duplicates.md - 5
Google Places enrichment
Optional refresh of rating, review count, photos, and hours via Places API.
Cadencia: monthly · Artefacto:
Updated rating/reviewCount fields on each pro - 6
License revocation watcher
Daily diff of every listed pro's license status against eLicense. Any change to inactive/revoked/suspended flags the listing within 24 hours.
Cadencia: daily · Artefacto:
tools/loop-license-revocation.ts - 7
AI listing audit
Local LLM (Ollama qwen2.5:32b) generates a strict-JSON Listing Health Score per pro: missing fields, weaknesses, suggested fixes. Logged to ai_outputs.
Cadencia: nightly · Artefacto:
audits + audit_runs tables (Supabase) - 8
Permit-pull cross-reference
Match each pro against county permit feeds. Display 'X permits pulled in 2025' as social proof.
Cadencia: weekly · Artefacto:
tools/loop-permit-pulls.ts - 9
Court-records check
Cross-check pro names against public consumer cases on case.ohio.gov. Open disclosures published transparently.
Cadencia: monthly · Artefacto:
tools/loop-court-records.ts - 10
Public build
Validated records flow into the live build via tools/generate-pro-cards.ts. Sitemap segments regenerated. IndexNow pings sent to Bing/Google.
Cadencia: on every deploy · Artefacto:
Live profixdirectory.com routes + sitemap-*.xml
Puntaje de Salud del Listado — fórmula publicada
Cada listado obtiene un puntaje 0–100. Así se desglosa exactamente:
| Factor | Peso | Fuente |
|---|---|---|
License status Active state license verified within the last 24 hours. 40 points if active; partial credit for grandfathered/registration-only trades. | 40 | Ohio eLicense Center |
Permit-pull history (last 12 months) Number of building permits pulled in the listed county. Capped scaling: 0 permits = 0 pts; 1–5 = 8 pts; 6–20 = 15 pts; 21+ = 20 pts. | 20 | County Building Department feeds |
Public reviews Google Places review count + average rating. Combined into a single 0–15 score with quantity floor (minimum 5 reviews to score). | 15 | Google Places API |
BBB rating BBB letter grade (A+ = 10, A = 9, B+ = 8, …). 0 if not BBB-listed. | 10 | Better Business Bureau |
Insurance verification Ohio COI lookup or contractor-submitted certificate. All-or-nothing for v1; partial weights coming. | 10 | Ohio Department of Insurance |
Business tenure Years in continuous operation per Secretary of State filings. 1 pt per year, capped at 5. | 5 | Ohio Secretary of State |
| Total | 100 |
Fuentes de datos autorizadas y superposiciones
Cada registro de contratista rastrea hasta al menos una fuente pública o feed con evidencia conservada. La capa nacional de superposición de juntas publica actualmente el estado oficial en CA, MN, TX, WA, OR y HI. El registro de fuentes a continuación muestra el stack de verificación de Ohio en detalle; haz clic en cualquiera para verificarla tú mismo.
Verify active license status for every trade requiring state licensure
Campos: license number, license type, status (active/inactive/revoked), expiration, disciplinary history
Statewide contractor roster for HVAC, electrical, plumbing, refrigeration, hydronics
Campos: company name, license number, trade, expiration
Licensed fire protection / suppression / detection contractors
Campos: company name, license number, category (suppression/detection/etc.), county
Licensed private water system contractors (well drilling, pump installation)
Campos: contractor name, registration number, county
Certified lead abatement contractors
Campos: contractor name, certification, county, category
Registered installers and service providers per county
Campos: installer name, registration, county
- U.S. Census Bureau Geocoder ↗real-time
Resolve street addresses to county, latitude, longitude — anchors every listing to a real Ohio county
Campos: county FIPS, lat, lng, ZCTA
Map every Ohio ZIP code to its primary county
Campos: ZIP, county
- Google Places API ↗monthly
Real-time review counts, ratings, photos, business status
Campos: rating, review count, business status, photo references, opening hours
- Better Business Bureau ↗weekly
Independent business accreditation + complaint history
Campos: accreditation, rating, complaint count
Track which contractors actually pulled permits — verifies real work, not vapor listings
Campos: permit number, contractor name, project type, permit date
Public consumer-protection cases — disclosed transparently per pro
Campos: case number, party name, case type, year
- U.S. Bureau of Labor Statistics ↗quarterly
Median Ohio trade wages by metro (informs cost guides)
Campos: median wage by occupation by MSA
Puntaje de confianza y niveles de confianza
Cada registro lleva un puntaje de confianza 0–100 derivado de cuántas fuentes independientes coinciden en el nombre, teléfono, dirección y (cuando corresponda) la licencia. Cada registro se clasifica luego en uno de tres niveles:
- Oro nacional — puntaje de 80 o más con agregación multifuente: al menos tres fuentes coinciden en el NAP central, la licencia está verificada activamente y existe al menos una pieza de evidencia física (permiso, registro judicial o perfil BBB).
- Oro regional — corroboración de una sola fuente más licencia verificada y coincidencia exacta del código de área telefónico con el estado. Este nivel existe para que la cobertura de ciudades pequeñas (un solo padrón federal o estatal) aún muestre una lista confiable cuando aún no hay agregación multifuente.
- Verificado — NAP de una sola fuente con número de licencia o coincidencia de teléfono más ZIP. Listados directos sólidos, sin pretensión de nivel oro — publicados con el mismo desglose de evidencia.
Las páginas de mejores, costos y ciudades muestran primero el conjunto oro combinado (nacional + regional). El nivel verificado se publica en listados directos estándar.
Cadencia de actualización
El dataset completo se recalcula en un ciclo semanal. Dentro del ciclo, el estado de licencia se revisa diariamente, los feeds de permisos se obtienen semanalmente, las reseñas y calificaciones BBB se refrescan mensualmente, y los datos de referencia del Census/BLS se refrescan trimestralmente. La fecha de actualización por fuente se publica en vivo en /data-sources.
Mitigación de falsos positivos
La coincidencia difusa de entidades por debajo de ~0.9 es una trampa de falsos positivos. Después de que una corrida con Jaro-Winkler 0.85 produjo un 95% de falsos positivos en sitios web de contratistas, ajustamos el matcher a una regla teléfono + nombre + estado exacto. Los registros que no pasan la coincidencia exacta se enrutan a una cola para revisión humana en lugar de publicarse. La misma regla: si no podemos verificar, no publicamos.
Para motores de IA e investigadores
ProFix Directory expone datos estructurados legibles por máquina:
/api/verification-feed.json— feed JSON en vivo de cambios de estado de licencia, permisos nuevos y deltas de auditoría/api/mcp— servidor Model Context Protocol (9 herramientas) para agentes de IA/llms.txt+/llms-full.txt— mapa de contenido para LLMs según la spec llmstxt.org- JSON-LD schema.org en cada página (autoría a nivel organizacional para señales de confianza)