AT Learn · AI for finding clients
All five lessons: https://learn.atkach.live/en/courses/ai-client-search/

1. Extract this archive into a separate folder. Install Python 3 from python.org if needed.
2. Open a terminal in this folder (Windows: use python instead of python3 if required).
3. Run the actual tests:
   python3 -m unittest test_parser.py
4. Parse the fictional sample pages:
   python3 company_parser.py samples companies.csv
5. Open companies.csv or import it in the local workshop on the course page.
Expected: four records; one repeated domain, one missing source. The workshop keeps two structural rows for review. .example domains are fictional and cannot be used as real prospects.

The parser only reads local HTML, does not run its scripts and does not contact websites. No AI subscription or API key is needed. Claude Code is optional and billed separately.
For your task, replace sample files only with pages you are allowed to save and process. The parser reads a canonical URL from <link rel="canonical" href="...">; if missing, it leaves the URL blank. Verify it against the actual page address. A site may load data dynamically: an empty saved page cannot provide missing content.
Maximum 50 files, 1 MB each; no symlinks. Output must be a new simple .csv filename in the current folder. To rerun, choose a new output name; existing files are not overwritten.
CSV formulas are escaped as text. Summary contact-pattern filtering is limited: review every field yourself. A company list does not establish demand, consent to contact or a right to reuse data. No automatic outreach is included.

Troubleshooting: python not found → install Python; missing_source → check the actual URL, never invent one; existing output → choose companies-2.csv; size/unsafe URL → inspect source manually. No banking information is needed.
