Inspiration

Millions of people are "credit invisible" or have a thin file—especially students, immigrants, gig workers, and anyone who has been denied and is trying to rebuild. Traditional credit scores often ignore the most consistent signals people do have: rent, utility payments, and real income patterns.

We built Credify to make those everyday signals legible in minutes—turning a messy money story into a clear readiness score and a practical, step-by-step path to eligibility.

What it does

Credify is an alternative financial reliability signal platform that:

  • Guides a user through a 4-minute assessment (situation → profile → data → score).
  • Lets users connect or import financial signals for the last ~90 days:
    • Rent payment history
    • Income deposits
    • Utility payments
    • via Plaid, Stripe, PayPal, or CSV upload (with a demo mode fallback).
  • Computes an Access Score (0–100) and breaks it down into four weighted factors:
    • Rent Consistency (35%)
    • Income Stability (30%)
    • Spending Ratio (20%)
    • Savings Behavior (15%)
  • Generates a plain-language AI explanation (with a safe fallback if AI keys aren’t configured) and exactly 3 next actions.
  • Produces a 90-day action plan and a progress dashboard with projected improvements.
  • Optionally saves score history to Supabase if a user is logged in and Supabase env vars are configured.

How we built it

  • Frontend / App: Next.js 14 (App Router) + React + TypeScript
  • UI: Tailwind CSS + Framer Motion for animation and polish
  • Data ingestion:
    • Plaid Link (react-plaid-link) for bank connectivity
    • Stripe Connect OAuth flow for Stripe-based transaction access
    • PayPal OAuth + CSV parsing fallback for PayPal exports
    • A demo generator so the flow works even without API keys
  • Normalization layer: normalized transactions are mapped into a consistent internal model (rent / utilities / income / expenses).
  • Scoring engine: a transparent scoring function converts the normalized data + profile into the Access Score and factor breakdown.
  • AI analysis: a Next.js API route calls the OpenAI API to return strict JSON (explanation, actions, confidence). If no key is present or parsing fails, we return a deterministic fallback response.
  • State & privacy-first demo: the assessment state is stored in localStorage so the demo can run end-to-end without storing credentials.
  • Persistence (optional): if Supabase is configured, authenticated users can persist results to a score_history table.

Challenges we ran into

  • Designing a scoring model that’s simple and explainable, but still feels representative of real-world risk signals.
  • Normalizing data from different providers into one schema (and handling missing/partial signals).
  • Making the AI output reliable: enforcing strict JSON schema, handling model edge cases, and providing a robust fallback.
  • Keeping the experience smooth even when integrations aren’t configured—so demo users can still complete the flow.

Accomplishments that we're proud of

  • A complete end-to-end flow that produces a score, explanation, and plan in a few minutes.

Built With

Share this project:

Updates