🔍 DebtSifter

Unsecured debt screening & bracket routing for debt resettlement
v1.8.0

Lead Ingestion

POST /api/leads/ingest/automatic
Ingest lead with TruVision soft pull report text. Parses tradelines, calculates unsecured debt, assigns bracket.
POST /api/leads/ingest/gma
Ingest lead with GMA 700 Credit soft pull data. Accepts structured tradelines or raw report text.
POST /api/leads/ingest/crif
Ingest lead with CRIF 700 Credit TransUnion hard pull. Accepts raw TruVision text (report_text) or structured tradelines.

Enrichment (Aged Data)

POST /api/enrich
Enrich a lead with fresh OffersIQ ECM attributes. For aged leads with stale/missing credit data. Pass lead_id + ecm_data, or ecm_data alone for dry run.

Lead Management

GET /api/leads
List leads. Filter by source, bracket, status. Paginated.
GET /api/leads/:id
Full lead detail including parsed tradelines.

Bracket Configuration

GET /api/brackets
List all brackets with thresholds and revenue splits.
PUT /api/brackets/:id
Update bracket thresholds, splits, routing, and active status.
POST /api/brackets
Create new bracket.
BracketRangeSplitStatus
Under $5K$0 – $4,999Track Only
Bracket 1$5K – $10KConfigurableRoute
Bracket 2$10K – $15KConfigurableRoute
Mid Range$15K – $28KConfigurableRoute
Bracket 3$28K+70/30Route ★

Payouts & Reconciliation

GET /api/payouts
List all payout records.
POST /api/payouts/generate
Generate payout report for a date range. Returns bracket breakdown.
GET /api/payouts/schedule
View payout schedule (bi-weekly or monthly).
PUT /api/payouts/schedule/:id
Update payout frequency (biweekly/monthly).

🤖 CRIF Scraper

POST /api/scraper/run
Trigger a manual scraper run. Logs into CRIF SelectLink, scrapes declined deals, fetches credit reports, parses and qualifies leads. Add ?wait=true to wait for completion.
GET /api/scraper/status
Current scraper status: running/idle, last run info, totals, schedule.
GET /api/scraper/runs
List past scraper runs with stats (deals found, qualified, errors).
GET /api/scraper/deals
List scraped deals. Filter: ?qualified=true/false. Paginated.
GET /api/scraper/stats
Aggregate scraper stats: qualification rates, bracket breakdown, avg debt/score.
POST /api/scraper/deals/:appId/reprocess
Re-fetch and re-parse a specific deal's credit report.

Schedule: 3x daily — 7 AM, 12 PM, 6 PM ET | Source: CRIF SelectLink (Anchored Finance)

💰 Run Economics

GET /api/admin/costs
Aggregate cost summary: total report costs, compute costs, cost per qualified lead.
PATCH /api/admin/costs/config
Update cost configuration (report_cost_cents, compute_rate_cents_hr).
GET /api/admin/costs/runs
Per-run cost breakdown with report costs, compute costs, and cost per qualified lead.
POST /api/admin/costs/recalculate
Recalculate costs for all completed runs based on current config.

Dashboard & Testing

GET /api/dashboard/stats
Aggregate stats: total leads, routing rate, bracket distribution, avg debt.
GET /dashboard
Admin dashboard UI (login required).
POST /api/test/parse-sample
Parse a TruVision report and return all extracted tradelines + bracket assignment without saving.