Job-posting automation for a Gulf job board (2 production AI bots)
Syed Ali Mehdi
Published
The problem. A job board covering Kuwait, Bahrain, Qatar and Oman was paying staff to copy job ads by hand from about 45 Instagram accounts and websites into their site. It was slow, and mistakes went live.
What I built. Two Python bots, running on the client’s Linux server.
- Posting bot: watches each source, reads new posts (text or flyer image) with a vision model, splits flyers that hold several jobs, and creates the listings through the client’s Laravel REST API. It writes every post ID to a Google Sheet so the team can see what happened.
- Checker bot: compares posts made by the data-entry team against the original ad and flags the ones that don’t match.
Result. On one Oman run the posting bot went through 42 sources and created 82 posts with zero failures. The client now runs it for all four countries.
The bug I’m proudest of fixing. The checker was marking an ad as found whenever a keyword showed up anywhere on the page, so missing ads slipped through. I changed the rule to “confirm only what you can prove, otherwise say unknown” and added tests so it stays fixed.
Stack: Python, OpenAI and Gemini models, Apify, SQLite, Google Sheets API, Laravel REST API, cron on a VPS. About 100 offline tests on the posting bot alone. Client code, so the repos are private; happy to demo on a call.