5 Commits (main)

Author SHA1 Message Date
I Luk Kim ca5d229ca2 sites: focus active set on IHS/USAJOBS/tribal orthodontist roles
Disable all sites except ihs, usajobs, tribalhealth. Drop "dentist" from usajobs (search keywords + title filter) and tribalhealth, and add an orthodontist/orthodontic title filter to ihs, so the three active sites all return orthodontist roles only.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2 months ago
I Luk Kim 5fa28b3948 Add Google Jobs & HospitalRecruiting adapters; LinkedIn Volunteer filter; aaoinfo fixes
- Add googlejobs adapter (scroll-based extraction) and manifest
- Add hospitalrecruiting adapter (JS extraction) and manifest
- Fix googlejobs job URL: use shareUrl directly to preserve #fpstate=tldetail fragment
- Add exclude_title_keywords post-filter support (manifest + orchestrator)
- LinkedIn: exclude "volunteer" titles via exclude_title_keywords
- aaoinfo: exclude Preferred listings via :not(:has(.label-preferred)) selector
- aaoinfo: sort=start_ (descending = newest first)
- Telegram: multi-chat support, HTML escaping fixes, chunk splitting
- Various adapter, notifier, and CLI improvements

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4 months ago
I Luk Kim b28e204d80 LinkedIn: headless mode, scroll all 25 cards one-by-one
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
5 months ago
I Luk Kim 89ca7a4006 Fix warnings, LinkedIn selector update, Telegram notify listing, usajobs title filter
- LinkedIn: new URL with geoId, updated selectors to li[data-occludable-job-id], scroll adapter, pagination disabled
- usajobs: add include_title_keywords post-filter (dentist/orthodontist/orthodontic)
- aroragroup: fix AJAX load via doloadJBSearchList(), fix container selector
- govtjobs/srpmic: clear result_list_wait_selector to avoid 15s timeout on 0-result pages
- orchestrator: wait selector timeout WARNING → DEBUG
- extractor: no-container WARNING → DEBUG
- notifier: provider-based dispatch (telegram/kakaotalk), build_listing_messages() for Telegram
- cli notify: send job listing with links instead of Ollama summary
- global.yaml: provider set to telegram

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
5 months ago
I Luk Kim 83fb8542a9 Add 8 site adapters, early stop, Telegram notifications, and list command
New site adapters:
- usajobs: multi-keyword sweep (dentist/orthodontics/orthodontist), URL pagination
- docshealth, southernortho: Paylocity platform, keyword in URL
- pdshealth, saltdental: iCIMS Angular platform, URL pagination
- hospitaljobsonline: Load More button, relative URL fix
- aaoinfo: AAO Career Center, click-based AJAX pagination
- aroragroup: Load More + post-scrape keyword filter

Core improvements:
- Early stop pagination: stops when all fingerprints on a page are already in DB
- multi_keyword_mode: separate — one scrape per keyword, cross-sweep dedup
- gimme-job list command to view collected postings
- Stored column in status command
- Telegram notification (replacing KakaoTalk)
- DB repo: count_by_site(), get_existing_fingerprints()

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
5 months ago