Bahrain Company Discovery and Email Tool

via Freelancer ·

Budget / Salary$250–750
TypeFreelance project
LocationRemote
Posted40 minutes ago
I need an experienced Python developer to build an automated Windows 11 tool that finds companies across Bahrain, collects their business details, finds publicly published contact emails on their websites, and exports everything to Excel. Goal: the most complete coverage of Bahrain possible.

DATA SOURCE
Preferably Google Places API (New) with a grid-based country-wide search. Other sources (e.g. Bahrain Chamber of Commerce directory) may be proposed if their terms of use allow it. API keys run on my own Google Cloud billing account.

INPUT (Excel)
Governorates, areas (e.g. Manama, Seef, Riffa, Muharraq), optional block numbers, keywords (English/Arabic), settings incl. a hard spend limit.

PHASE 1: COMPANY DISCOVERY
- Name (EN/AR), building, road, block, area, governorate, full address, phone (+973), website, Instagram/Facebook/WhatsApp links, category, Place ID, Maps URL, coordinates.
- Flag when the "website" is really an Instagram/Facebook page (store links only, no social media scraping).
- Remove duplicates by Place ID, phone, domain and fuzzy name + location, handling spelling variants (Mohammed/Mohamed) and suffixes (W.L.L., S.P.C., B.S.C.).

PHASE 2: WEBSITE ANALYSIS (English + Arabic pages)
- General emails: info@, contact@, sales@, hr@, etc.
- Named contacts: first/last name, job title, email. Priority: CEO, Managing Director, General Manager, Owner, Founder, Chairman, CFO, COO, CTO, Head of Sales/Marketing. Arabic job titles must be recognized.
- Only publicly published emails, no guessed emails.
- Respect robots.txt, rate limits and a max pages per site; handle JavaScript sites and obfuscated emails.

OUTPUT (Excel)
"Companies" (all Phase 1 fields + general email, source URL, date collected), "Contacts" (one row per person, linked by Company ID, with source URL), "Run Log".

TECHNICAL
Documented modular code, requirements file, API keys outside the code, error handling, logging, resume after interruption without repeating paid API calls, cost estimate (dry run) before every paid run, automatic stop at the spend limit, suppression list (excluded companies/emails are skipped in future runs).

MILESTONES
1. Pilot on Seef + report: companies found, duplicates removed, email success rate, actual API cost.
2. Complete tool + documentation.
3. Full Bahrain run.
Pilot is accepted when it runs end-to-end, resumes after a forced stop without repeating paid calls, has under 2% duplicates on a manual check, and actual cost is within 20% of the estimate.

DELIVERABLES
Source code (full ownership transferred to me), installation guide, user guide, sample input/output Excel, pilot report, list of required API keys, operating cost overview, maintenance notes, 30 days of bug fixes after delivery.

IN YOUR PROPOSAL
Start with the word "BAHRAIN" so I know you read this.
Required:
1. Price per milestone and timeline.
2. Which Google Places SKUs/tiers you would use, cost per 10,000 and 100,000 requests, estimated total API cost for a full Bahrain run, and how you keep that cost low.
3. How you achieve full coverage of Bahrain (grid size, keywords, result limits per query).
4. Realistic numbers: companies expected, % with a website, % with an email, % with a named contact.
Optional:
5. How you detect names and job titles (English and Arabic).
6. What the Google Maps Platform terms allow us to store, and what that means for this tool.
7. Similar projects you have built.
python data processing excel web scraping data mining google maps api data scraping data analysis api development data collection
Apply on Freelancer →

Project sourced from Freelancer.com. Applications happen directly on the original platform — we never collect your data.