Construction Lead Scoring System
Publicada el 2026-07-15
Descripción de la oferta
Brief A: Construction Lead Intake, Scoring & Classification Engine Job title: Build a Construction Lead Intake & Scoring System (CSV → API) Project type: Backend + simple admin settings panel Timeline: 3–4 weeks Engagement: Fixed-price or hourly Overview We are a flooring company that receives regular CSV dumps of new construction proposals (building permits). We need a backend system that ingests these files, cleans the data, enriches it (geocoding, classification), calculates a 0–100 lead score, and exposes everything via a clean REST API. This will serve as the “brain” that feeds our mapping/routing tool (being built separately). Core features CSV intake & standardisation Accept CSV uploads (manual via web UI or watched folder script). Map columns: BP ID, Issue Date, Owner name/address/city & postal code/phone/email, Project Address, Project Details, Project Amount, Contractor name/address/city & postal code/phone/email, Project Type (category list provided). Clean/normalise phone numbers and addresses. Geocode all addresses using Google Geocoding API and store lat/lon. Handle missing fields gracefully. Automatic lead classification No phone number (neither owner nor contractor) → status = “Visit In-Person”. Contractor name contains keywords (excavating, engineers, consultants, associates, architects, design, etc.) → status = “Acquire Number” (i.e., need to obtain the builder/owner’s phone). Has a usable phone number → status = “Calling Queue”. Admin must be able to later mark certain owner types (e.g., “designers”) as “Unfit” (low conversion) and optionally move them to a different bucket. Lead scoring engine (0–100) Configurable weighted sum model. Default factors: Proposal timing (how close Issue Date is to a manually set “ideal window” in months) Regional historical conversion rate (computed from past outcomes) Project value (log‑normalised) Project type suitability (per‑category conversion history) Data completeness (has phone + email) Admin panel to adjust weights and the ideal timing window. Score is calculated for every lead and stored. Admin settings UI (simple web pages) Login for one admin. Upload CSV, view recent batches. Adjust lead scoring weights. Manage keyword list for subcontractor detection. Mark owner types as “unfit”. Manual score overrides per lead (optional). REST API for the mapping system GET /leads – returns paginated list of active leads (all non‑visited) with scores, statuses, full details, lat/lon. POST /outcomes – receives visit outcomes from the rep’s software/mapping tool (e.g. “measurement booked”, “no interest”). Lead is then marked as visited and excluded from future queries. Simple auth (API key or token). Technical specs Backend: Python (Flask/FastAPI) or Node.js – whichever you’re faster with. Database: PostgreSQL (PostGIS extension not mandatory for this piece, but should be compatible). Deployment: Provide a Docker container or clear instructions to run on a cloud VM. Code quality: Environment variables for secrets, clear README, minimal test coverage. Deliverables Fully working backend with admin UI (can be minimal, functional). API documentation (OpenAPI/Swagger or simple markdown). Sample CSV and test outcomes that prove the scoring and API flow. Setup guide. Skills needed Backend development, experience with CSV ETL pipelines. Google Geocoding API. Basic scoring logic implementation. Creating clean APIs. (Plus) Experience with lead scoring or construction data. Budget & Timeline Timeline: 3–4 weeks.
Skills
Fuente original: freelancer