Spaces:
Sleeping
Sleeping
| title: TAM | |
| emoji: π | |
| colorFrom: blue | |
| colorTo: indigo | |
| sdk: docker | |
| pinned: false | |
| # Market Research & Lead Generation App | |
| Automate market research, collect data from multiple sources, and manage leads β all in one place. | |
| ## Features | |
| | Feature | Details | | |
| |---|---| | |
| | **Dashboard** | KPI cards, lead status/source charts, conversion rate | | |
| | **Lead Management** | Full CRUD, search, filter, status tracking | | |
| | **CSV/Excel Import** | Auto-detects column names, imports any spreadsheet | | |
| | **LinkedIn Import** | Import your LinkedIn connections or Sales Navigator exports | | |
| | **Web Scraper** | Extract emails, phones, company info from any website | | |
| | **Bulk Scraping** | Queue multiple URLs at once | | |
| | **Export** | Download filtered leads as CSV or Excel | | |
| ## Quick Start | |
| ```bash | |
| chmod +x start.sh | |
| ./start.sh | |
| ``` | |
| Then open: | |
| - **App**: http://localhost:5173 | |
| - **API Docs**: http://localhost:8000/docs | |
| ## Manual Setup | |
| ### Backend | |
| ```bash | |
| cd backend | |
| python3 -m venv .venv | |
| source .venv/bin/activate | |
| pip install -r requirements.txt | |
| uvicorn main:app --reload | |
| ``` | |
| ### Frontend | |
| ```bash | |
| cd frontend | |
| npm install | |
| npm run dev | |
| ``` | |
| ## Importing Data | |
| ### CSV / Excel | |
| Any spreadsheet works. The importer auto-maps common column names: | |
| | Your column | Maps to | | |
| |---|---| | |
| | Company, Organization, Account Name | company_name | | |
| | Name, Full Name, Contact Name | contact_name | | |
| | First Name + Last Name | contact_name (combined) | | |
| | Email, Email Address | email | | |
| | Phone, Mobile, Telephone | phone | | |
| | Website, URL | website | | |
| | Industry, Sector | industry | | |
| | Company Size, Employees | company_size | | |
| | Location, City, Country | location | | |
| | LinkedIn, LinkedIn URL | linkedin_url | | |
| | Notes, Comments | notes | | |
| Any unrecognized columns are saved as **custom fields**. | |
| ### LinkedIn Export | |
| 1. Go to **LinkedIn Settings β Data Privacy β Get a copy of your data** | |
| 2. Select **Connections** and download the archive | |
| 3. Upload `Connections.csv` in the Import tab | |
| 4. For Sales Navigator: export lead lists directly as CSV | |
| ### Web Scraper | |
| The scraper extracts: | |
| - Email addresses (from mailto links and page text) | |
| - Phone numbers | |
| - Company name (from page title / OG tags) | |
| - LinkedIn profile URL | |
| Options: | |
| - **Extract Emails / Phones / Company Name**: toggle extraction types | |
| - **Follow Internal Links**: crawl the entire site (set max pages) | |
| - **Bulk mode**: paste multiple URLs, one per line | |
| > **Note**: Web scraping is subject to each site's Terms of Service. Use responsibly and respect `robots.txt`. Avoid scraping at high rates. | |
| ## Lead Statuses | |
| | Status | Meaning | | |
| |---|---| | |
| | `new` | Just added | | |
| | `contacted` | Outreach sent | | |
| | `qualified` | Confirmed interest / fit | | |
| | `converted` | Became a customer | | |
| | `archived` | Not relevant | | |
| ## Tech Stack | |
| - **Backend**: Python, FastAPI, SQLite, SQLAlchemy, pandas, BeautifulSoup | |
| - **Frontend**: React 18, Vite, React Router | |
| ## Project Structure | |
| ``` | |
| TAM/ | |
| βββ backend/ | |
| β βββ main.py # FastAPI app entry point | |
| β βββ database.py # SQLite / SQLAlchemy setup | |
| β βββ models.py # DB models + Pydantic schemas | |
| β βββ scraper.py # Web scraping engine | |
| β βββ routers/ | |
| β β βββ leads.py # CRUD for leads | |
| β β βββ imports.py # CSV/Excel/LinkedIn import | |
| β β βββ scraping.py # Scraping jobs | |
| β β βββ export.py # CSV/Excel export | |
| β β βββ analytics.py # Dashboard stats | |
| β βββ requirements.txt | |
| βββ frontend/ | |
| β βββ src/ | |
| β β βββ App.jsx | |
| β β βββ api.js # API client | |
| β β βββ components/ | |
| β β βββ Dashboard.jsx | |
| β β βββ LeadsTable.jsx | |
| β β βββ ImportWizard.jsx | |
| β β βββ ScraperConfig.jsx | |
| β βββ package.json | |
| βββ start.sh # One-command startup | |
| ``` | |