Skip to content

feat: add Avature provider - #233

Merged
amikai merged 1 commit into
mainfrom
claude/integrate-avature-provider-1318b1
Jul 19, 2026
Merged

feat: add Avature provider#233
amikai merged 1 commit into
mainfrom
claude/integrate-avature-provider-1318b1

Conversation

@amikai

@amikai amikai commented Jul 19, 2026

Copy link
Copy Markdown
Owner

Adds Avature as an ATS adapter behind search_jobs_by_company.

Avature has no public JSON surface — the customer REST API is auth-gated and the portal RSS feed is capped at 20 items with empty descriptions — so the client scrapes the server-rendered portal HTML. Recon findings that shaped the design:

  • ?search= is a platform-level full-text param (works on every tenant), but it indexes descriptions, so it is not a location filter; location gets a teaching error instead of soft-filtering.
  • jobOffset accepts arbitrary offsets while page size is tenant-config (6–20) and cannot be raised, so unified 20-job pages stitch consecutive fetches with an id-dedupe guard.
  • The results legend is per-portal optional (Koch hides it); without it, totals are the walk-proven lower bound.
  • Unknown job ids 302 to <portal>/Error (itself HTTP 404).
  • Facet selects are empty in static HTML (per-tenant numeric ids, JS-loaded options), so Filters returns none.

Seed roster: 5 live-verified portals (Bloomberg, Koch, One Call, Avature, Unifi incl. a custom domain). Fixtures are real captures across three portal themes; hurl --test passes live, verify-companies --provider avature is all OK, and the MCP stdio path was smoke-tested including an uncurated careers-URL tenant.

🤖 Generated with Claude Code

Avature exposes no public JSON surface (customer API is auth-gated, RSS
feed capped at 20 items), so the client scrapes the portal HTML: the
platform-level search param, arbitrary jobOffset stitching to unified
pages, and lower-bound totals for portals that hide the results legend.
Location and facets are rejected with teaching errors — search is
full-text over descriptions, and facet options only load via JS.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@amikai
amikai merged commit 72cae9c into main Jul 19, 2026
9 checks passed
@amikai
amikai deleted the claude/integrate-avature-provider-1318b1 branch July 19, 2026 14:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant