Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CompanyEnum

A Flask web app that runs a one-shot OSINT sweep on a company name and presents the findings in a live dashboard. You type a company, watch each scraper report progress in real time, and get a tabbed report covering the company profile, financials, people, web-tech posture, and customer/employee reviews.

CompanyEnum Input

What it collects

Tab Sources Data
Summary Craft.co, Google (website fallback) Company name, website, HQ, founded date, description, sectors, competitors
Financials Craft.co Stock price, market cap, revenue
People Craft.co Executives with roles
Technology securityheaders.com, SSL Shopper, Sucuri SiteCheck, whois.com HTTP security-header grade, raw headers, TLS cert + SANs, Sucuri ratings and recommendations, WHOIS records
Ratings Trustpilot, CareerBliss Aggregate scores and recent reviews with star widgets

How it works

Submissions start a background thread that runs each scraper sequentially and writes per-step state into an in-memory job store. The browser gets redirected to a loading page that polls /status/<job_id> every 500 ms and renders each step as pending → running → done / skipped / error. When the job finishes, the page auto-navigates to /result/<job_id>.

Scrapers in submodules/ are a mix of three strategies depending on how aggressive the target is about bot detection:

  • requests / BeautifulSoup for sites that don't block (whois.com, SSL Shopper, Sucuri API).
  • cloudscraper for Cloudflare-protected sites that still accept a good browser fingerprint (Craft.co, securityheaders.com).
  • Playwright + playwright-stealth (headless Chromium) for sites whose anti-bot won't budge without a real browser (Trustpilot, CareerBliss).

CompanyEnum Summary

Project layout

main.py                 Flask app, routes, background job runner
requirements.txt        Python dependencies
submodules/
    craftco.py          Craft.co profile + executives scraper
    trustpilot.py       Trustpilot reviews (Playwright)
    careerbliss.py      CareerBliss reviews (Playwright)
    findwebsite.py      Website resolver (Craft.co field + Google fallback)
    securityheaders.py  securityheaders.com scanner
    sslhopper.py        SSL Shopper cert checker
    sucuri.py           Sucuri SiteCheck API client
    whoisquery.py       whois.com scraper
    compiledata.py      HTML rendering for each output tab
static/
    style.css           Input page (waves, gradient, search bar)
    loading.css         Loading page (progress bar + step list)
    output-style.css    Report page (cards, tags, stars, grade badge)
    script.js           Output page tab switching + scroll progress
templates/
    input.html          Search form with example chips
    loading.html        Live progress UI
    output.html         Tabbed report

Installation

Requires Python 3.9+.

pip install -r requirements.txt
playwright install chromium

The second command downloads the headless Chromium binary Playwright needs for Trustpilot and CareerBliss.

Running

python main.py

Then open http://127.0.0.1:5000/ and enter a company name. Use the example chips on the input page for a quick test.

Notes

  • The in-memory job store is capped at 32 entries and evicts oldest-first.
  • A single scan takes roughly 20-40 seconds depending on network and which scrapers stall.
  • If Craft.co can't find the company, the website resolver falls back to a Google search, which may itself fail silently if Google serves a CAPTCHA; in that case the Technology tab is filled with "Company website not found" placeholders and everything else still works.
  • The scrapers target real HTML and API shapes that change without warning. Expect occasional breakage when a source restructures its page.

About

OSINT sweep on a company name — Flask dashboard that scrapes Craft.co, Trustpilot, CareerBliss, WHOIS, and web-tech scanners in parallel.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Contributors

Languages