OmniRoute is a local, open-source AI gateway β one
OpenAI-compatible endpoint (http://localhost:20128/v1) that routes across many providers with
free-tier fallback. Job-Pilot connects to it like any other provider, so all the AI features
(company/salary intel, rΓ©sumΓ© analysis, interview prep, salary coach, and the apply-kit drafts)
work through it.
The OmniRoute (local) preset is selected by default, so the sidebar already points at
http://localhost:20128/v1 with model auto/best-free:

The π§ͺ Test connection button shows a β only once OmniRoute is actually running and has at least one active provider β see the setup steps below.
http://localhost:20128.sequenceDiagram
participant JP as Job-Pilot
participant OR as OmniRoute (:20128)
participant P as Provider (DeepSeek / Kimi / β¦)
JP->>OR: POST /v1/chat/completions (model = auto/best-free)
OR->>P: routes to a healthy provider
P-->>OR: completion
OR-->>JP: OpenAI-shaped response
OmniRoute exposes namespaced model routes β there is no bare auto. Sending auto (or
auto/best-chat) can fall through to a weak provider (e.g. felo-chat) that returns garbage
like .com.
| Use these β | Avoid these β |
|---|---|
auto/best-free, auto/smart (route to DeepSeek) |
bare auto, auto/best-chat (β felo-chat junk) |
Use π Load models to see everything your OmniRoute exposes, and π§ͺ Test connection to
confirm a model actually replies before you rely on it. If output ever comes back as a fragment,
Job-Pilot detects it and tells you to switch models. Some providers may return errors independent of
Job-Pilot (e.g. Kimi 402 if billing is unset, occasional 502s) β just pick another working route.
If you donβt want to run a gateway, the Groq (free) preset is the fastest path: sign up at console.groq.com β API Keys, paste the key, done. Full provider table is in the main README.