Project Overview and Business Context
The client was a residential letting agency managing 600 properties across three cities. Their screening process was slow (average 8 working days from application to decision) and inconsistent (different negotiators applied different informal standards). They were also facing increasing regulatory scrutiny around fair and consistent tenant selection following the Renters (Reform) Bill debates, which heightened awareness of discrimination risk in informal screening processes. The brief was to build a digital screening tool that standardises the data collection process, applies consistent assessment criteria across all applicants, produces a documented risk report for every decision, and reduces the decision timeline to under 48 hours. Open Banking was the key enabler for affordability assessment. Rather than relying on payslips (which can be forged) or employer references (which are slow), Open Banking gives the letting agent direct access to 12 months of the applicant's bank transaction data, with the applicant's explicit consent, allowing income verification, regular outgoing analysis, and affordability calculation against the property rent. GDPR obligations for the processing of financial data under Open Banking consent, and the prohibition on automated decision-making with significant legal effects under Article 22, shaped the product design significantly: the tool produces a risk report for agent review rather than making an automated accept/reject decision.
Technical Architecture and Stack Decisions
The application is a Next.js frontend with Supabase handling authentication, data storage, and file management. The tenant-facing flow uses Open Banking API (TrueLayer in this build) to initiate a consent flow, collect 12 months of transaction data with applicant consent, and return structured transaction categories (income, rent/mortgage payments, utilities, subscriptions, discretionary spending) to the backend. Transaction data is processed server-side by a FastAPI Python service that calculates key affordability metrics: average monthly net income, income consistency score, rent-to-income ratio, and a financial stress indicator based on declined payments and overdraft usage. Reference documents (employment contracts, previous landlord references, identity documents) are uploaded to Supabase Storage and processed by Claude for key information extraction: employment status, income stated in contract, employment start date, reference sentiment, and any flags in the reference text. Claude's analysis of each document returns a structured JSON object with extracted fields and a confidence rating for each extraction. The risk assessment report is generated by Claude combining the Open Banking affordability metrics with the document analysis: a five-factor risk score (affordability, income stability, rental history, reference quality, identity verification), a plain-English narrative for each factor, and an overall risk classification (low, medium, high). The letting agent reviews the report in the Next.js dashboard and records their decision with a documented reason. Supabase logs every report, agent decision, and applicant consent record for GDPR audit purposes.
Key AI and ML Components
Anthropic Claude handles two distinct tasks in this system. Document analysis: given an uploaded reference document (image or PDF, processed through AWS Textract or Claude's vision capability), extract specified fields and flag any inconsistencies. Employment contracts are checked for stated salary, start date, employment type (permanent/fixed-term), and any probationary period clauses. Previous landlord references are analysed for sentiment, any explicitly negative statements, and any unusual hedging language that might indicate a guarded reference. Identity documents are checked for visible consistency only. Claude returns structured JSON for each document, making the extracted data machine-readable for the risk scoring layer. Risk narrative generation: Claude receives the complete applicant data (Open Banking metrics, document extraction results, property rent amount) and generates a structured narrative report in the format a senior letting agent would write. The system prompt was developed with input from the client's head negotiator, encoding their assessment criteria in structured form. The risk score weighting is configured by the client team and documented in the system as an auditable decision policy, addressing concerns about consistency and potential discrimination under the Equality Act 2010.
Challenges Solved and How
GDPR Article 22 compliance was the primary design constraint. Article 22 restricts solely automated decisions that have legal effects on individuals. Accepting or rejecting a tenancy application has significant effects on the applicant. The system is explicitly designed to produce a risk report for a human letting agent to review and decide, not to make an autonomous accept/reject decision. The UI reflects this: there is no automated outcome, only a report and a documented agent decision field. Open Banking data handling requires explicit consent and strict data minimisation. The applicant consent flow presents clear information about what data will be accessed, for what purpose, and for how long it will be retained. Transaction data is processed for affordability metrics and then deleted from the application database, with only the derived metrics (not raw transactions) retained in the risk report. This minimises the data retention footprint while preserving the audit record. Document forgery detection is out of scope for an AI MVP: Claude can analyse document content but cannot authenticate physical security features. The system includes a disclaimer that document authentication is the agent's responsibility and that the AI analysis should be treated as an efficiency tool, not a fraud detection system.
Outcome and Measurable Results
The agency deployed the tool across all three offices with all 18 negotiators. Average screening decision time fell from 8 working days to 1.8 working days. Negotiator feedback indicated that the Open Banking affordability data was the single most valued feature: income verification that previously took 3-5 days of reference chasing was available in under 10 minutes with applicant consent. Risk report consistency improved significantly: the compliance director reviewed a sample of 50 decisions made through the tool and found consistent application of the assessment criteria compared to highly variable informal assessments under the previous process. The agency's legal advisor noted that the documented risk reports provided a defensible audit trail for any applicant dispute about a tenancy decision. Four applicants in the first quarter raised questions about rejected applications, and all four were resolved using the documented risk report evidence without escalation.
Lessons for Similar Projects
Design the consent flow for tenant trust, not just data collection. Applicants who understand what Open Banking access involves and why it benefits them (faster decisions, less paperwork) consent at much higher rates than those who encounter an unexplained bank connection request. Invest in the consent UI. Separate the AI report from the human decision clearly in the interface. If agents feel the tool is making the decision for them, they disengage and rubber-stamp rather than genuinely reviewing. If they feel it is giving them better information to make their own decision, they use it actively. Document your assessment criteria as an explicit decision policy before building the AI layer. The criteria that Claude applies to generate risk scores should be reviewed by the client's compliance advisor, particularly for anything that could create indirect discrimination under the Equality Act. Address Article 22 explicitly in your GDPR data processing records. The fact that a human makes the final decision is what keeps the tool compliant, and that fact needs to be documented clearly in your DPIA.