HN user

phildini

171 karma
Posts15
Comments38
View on HN
alpr.watch 7 months ago

Hello! The crawlers are not currently public, but I'm happy to take volunteers behind the curtain.

I also fixed Cook County

alpr.watch 7 months ago

Hi! I've written crawlers for about a dozen municipal hosting platforms, and you can learn the bare-bones of it from our "How" page: https://civic.band/how.html

I also gave a talk on this concept that walks through the whole process: https://www.youtube.com/watch?v=MtWzNnZvQ6w

The short answer is: there's no common API for any of these sites, and even the ones that do have an API are sometimes misconfigured. It's why I wrote all the scrapers by hand.

alpr.watch 7 months ago

thanks! the next major hurdle is school boards; gotta get EBoard and BoardDocs to make that work

alpr.watch 7 months ago

Granicus is six providers in a trench coat it turns out. IQM2, NovusAgenda, Legistar, Granicus, PriveGov, and CivicClerk are all Granicus projects that share absolutely 0 apis that I've found, and a city having one of these operational is no guarantee they have any of the others.

Legistar and CivicClerk have actual APIs, which is nice, although it's extremely easy for the City Clerk's staff to trip and make the Legistar API unusable.

My experiments with using LLMs to write crawlers for these has been extremely mixed; it's good at getting first page of data and less good at following weird pagination trails or follow-on requests.

All of this led me to build CivicBand (which tracks all the municipalities I can get my hands on) and CivicObserver (which is generalized full-text search alerting for municipalities via email, mastodon, bluesky, and slack webhook)

alpr.watch 7 months ago

I _think_ (but am not actually certain) we're monitoring more municipal agencies at CivicBand, but I know some of the folks at MuckRock and the work they're doing is absolutely critical.

alpr.watch 7 months ago

The question would ultimately get settled in court, I think, but a DA who was feeling cop-aligned and vicious could try to ding you for interfering with police operations by _not_ allowing your plate to get scanned.

alpr.watch 7 months ago

Search context is legitimately hard, especially since this is unstructured text data that (ime building CivicBand) needs to be OCR'd not parsed for best results.

You might be terrified the number of municipalities that are still posting PDFs of scans of printouts of their minutes, which were originally a word document, and round and round we go.

Part of why I haven't guaranteed results building CivicObserver is because of how hard search context is. Maybe making this an MCP helps, but I'm not actually sure it does.

alpr.watch 7 months ago

Thanks for asking!

- The framework for crawling is open-source. https://github.com/civicband

- There is absolutely not a standardized API for nearly any of this. I build generalized crawlers when I can, and then build custom crawlers when I need.

- Can you let me know which city? The crawlers run for every municipality at least once every day, so that's probably a bug

In the US, especially in CA, where so many readers of this site live and work, absolutely.

All the policies and procedures are there to, ultimately, protect the company from wrongful termination or discrimination lawsuits. There's not really a govt body that mandates that.

(Handwave around: there are some protected activities that the govt cares if you're fired for, and if you can prove you were fired as retaliation then the company is in trouble, but mostly your manager can just fire you)

Hi there! I'm someone currently doing this. I'm CTO at a small startup in Oakland, am married, have a 4-month-old, have a mortgage. CEO just turned 40, also has a mortgage, is married, and has two kids.

Like everything, there's tradeoffs in time and money. Will you move faster if you're spending all of your time hustling on the startup? Maybe! Not every business and not every startup requires 24/7 hustle. Does this force ruthless prioritization? Yes. That's a good thing!

It also means my cofounder and I are very cautious in hiring, using offshore contractors anywhere we can, because we know that the pool we're dipping into is legitimately our own salaries. This is also a good thing! Paying yourself enough to live on without stress and keeping all other expenses low and tight is still "running lean" in my book.

Ok, so how: We got lucky of course, but some of that luck can be replicated. My CEO already knew some VCs from previous networking; those VCs gave us some pre-seed working capital, which allowed us to build enough to get more VCs on board, which gave us a year+ of runway to keep building. We did a _lot_ of pre-vetting with our target market before building, and the nice thing about pre-vetting is you can do it while you still have a job working for someone else.

The thing to remember as a founder is that part of why tech companies provide great salaries and so many perks is so their employees can be at work and fully focus on the work. You should treat yourself like a valued employee as a founder, and create the conditions for you to do your best work, which probably means not stressing about paying the mortgage.

The hustle and drive should come from your passion for the business and the approaching zero cash day, not forcing your family to live on ramen.

Had a similar circumstance, re: my co-creator getting rejected and myself getting accepted.

I have mixed feelings about my acceptance, because I think she might benefit from it more than I.