adds ETLBase class with core logic
adds one sanity test for ETLBase
moves listings.py to 'test' namespace; refactors logic via ETLBase class
moves postings.py to 'test' namespace; refactors logic via ETLBase class
updates TestPostings docs
initial commit of 'runner' module
moves schema file(s) to 'test' namespace
adds AptListings ETL class and tests
initial commit of configs for AptListings scraper
initial commit of generic 'listings' scraper
fixes minor bugs wrt 'listings' scraper
tamps down logging noise
moves paging logic into Listings.extract method
reorganizes source tree: original scripts -> proof-of-concept folder
reorganizes source tree: prod scripts -> examples/housing folder
initial commit of configs for Postings scraper
initial commit of Postings scraper
initial commit of generic 'postings' scraper