Files

231 lines
6.9 KiB
Markdown

Installed https://github.com/santifer/career-ops
Good — since career-ops explicitly supports Ollama as a free local engine, let's wire this to what you already built. Quick check first: which AI CLI do you want to drive it — Claude Code (uses your Claude subscription/API), or OpenCode (lets you point directly at your local Ollama for $0 cost)? Given the whole point of setting up Ollama was to avoid API costs, I'll assume **OpenCode + Ollama**, but flag if you'd rather use Claude Code.
**1. Check prerequisites**
```bash
node -v # need Node.js — if missing: brew install node
git --version
```
**2. Install career-ops**
```bash
npx @santifer/career-ops init
cd career-ops
```
This clones the latest release and installs dependencies for you.
**3. Install the browser engine for PDF generation**
```bash
npx playwright install chromium
```
career-ops uses Playwright (headless Chrome) to render your friend's CV/cover letter to PDF and to scan some job portals — this is a one-time download (~150-300MB).
**4. Get OpenCode (if you don't already have an AI CLI)**
```bash
npm i -g opencode-ai
```
**5. Point OpenCode at your local Ollama**
`See integration of opencode and ollama instead`
career-ops is CLI-agnostic — it just needs an AI CLI wired to a model. Configure OpenCode to talk to Ollama's OpenAI-compatible endpoint. In OpenCode's config (`~/.config/opencode/opencode.json` or via `opencode auth login` flow depending on version), set the local provider to:
```
base URL: http://localhost:11434/v1
model: qwen2.5-coder:14b (or whichever you pulled)
```
**6. Run the doctor check**
```bash
npm run doctor
```
This validates your setup (Node, Playwright, CLI config) and tells you specifically what's missing — much better than guessing.
**7. Launch and onboard**
```bash
opencode
```
Then inside the session, just start chatting — on first launch career-ops walks you through CV/profile setup conversationally rather than making you hand-edit YAML.
One honest caveat before you commit to the local-model path: career-ops's evaluation quality (fit scoring, CV tailoring, company research) leans on the model actually being good at instruction-following and reasoning across a long agentic session. A 14B local model will be noticeably weaker at this than Claude — worth testing on one real job posting before running your friend's whole batch through it, so you're not silently getting worse evaluations to save money.
Want me to walk through step 5's exact config file syntax once you've got OpenCode installed and can share what version/config format it's using?
## Integration of Opencode and Ollama
> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ollama.com/llms.txt
> Use this file to discover all available pages before exploring further.
# OpenCode
[OpenCode](https://opencode.ai) is an open-source coding agent that runs in your terminal, reads your project, edits files, and runs commands.
Ollama configures OpenCode to use local and cloud models.
## Get started
Launch OpenCode with Ollama:
```shell theme={"system"}
ollama launch opencode
```
## Capabilities
<div className="capability-list capability-list-full">
<div className="capability-list-grid">
<div className="capability-list-item">
<div className="capability-list-icon">
<Icon icon="comment" />
</div>
<div>
<div className="capability-list-heading">Chat</div>
<div className="capability-list-copy">Ask questions about a repository or task</div>
</div>
</div>
<div className="capability-list-item">
<div className="capability-list-icon">
<Icon icon="terminal" />
</div>
<div>
<div className="capability-list-heading">Command line</div>
<div className="capability-list-copy">Run commands from your working directory</div>
</div>
</div>
<div className="capability-list-item">
<div className="capability-list-icon">
<Icon icon="code" />
</div>
<div>
<div className="capability-list-heading">File edits</div>
<div className="capability-list-copy">Read and edit files in your project</div>
</div>
</div>
<div className="capability-list-item">
<div className="capability-list-icon">
<Icon icon="users" />
</div>
<div>
<div className="capability-list-heading">Subagents</div>
<div className="capability-list-copy">Split work across tasks</div>
</div>
</div>
<div className="capability-list-item">
<div className="capability-list-icon">
<Icon icon="file-text" />
</div>
<div>
<div className="capability-list-heading">Web fetch</div>
<div className="capability-list-copy">Fetch and summarize web pages</div>
</div>
</div>
<div className="capability-list-item">
<div className="capability-list-icon">
<Icon icon="image" />
</div>
<div>
<div className="capability-list-heading">Vision</div>
<div className="capability-list-copy">Send images and screenshots</div>
</div>
</div>
</div>
</div>
## Models
Choose a model with enough context for your repository.
<CardGroup cols={2}>
<Card title="Cloud models" icon="cloud" href="https://ollama.com/search?c=cloud">
Use larger models without downloading them.
</Card>
<Card title="Local models" icon="hard-drive" href="https://ollama.com/search?c=tools">
Choose a model and set a 64k+ context window.
</Card>
</CardGroup>
<Note>OpenCode requires a context length of 64k or higher. See [Context length](/context-length) for more information.</Note>
## Manual setup
<p className="manual-step-title">1. Install OpenCode</p>
<CodeGroup>
```shell macOS / Linux theme={"system"}
curl -fsSL https://opencode.ai/install | bash
```
```powershell Windows theme={"system"}
npm install -g opencode-ai
```
</CodeGroup>
<p className="manual-step-title">2. Configure Ollama as a provider</p>
Add an Ollama provider to `opencode.json`:
```json theme={"system"}
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"ollama": {
"npm": "@ai-sdk/openai-compatible",
"name": "Ollama",
"options": {
"baseURL": "http://localhost:11434/v1"
},
"models": {
"qwen3.5": {
"name": "qwen3.5"
}
}
}
}
}
```
<p className="manual-step-title">3. Run OpenCode</p>
```shell theme={"system"}
opencode
```
To configure OpenCode with Ollama without starting an interactive session:
```shell theme={"system"}
ollama launch opencode --config
```
### Configuration precedence
`ollama launch opencode` starts OpenCode with an inline config for the selected Ollama model. It does not overwrite `~/.config/opencode/opencode.json`; existing OpenCode settings still apply.
Models defined only in `opencode.json` do not appear in the `ollama launch` model picker.
See OpenCode's [config precedence](https://opencode.ai/docs/config/#precedence-order).