BankIslami, delivered with Aawaz AI · Banking / Compliance
An internal web and mobile platform that reads the news every morning, scores it against the bank’s PEP list and turns it into a risk report.
Category
Mobile
Year
2025
Industry
Banking / Compliance
Optimization
Right tool for the task


How it is optimized
Right tool for the task
A scoring pipeline reads the news. Analysts see only credible matches.
Matching is a scoring pipeline over name variants, transliterations, role and city. Only matches above a confidence threshold reach the review queue, each showing exactly which fields agreed, so analysts spend their time on decisions. Morning triage fell from four hours to 30 minutes.
What keeps it lean
- 01Scheduled crawl before the team arrives
- 02Confidence threshold before human review
- 03Every match shows why it matched
Rules and ordinary software before AI. A model only where it earns its place.
The challenge
Regulators expect banks to keep screening politically exposed persons for as long as the relationship lasts. BankIslami’s compliance team did this by hand: a morning 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 mid-afternoon, and nobody could show an auditor how a name had been checked. Screening needed to be complete, early and provable.
The work
With Aawaz AI 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. A scoring pipeline matches each article against the bank’s PEP list on name variants, transliterations, role and city, and only matches above a confidence threshold reach an analyst, each showing which fields agreed. The review queue, risk profiles and signed daily report were built once as a component set 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.
The impact
What became easier, better or more effective.
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, analysts spend their time deciding rather than hunting, and every decision on a name is recorded well enough to show an auditor. The model does the reading; the person makes the call.
The learning
Compliance is about being able to show your reasoning, and the product was built that way from the first sprint. Every match explains itself, so analysts learned quickly which signals to trust and which to question, and nothing shipped that the team could not explain to 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, before the first analyst logs in.
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, none of them skipped on a busy morning.
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
Optimization
Right tool for the task
Rules and ordinary software before AI. A model only where it earns its place.
Conscious AILet's talk
Tell us where you are. We'll say plainly what we would do next, and whether we're the right team for it.