BankIslami, delivered with Aawaz AI · Banking / Compliance
An internal web and mobile platform that reads the news every morning and turns it into a risk report for the bank’s compliance team.
Category
Mobile
Year
2025
Capabilities
Mobile, Full-Stack, AI, Cloud & Automation
Industry
Banking / Compliance


The problem
Regulators expect banks to keep screening politically exposed persons for as long as the relationship lasts. The compliance team did this by hand: a morning spent across news sites, court lists and gazettes, searching for over a thousand names, then pasting findings into a spreadsheet. Stories were missed, the report landed late, and nobody could show an auditor how a name had been checked.
Our approach
We started with the sources, not the interface: a scheduled crawler that fetches every relevant Pakistani and international outlet at 06:00, normalises the articles and stores them in MongoDB. A matching engine scores each article against the bank’s PEP list using name variants, roles and locations, and only credible matches reach an analyst. The review queue, risk profiles and the generated report were then built once as a component library and shipped to the browser and to iOS and Android.
Inside the product
More than one screen.
3 more screens from BankIslami PEP Screening, captured at device size.

Review queue
Client record and article side by side, so a name match is confirmed or dismissed in seconds.

Daily risk report
The morning’s findings as a signed PDF, with score movement and delivery to Compliance and Risk.

Sources
Every news feed, regulator and court list the crawler reads, with last-run health.
How it is built
Architecture
A MERN stack: React with Vite and Tailwind for the analyst dashboard, React Native for the mobile app, and one Express API over MongoDB serving both. A BullMQ worker on Redis runs the crawl at 06:00, fetching sources with Puppeteer where pages are rendered client-side and Cheerio where they are not. Matching is a scoring pipeline over name variants, transliterations, role and city, with a confidence threshold that routes matches to the review queue. Confirmed findings roll into a PDF report generated server-side and delivered by email and push notification.
Key features
Challenges & solutions
Challenge
Names in Urdu and English transliterate many ways, so a strict match missed real stories and a loose one buried analysts in false positives.
Solution
A scoring pipeline weighs name variants against role, city and known associates, and every match above the threshold shows the analyst exactly which fields agreed.
Challenge
News sites change their markup without notice, and one silent failure meant a source was missing from the morning report.
Solution
Each source has a health check and an article-count baseline; a crawl that returns far fewer than usual retries and flags the feed as delayed on the dashboard instead of passing quietly.
Challenge
The bank needed the same screening on phones for officers who are rarely at a desk, without maintaining two products.
Solution
Screens were designed once as a shared component set and served by one API, so the web dashboard and the React Native app always show the same data and the same decisions.
Results
What shipping it changed.
The compliance team now starts the day with a finished report instead of a morning of searching. Every relevant outlet is read before anyone arrives, only credible matches reach an analyst, and every decision on a name is recorded well enough to show an auditor.
“They understood that compliance is about being able to show your reasoning, and built the product that way from the first sprint. Clear updates, honest estimates, and nothing shipped that they could not explain to an auditor.”
38
sources screened before the team arrives
Roughly 200 articles a day are crawled, normalised and matched against the PEP list from 06:00.
30 min
of morning triage, down from four hours
Analysts confirm or dismiss scored matches with the client record and article side by side, instead of searching by hand.
07:30
daily risk report delivered
Where it used to land mid-afternoon, now with a full audit trail per name and delivery to Compliance and Risk.
1,240
accounts monitored continuously
PEP and related-party accounts screened every day across web and mobile.
Stack
Web app
- React
- Vite
- TypeScript
Mobile app
- React Native
- Expo
Styling
- TailwindCSS
Backend
- Node.js
- Express
- MongoDB
Crawling
- Puppeteer
- Cheerio
Jobs
- BullMQ
- Redis
Auth & reports
- JWT
- PDFKit
Let's talk
We can usually tell within one call whether the approach above transfers to your problem, and what would need to change.