Skip to content

detect_ats: fallback for companies not in registry #10

@prPMDev

Description

@prPMDev

Context

During user testing, some companies returned 0 results with no way to distinguish between "not in registry", "uses unsupported ATS", or "wrong slug":

"SimplePractice: 0 in ats-index (maybe the posting is old/expired). Skip."

Currently `detectAts` only checks ATS platforms with the literal slug. No variant attempts, no registry-independent fallback.

Proposal

Extend `detectAts(companyName)`:

  1. Generate slug variants — `simple-practice`, `simplepractice`, `simple_practice`, lowercase, hyphens/underscores stripped
  2. Try all adapters × all variants in parallel (rate-limit friendly — max N concurrent)
  3. Return a richer result with provenance:

```js
[
{ ats: 'greenhouse', slug: 'simplepractice', source: 'detected-live', confidence: 'high' },
{ ats: 'lever', slug: 'simple-practice', source: 'registry', confidence: 'high' },
]
```

Acceptance

  • A company not in the registry but with a Greenhouse/Lever/Ashby board is found
  • Clear empty result when truly nothing matches
  • Concurrent request cap (e.g., 6 parallel) to avoid hammering APIs
  • Works with real company name strings ("Simple Practice", "SimplePractice Inc")
  • Unit tests with mocked `fetch`

Why this matters for MCP

A user asking an AI "does Company X hire?" shouldn't need to know their ATS. The `detect_ats` MCP tool should just work on any name.

Dependency

Depends on #4 (registry expansion) but doesn't block on it — registry is a shortcut, detect-live is the floor.

Metadata

Metadata

Assignees

No one assigned

    Labels

    dataRegistry, data quality, coverageenhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions