US IT Companies Scraper
US IT Companies Scraper builds a prospect list for backend-engineer job search in the US. It starts from a hand-curated database of 80+ employers (FAANG, cloud, fintech, AI) with salary metadata, filters by backend focus and a configurable minimum salary floor, then enriches each company by scraping career links and regex-matching career emails from homepages. Results export to CSV and Excel via pandas; an optional SMTP outreach module sends templated applications. It complements AI Job Hunter - this tool finds who to target; AI Job Hunter discovers and scores live postings.
Problem
Job search for US backend roles often starts with scattered company lists and manual career-page hunting. AI Job Hunter scores live ATS postings, but you still need a curated employer prospect list with career emails, salary bands, and backend hiring signals before outreach begins.
Before and After
Before
- Manual spreadsheet of target companies
- Career emails hunted page by page
- No salary floor or backend keyword filter
- Single export format for mail merge
- Outreach disconnected from prospect data
After
- 80+ curated US tech employers with metadata
- Automated career link and email extraction
- Backend focus + $140k minimum salary gate
- CSV and Excel export in one batch run
- SMTP outreach module reads the same export
How Company Leads Get Enriched
A curated seed list of high-paying US tech employers flows through salary and backend filters, per-company website enrichment, and dual CSV/Excel export - with optional SMTP outreach downstream. Pick any block to see the flow.
Input
Orchestration
Seed
Filter
Scrape
Enrich
Export
Outreach
What I Built
Curated company seed database
- 80+ US employers across FAANG, cloud, fintech, AI, gaming, and e-commerce.
- Each entry includes website, industry, avg_salary range, and backend_jobs flag.
- Hand-maintained list beats brittle live discovery for reliability.
- Extendable Python list - add companies without changing scrape logic.
Dual-mode web extraction
- Fast path: requests + BeautifulSoup for company homepages (10s timeout).
- Optional Selenium headless Chrome for JavaScript-heavy Glassdoor browse pages.
- Rotating User-Agent headers via fake-useragent.
- Random 1-3s delays between company enrichments.
Career email and backend signal enrichment
- Eight regex patterns: careers@, jobs@, hr@, talent@, recruiting@, and more.
- Ten backend keyword scans: platform engineer, microservices, API engineer, etc.
- Domain fallback emails when none found on the page (careers@domain, jobs@domain).
- Career link discovery from href and anchor text matching.
Export and outreach workflow
- pandas exports high_paying_backend_companies.csv and .xlsx in one run.
- Interactive CLI (run_scraper.py) configures batch size, salary floor, and scrape toggle.
- JobApplicationEmailer sends templated SMTP applications with rate limiting.
- Complements AI Job Hunter: prospect list here, live posting discovery there.
Engineering Decisions
- Curated seed over live job-board crawl - metadata quality and rate-limit safety beat scraping LinkedIn without an API.
- requests first, Selenium second - static HTML covers most career pages; browser automation reserved for JS-heavy paths.
- Graceful degradation - per-URL try/except, salary parse failures still include the company, missing emails get domain fallbacks.
- Separate outreach script - scrape core stays batch-only; email sending is opt-in downstream.
- Ethical scraping defaults - documented robots.txt guidance, delays, and CAN-SPAM-conscious outreach pacing.
- LinkedIn path documented as placeholder - real integration would need official API or licensed data provider.
By the Numbers
Curated employers
80+
Email regex patterns
8
Backend keyword patterns
10
Default salary floor
$140k+
Python source lines
~900
Export formats
CSV + Excel
Industry categories
8+
Reliability and Ops
- Per-company try/except - one failed homepage does not abort the batch.
- Session reuse with consistent headers across requests in a run.
- Keyboard interrupt handled in CLI runner.
- setup.py automates ChromeDriver checks for the optional Selenium path.
Testing
- Manual batch validation via run_scraper.py summary output.
- Sample CSV output (high_paying_backend_companies.csv) for spot-checking enrichment quality.
- Natural next step: unit tests for email extraction, salary parsing, and filter logic.
What I Did
- 01Built a Python scraping pipeline enriching 80+ US tech companies with career links, contact emails, and salary metadata for backend-engineer targeting.
- 02Implemented dual-mode extraction: requests + BeautifulSoup for static pages and headless Selenium for JS-heavy job board listings.
- 03Designed regex-based career email discovery with domain fallbacks and backend keyword scanning across company homepages.
- 04Added configurable filtering (salary floor, backend focus, batch size) with rate-limited scraping and rotating User-Agent headers.
- 05Exported enriched datasets to CSV and Excel via pandas for downstream personalized outreach workflows.
- 06Packaged interactive CLI, venv bootstrap script, and ChromeDriver setup automation for one-command local execution.