Gibin Mathew, RPA and workflow automation manager in Chennai, India

Gibin Mathew

Data & Automation Manager · Chennai, India

Bots do the forms. People make the judgment calls. I build the system in between.

I'm Gibin Mathew. For nine years I've built production automation, data pipelines and AI-assisted systems for operations teams, first at S&P Global Market Intelligence, now leading data engineering and automation at Edvoy.

One record → any portalConfig-driven RPA · Edvoy
CRM record raw
full_name
"MATHEW, Gibin"
dob
1996-03-23
country
IN
email
" Gibin.Mat96@Gmail.com "
Portal A5 / 5
Gibin
Mathew
23/03/1996
India
entered by a person
Submitted ✓
By hand~30 min
With RPA~5 min avg
Same data, three different forms, no code changes.sample data
3,000+portal submissions automated
94%success rate across 70+ portals
1,200+hours of manual work saved
168 FTEof capacity from automations at S&P Global
3.4M+company websites crawled for one data product
PythonSQLPlaywrightSeleniumBlue PrismAppianNode.jsMongoDBMySQLPandasFastAPIFlaskExpressReactDockerAWSRedis StreamsRabbitMQOpenAI APIGeminiDeepSeekOCRSlack APIData Studio
Approach

Three rules I don't break

I picked these up by shipping systems that operations teams use every day.

Configuration beats code

When the hard part is variety (70+ web portals, catalogue data that won't sit still), I'd rather the system absorb new cases as data. Adding a new portal shouldn't need a deployment.

Seen in: portal automation

Put people where judgment lives

I send OTPs, CAPTCHAs, document checks and AI drafts to a person, on purpose. Automation earns trust when it knows when to stop.

Seen in: AI validators, portal automation

Measure what the system controls

If a user cancels a job, that's their call, so I don't count it as a platform failure. I'd rather improve an honest number than defend a flattering one.

Seen in: portal automation
Case studies

What I've built, and why it's built that way

Short versions below. Each has a longer write-up in the RPA and data automation portfolio.

Each submission meant someone retyping the same details into yet another web portal. About 30 minutes a time.

The problem

Our teams submit to dozens of external portals, and no two of them behave alike. Fields, page flows, upload rules and verification steps all change from site to site. If I'd written one bot per portal, the codebase would've grown with every new site and broken whenever one got redesigned.

The data didn't help either. Our CRM keeps a full name in one field, countries as codes and dates in one format, and every portal wants something different.

How one job runs
  1. 1
    PickAn operator picks the record and the portalOne click from a browser side panel.
  2. 2
    PrepareThe data is cleaned and mappedRaw CRM values are reshaped for this portal. Anything missing is flagged before the bot starts.
  3. 3
    FillThe bot fills the form, page by pageIt follows the portal's config, skips questions that don't apply and retries if a page is slow.
  4. 4
    Hand overA person steps in only when neededOTPs, CAPTCHAs and uploads. The bot waits, then picks up where it stopped.
  5. 5
    DoneSubmitted and loggedEvery step's outcome is recorded against the job and the team.

Calls I made

  1. New portals come in as configuration.A new portal is added as config, in a workflow editor we built. Coverage grew to 71 portals while the codebase stayed the same size, and config changes never needed a redeploy.
  2. Clean the data once, before the bot starts.A Python step turns raw CRM data (names, dates, country codes, phone numbers, yes/no answers) into portal-ready values. The bot never touches messy data, and missing fields show up before a run, not halfway through it.
  3. Let the page decide which questions apply.Portals show and hide questions based on earlier answers. Rules in the config (if this is on the page, if that step worked, repeat until the list runs out) check what's really there and skip the rest, so one config covers every branch of a form.
  4. I designed the human steps in from day one.OTPs and CAPTCHAs go to a person, and the bot picks up again once they're done. Trying to automate those steps would have made the whole thing fragile. Small failures, like a slow page, retry on their own with a growing wait.
  5. Every failure gets a label.When a run fails, the platform reads the error and tags it: a config problem, a portal that changed, a connection issue, or something that needs a person. The fix goes to the right person on the first try, not after a round of guessing.
  6. I defined success so it can't flatter us.Success rate is successful jobs divided by successful plus failed. If a user stops a job on purpose, it doesn't count against the platform.
3,000+submissions processed
70+portals configured
94%success rate
1,200+hours saved

By hand it's about 30 minutes. The bot's own time averages about 5 minutes per job. Figures as of October 2026.

No two websites lay out their data the same way. So instead of one scraper fighting all of them, an agent writes a scraper for each site, and every scraper hands back the same thing: clean Markdown.

The problem

Our data comes from a long list of catalogue websites. Some load content as you scroll. Some hide it behind cookie banners. Some tuck the useful parts inside page scripts. Hand-written scrapers were slow to build, they'd break without telling anyone, and each one returned data in its own shape.

What I built

We hand a new website to the Hermes agent, and it writes a Playwright scraper. Each one sits on a shared library for the boring parts (cookies, scrolling, retries, rate limits) and turns every page into a Markdown file, with a header saying where it came from and when. The files land in Amazon S3.

I split the platform into a few small services. One schedules the runs, one executes them, one streams the logs live to a React dashboard, and one pulls in new scraper code the moment it's pushed to Bitbucket. Nobody's deploying by hand.

Then the Markdown feeds a second agent. You ask it questions in plain language and it answers from the files. You don't write a query in SQL or anything else.

Subject requirements are written differently on every page. Reading them all by hand didn't scale. Letting an AI publish them unchecked wasn't an option.

The approach

Our editors pick a model (Gemini, Gemma or DeepSeek, from lighter to heavier), tweak the prompt if a page needs it, and run it. The prompt is shared and versioned, so everyone can see who changed it last and when.

The AI gives back two things: a text summary and a structured table. Both are interactive, so you don't just read them, you edit them. The editor checks them against the highlighted source page, fixes any cell in the JSON editor, and saves. Then a subject identifier maps every subject it found to our master list. Exact matches publish on their own. Everything else shows its closest match, and a person picks.

Bulk reruns, per-person stats and token spend per run live in the same tool. Honestly, calling a model was the easy part. The real work was deciding what it's allowed to do alone.

60-70%less manual QC, across both validators
2model families, swappable per run
2paths: exact matches publish, the rest go to a person

Fee pages bury the numbers inside paragraphs. And one fee often applies to dozens of intakes, so typing it into each one by hand is exactly how mistakes creep in. I wanted it checked once.

The approach

We put the scraped fee page on the left. One shortcut (Shift + A) runs the AI summariser, which pulls the fees out and highlights every amount, date and condition, including the slippery words like "may". On the right is each intake with its fee field.

Our reviewer compares the two, then accepts the fee or fixes it. When it's right, one click applies it more widely: to every intake, to every full-time intake, or to every intake at the same campus. Then Verify. Each record keeps who verified it and when, so there's never a question about who signed off. A dashboard tracks progress by source and by person.

60-70%less manual QC, across both validators
1 fixcan update every related intake
Everyverified fee has a name and a time on it

This research would have needed a floor full of people. One crawler did it.

The problem

To collect companies' official social-media handles, researchers had to visit websites one at a time. Across S&P's company universe that meant millions of visits.

What I built

I wrote a Python and Selenium crawler that ran across 3.4M+ company websites. Domain resolution made sure it hit the right site, and de-duplication left each company with one clean answer. It was the biggest of my S&P automations, which together came to about 168 FTE of capacity.

3.4M+company websites
160 FTEof manual research replaced
$1.1Mpotential revenue
By the numbers

What the automation adds up to

People's time · S&P Global
0FTE
160 from one crawler8 from other automations

Each figure is one full-time person's worth of manual research that bots now do.

Money · S&P Global
$0M
Social handle crawler$1.1M
ESG document scraper$600K
Search automationup to $800K
+ $596K in cost savings

Potential revenue from data products my automations fed.

Hours · Edvoy
0hours

Hours handed back to the team, with a 94% success rate across 70+ portals.

0%
success rate, config-driven RPA
0%
less manual QC with AI validators
~0%
less manual reconciliation
~0%
faster turnaround with workflow automation

Edvoy figures as of October 2026. S&P Global figures from 2017 to 2021.

Also built

Smaller things I've shipped

The matching behind Intake Watcher has its own write-up: token sort matching for data reconciliation.

Recommendations

What people I've worked with say

15 recommendations from managers, people I've managed, product leads and teammates at Edvoy and S&P Global, quoted word for word from LinkedIn.

He understands the product angle just as well as the technical one — which is rare — and it shows in the way he thinks ahead and solves problems before they become blockers.
Raj GauravHead of ProductSenior colleague, didn't manage Gibin directly · Nov 2025
When Gibin owns something, I don't need to follow up on it.
Meeran MuhaiyaddinManaged Gibin directly · Oct 2026
He wasn't officially the lead then, but honestly everyone treated him like one. If someone was stuck, they'd just go to Gibin.
Preethi RajalingamSenior Software Engineer, Zuci SystemsWorked with Gibin on the same team · Oct 2026
Gibin is one of those rare professionals who combines deep technical expertise with a strong sense of ownership and leadership.
Firoz SaitChief Revenue Officer, MetaApplyWorked together on different teams · Nov 2025
When I get something wrong, he tells me privately and helps me fix it. When I get it right, everyone hears about it.
Sudharsan V SAI EngineerReported to Gibin directly · Oct 2026
Whenever our Product team needed quick clarity, cleaner data, or fixes to scraping and validation workflows, he always stepped in and got things moving without any drama.
Sirajudeen Mohammed YasarHead of ProductWorked together on the same team · Nov 2025
He gave me the freedom to approach problems independently while providing helpful hints and guidance whenever I needed them.
Mohammed KhaleelullahData EngineerReported to Gibin directly · Oct 2026
Very positive and thinks out of the box. Excellent person I recommend for automation and data extraction.
Praveen Kumar GManaged Gibin directly · Aug 2022
One thing that stands out about Gibin is his focus on getting things right rather than simply getting them to work.
Maneesh KumarData EngineerWorked together on the same team · Oct 2026
He has this rare ability to learn things from scratch, master them, and then patiently guide others with the same clarity and passion.
Avinash KumarProduct, S&P GlobalWorked together at different companies · Jul 2025
He has strong hands-on experience in building efficient Python scripts and automation solutions, particularly in Robotic Process Automation (RPA) and web scraping, where he consistently delivers accurate and scalable results.
Faizan AhamedAI Operations SpecialistWorked together on the same team · Jan 2026
Gibin is one of the best people I had as a project partner.
Jayesh MalaviyaProgram & Operations Manager, S&P GlobalWorked together on different teams · May 2022
He has amazing python skills in the web scraping and robotics sector.
Achyutam MehtaManager, Data Acquisition & Automation EngineeringWorked together on the same team · Jun 2021
He is very easy to reach out and always willing to help his coworkers. I would love to work with Gibin again in the future.
Shraddha JadawalaProject Manager, PMPWorked together on the same team · Jun 2022
The innovative mindset of Gibin is the driving force making him distinct everywhere!
Santhosh KokkattilAssociate Director, Analytic Risk OfficerWorked together on different teams · Aug 2024
Career

I started as a data researcher. Now I run the automation team.

Edvoy

EdTech · Chennai · 2021 – now
  • Data and Automation ManagerJan 2024 – now
  • Lead, Data AnalyticsJan 2023 – Jan 2024
  • Data EngineerJul 2021 – Jan 2023

I run the data engineering and automation team, from hiring through performance reviews. I own production stability for our automation and AI systems and push shared data standards across product and operations teams.

S&P Global Market Intelligence

Hyderabad · 2017 – 2021
  • Senior Automation SpecialistFeb 2020 – Jul 2021
  • Data ResearcherSep 2017 – Feb 2020

Started in data research and moved into automation. I built crawlers and Blue Prism RPA for financial, company and ESG data. Together they were worth about 168 FTE, $2.5M in potential revenue and $596K in savings.

Recognition at S&P Global

Toolkit

Automation
Playwright, Selenium, Blue Prism, Appian, OCR
Data
Python, SQL, MongoDB, MySQL, Pandas, ETL
AI
OpenAI, Gemini and DeepSeek APIs, LLM-assisted validation
Platform
Flask, Express, Docker, AWS, Linux
Off the clock

I play chess. Mostly, I solve puzzles.

Same itch as work: a messy position and one clean answer. Both of these finishes are from my own games on chess.com. White to move, mate in two. Your turn.

Games played
4,581
Best puzzle rating
1,496
Playing since
Feb 2022
Last played
Recently

Numbers load live from the public chess.com API.

Puzzle 1 / 2 · White to moveMate in 2
White to move. Find the move that forces mate in two.
See the game ↗

Quoted word for word from LinkedIn.

HeyCoach certificate of completion for Gibin Mathew, DSA and System Design program

DSA & System Design · HeyCoach