4. Add your CV

September 22, 2026 · View on GitHub

career-ops

santifer Måneder med at sende CV'er ud i stilheden. Så jeg byggede det filter, jeg havde brug for.
740 opslag. 68 ansøgt. 12 samtaler. 1 tilbud.
Jeg var den første bruger. Jeg fik jobbet. Så gjorde jeg det open source.
🌍 Læs på 17 sprog

Virksomheder bruger AI til at filtrere kandidater. Jeg gav kandidaterne AI, så de kan vælge virksomhederne.
På din egen maskine fortæller den dig, hvilke job der er ægte, hvilke der passer, og søger aldrig i dit navn.

Forfatterens egen jobsøgning: opslag markeret med rødt som „søg ikke“, før et eneste CV blev sendt

Den røde fane er produktet. Søg ikke. Hele historien →


Ansat med career-ops: verificeret antal

De, der kom efter mig, skrev ned, hvordan de blev ansat.

Ansættelseshistorier, du kan åbne og læse

Hvert kort er et offentligt issue, du kan åbne. Har du fået dit job? Efterlad dit kort →


WIRED      Business Insider      Featured on Product Hunt      GitHub Trending: #1 repository of the day (Trendshift)

Din tur

Indsæt ét job, du var ved at søge i aften. Kommer det tilbage som søg ikke, har du lige fået aftenen tilbage. Kommer det tilbage med en plan, ved du, hvad du skal gøre nu.

npx @santifer/career-ops init

Open source. Lokalt. I den AI-CLI, du allerede bruger. Gratis og lokale modeller inkluderet.

Du behøver ikke søge alene

Stilheden, efter du trykker send, handler ikke om dig. Nok mennesker så det samme til at skrive praksissen ned, i seks linjer:

Søg bedre, til færre. Signal frem for volumen. Beviser frem for nøgleord. Et menneske beslutter. Lokalt først. Værdighed på begge sider af bordet.

CareerOps-manifestet: antal underskrivere, live

Et par af dem, med deres egne ord.

Tre underskrifter på CareerOps-manifestet, med deres egne ord

Hver underskrift er et commit, du kan efterprøve. Læs dem alle, eller tilføj din →


Rekruttering reparerer ikke sig selv. Det kan de, der går igennem den, og de er allerede i rummet, hvor de sammenligner noter og fikser hinandens opsætninger. Det er her, rettelsen bliver skrevet. Et rum, ikke en klub. Lad os bygge sammen.

Discord: antal medlemmer på career-ops-serveren, live

Sponsorer

career-ops er gratis for kandidater, for altid. Virksomhederne herunder finansierer vedligeholderens tid og holder det sådan.

SerpApi

SerpApi · Build a portfolio project with live search data. SerpApi gives developers structured JSON/Markdown from Google Search, Maps, Shopping, and other engines through a simple API call.

Sponsorat køber tydeligt markeret synlighed, aldrig indflydelse: intet beløb ændrer køreplanen eller placerer noget i produktet. Sponsorer optræder aldrig i evalueringer, rangeringer eller anbefalinger.

Hvad career-ops gør for dig

Indsæt et job. Den fortæller dig, om aftenen er det værd.

  • Falsk eller forældet? Den markerer spøgelsesjob og svindel, før du skriver et ord.
  • Ikke dig? Den scorer rollen op mod dit rigtige CV og siger, at du skal springe et svagt match over. Du kan tilsidesætte den.
  • Værd at søge? Den skriver udkast til CV, ansøgning og svar. Du læser dem. Du sender dem.
  • Hvem skal jeg tale med? Den finder personen og skriver udkast til beskeden. Den sender den aldrig.
  • Hvor ender det hele? Hver ansøgning bliver på din maskine. Intet bliver uploadet til os.
  • Hvad bør jeg lære? Efter en stribe afslag sætter den navn på hullet.

De første kørsler er ujævne. Den kender dig ikke endnu. Tal med den: dit CV, hvad du vil, hvad du afviser. Tænk på det som en rekrutterers første uge.

Ved første start spørger den om alt det i chatten. Intet at konfigurere i hånden.

Hvad career-ops ikke gør

  • Sende en ansøgning automatisk. Den skriver udkast til svaret i hvert felt; du gennemgår og klikker Send. Scriptet laver aldrig et POST (prepare-application.mjs).
  • Sender en e-mail. Kun udkast. Der findes ingen mailtransport nogen steder i koden.
  • Ringer hjem. Ingen telemetri, ingen backend hos os. Dit CV går fra din maskine til den AI-udbyder, du har valgt, og ingen andre steder. Det eneste offentlige register er dette repository: HIRED.md og dets issues.
  • Presser dig til at søge under 4,0/5. Den siger, du skal lade være. Du kan tilsidesætte det, og den siger det.

Den omformulerer dit CV; den må aldrig opdigte det. I dag lever den regel i prompterne, endnu ikke i en håndhævende kontrol. Læs hvert CV, før du sender det. Detaljer i FAQ.

Funktioner

FunktionBeskrivelse
A-H-vurderingRolleresumé, CV-match (med hvor meget hvert krav betyder for dette opslag, og om vægten kom fra jobbeskrivelsens egen ordlyd, dens struktur eller et skøn, mærket pr. krav, og et skøn kan aldrig ligge i topbåndet), niveaustrategi, lønresearch, personalisering, samtaleforberedelse (STAR+R), plus et troværdighedstjek i blok G, der markerer svindel og spøgelsesjob, og et arbejdstilladelsessignal, der markerer en jobbeskrivelse med eksplicit ingen visumsponsorering som en hård blokering
Human-in-the-LoopAI vurderer og anbefaler, du beslutter og handler. Systemet indsender aldrig en ansøgning: du har altid det sidste ord
ATS-PDF-genereringCV'er med indsatte nøgleord i Space Grotesk + DM Sans-design
AnsøgningsgeneratorResearchbaserede ansøgninger med spejling af nøgleord, fire interaktive vinkelspørgsmål (hvorfor/problemer/tilgang/tone), godkendelse af udkast i chatten og A4-PDF via samme HTML + Playwright-pipeline som CV'er. Laver automatisk udkast ved hver vurdering; færdiggør og generér efter behov via /career-ops cover
Ud over CV'etVirksomhedsresearch (deep) afdækker AI-strategi, seneste træk, engineering-kultur og den vinkel, din profil bør tage. Kontaktsøgning (contacto) finder den hiring manager, rekrutterer eller kollega, det er værd at kontakte, og skriver et LinkedIn-udkast på ≤300 tegn tilpasset hver kontakttype. Formelle udkast til ansøgningsmails (email) gør en vurderet rapport eller indsat jobbeskrivelse til emnelinje, brødtekst og tjekliste over vedhæftninger uden at sende, indsende eller klikke på noget. Ansøgninger sætter dig i køen; research giver dig en samtale.
MønsteranalyseAfslagsmønstre og fremgangsrater pr. ATS-kanal (analyze-patterns.mjs), tragtstatistik for hele søgningen (stats.mjs), registrering af genopslag og spøgelsesjob (detect-reposts.mjs)
Alt det andet, den gør
FunktionBeskrivelse
Auto-pipelineIndsæt en URL, få en fuld vurdering + PDF + tracker-post
Interview-historiebankSamler STAR+Reflection-historier på tværs af vurderinger: 5-10 masterhistorier, der besvarer ethvert adfærdsspørgsmål
ForhandlingsscriptsRammer for lønforhandling, modsvar til geografisk rabat, brug af konkurrerende tilbud
Udkast til ansøgningsmailsFormelle mails til rekrutterer, henvisning eller uopfordret ansøgning fra en rapport eller indsat jobbeskrivelse, med emnelinje, tjekliste over vedhæftninger, dokumenterede matchpunkter og en kontaktblok fra din profil. Kun udkast: career-ops sender, indsender eller klikker aldrig på noget.
Portalscanner100+ forudkonfigurerede virksomheder (Anthropic, OpenAI, ElevenLabs, Retool, n8n...) + egne søgninger på tværs af Ashby, Greenhouse, Lever, Wellfound
Find finansierede virksomhederKommandoen company:funded (gennemse først) viser nyligt finansierede virksomheder og kildediagnostik fra strukturerede offentlige feeds uden at redigere dine data
Batch-behandlingParallel vurdering med headless CLI-workers (claude -p / opencode run)
Dashboard TUITerminal-UI til at gennemse, filtrere og sortere din pipeline
Pipeline-integritetAutomatisk sammenfletning, deduplikering, statusnormalisering, sundhedstjek
Interview-pakkeTidsblokkede forberedelsesplaner, øvesessioner med feedback, debriefs efter samtalen (interview/) og en detektor for røde flag hos virksomheden (interview-redflag)
TilbudsfasenFølgesvend til kontraktlæsning: gennemgang klausul for klausul plus en spørgsmålsliste til advokaten (offer-prep), og en analyse af gabet mellem ønsket, annonceret og faktisk løn (salary-gap.mjs)
Opfølgning og svarBeregner af opfølgningskadence og forberedte påmindelser (followup-cadence.mjs, followup-seed.mjs); klassificering af arbejdsgiverens svar til tracker-opdateringer (reply-watch)
Plugin-systemTilvalgsintegrationer (Gmail, Notion, Apify + et community-register), slået fra som standard; se docs/PLUGINS.md

Hurtig start

Hurtigste vej: én kommando:

npx @santifer/career-ops init

💡 npx følger med Node.js: det kører installationen én gang uden at installere noget globalt. Ingen Node endnu? Installer den først. (Bruger du allerede en Claude Code / Gemini / Codex CLI? Så har du den allerede.)

Det kloner den seneste udgivelse ind i ./career-ops og installerer afhængigheder. Derefter:

cd career-ops
claude   # or codex / qwen / opencode / agy / grok — open your AI CLI here

Ved første start fører career-ops dig gennem opsætningen (dit CV, din profil og dine målroller) bare ved at chatte. Intet at redigere i hånden.

Foretrækker du at sætte det op manuelt? (git clone)
git clone https://github.com/career-ops-hq/career-ops.git
cd career-ops && npm install
npx playwright install chromium   # only needed for PDF generation

# 2. Check setup
npm run doctor                     # Validates all prerequisites

# 3. Configure
cp config/profile.example.yml config/profile.yml  # Edit with your details
cp templates/portals.example.yml portals.yml       # Customize companies

# 4. Add your CV
# Create cv.md in the project root with your CV in markdown

# 5. Open your AI CLI in this directory
claude   # or codex / opencode / qwen / agy / grok

# Then ask your CLI to adapt the system to you:
# "Change the archetypes to backend engineering roles"
# "Translate the modes to English"
# "Add these 5 companies to portals.yml"
# "Update my profile with this CV I'm pasting"

# 6. Start using
# Paste a job URL or JD text to trigger auto-pipeline
# If your CLI supports slash commands, use /career-ops (or its CLI-specific alias)
# In Codex, ask for the same mode in plain language, e.g.:
# "Run the career-ops scan mode"
# "Run the career-ops pipeline mode for data/pipeline.md"
# "Run the career-ops pdf mode for the latest evaluated role"
# "Run the career-ops tracker mode and summarize the current statuses"

Global installation

npm i -g @santifer/career-ops

Det installerer career-ops-binæren globalt, så du kan køre den direkte i stedet for via npx. I modsætning til npx @santifer/career-ops init (som opretter en projektmappe) giver den globale installation dig en permanent career-ops-kommando, der er tilgængelig overalt i din terminal.

Hvilken skal du bruge?

  • npx @santifer/career-ops init: bedst til første brug; opretter en dedikeret projektmappe.
  • npm i -g @santifer/career-ops: bedst, når du har en projektmappe og vil køre career-ops-kommandoer direkte.

Systemet er designet til at blive tilpasset af din AI-kodnings-CLI selv. Tilstande, arketyper, scorevægte, forhandlingsscripts: bed den bare om at ændre dem. Den læser de samme filer, som den bruger, så den ved præcis, hvad den skal redigere.

Se docs/SETUP.md for den fulde opsætningsguide, docs/RUNNING_ON_A_BUDGET.md for at køre career-ops billigt med egne eller lokale modeller (og docs/FREE_TIER.md for at køre det gratis på Antigravity CLI's gratis niveau), docs/AUTOMATION.md for planlægning af tilbagevendende scanninger og en opskrift på triage-til-shortlist uden tokens, docs/APPLY_AUTOFILL.md for detaljer om ATS-autoudfyldningsflowet, docs/LINKEDIN_JOIN.md for at krydstjekke en eksport af dine LinkedIn-forbindelser mod virksomhederne i din tragt, og docs/FAQ.md for svar på almindelige opsætningsspørgsmål, herunder hvordan historiers oprindelse forhindrer opdigtede tal. Designprincipper ligger i ARCHITECTURE.md; runtime-flows i docs/ARCHITECTURE.md.

Brug

career-ops bruger en fælles kommandorouter. I CLI'er, der registrerer slash-kommandoer, ser det sådan ud:

/career-ops           → Vis alle tilgængelige kommandoer
/career-ops {JD}      → AUTO-PIPELINE: vurdering + rapport + PDF + tracker (indsæt tekst eller URL)
/career-ops pipeline  → Behandl ventende URL'er fra indbakken (data/pipeline.md)
/career-ops oferta    → Kun vurdering, blok A til H (ingen automatisk PDF)
/career-ops ofertas   → Sammenlign og rangér flere opslag
/career-ops contacto  → LinkedIn-trækket: find kontakter + skriv udkast til besked
/career-ops deep      → Prompt til dyb research af virksomheden
/career-ops interview-prep → Generér et virksomhedsspecifikt forberedelsesdokument til samtalen
/career-ops interview    → Interaktivt onboarding-interview om profil og CV
/career-ops eu-swe    → Kalibrér en europæisk SWE-ansøgning før CV, ansøgning eller samtale
/career-ops eu-fintech → Scan 21 europæiske fintech-portaler for Product Manager-roller (uden tokens)
/career-ops interview/plan → Tidsblokket forberedelsesplan til en kommende samtale
/career-ops interview/practice → Øvesamtale, ét spørgsmål ad gangen med feedback
/career-ops interview/debrief → Debrief efter samtalen: luk huller, forudsig næste runde
/career-ops interview-redflag → Analysér arbejdsgiverens advarselstegn, før du starter
/career-ops pdf       → Kun PDF, ATS-optimeret CV
/career-ops text      → Tilpasset markdown-CV (spejler cv.md, ingen PDF)
/career-ops latex     → Eksportér CV som LaTeX/Overleaf .tex
/career-ops latex-tex → Tilpas din egen resume.tex på stedet (tilvalg; cv.md forbliver standard)
/career-ops cover     → Ansøgning: selvstændig indsat jobbeskrivelse eller /career-ops cover {slug}
/career-ops email     → Udkast til formel ansøgningsmail (kun udkast; sender, indsender eller klikker aldrig)
/career-ops add       → Tilføj et projekt/en artikel/en rolle til dit CV (hent + forhåndsvis + bekræft)
/career-ops expand    → Find og tilføj manglende kompetencer automatisk fra profil-links
/career-ops training  → Vurdér kursus/certificering mod dit North Star
/career-ops project   → Vurdér en idé til et porteføljeprojekt
/career-ops tracker   → Overblik over ansøgningsstatus
/career-ops agent-inbox → Kø/tøm anmodninger til næste session (data/agent-inbox.md)
/career-ops apply     → Live ansøgningsassistent (læser formularen + genererer svar)
/career-ops scan      → Scan portaler og find nye opslag
/career-ops discover  → Omsæt en virksomhedsliste til scanbare ATS-boards + tilføj til portals.yml (uden tokens)
/career-ops batch     → Batch-behandling med parallelle workers
/career-ops patterns  → Analysér afslagsmønstre og forbedr målretningen
/career-ops offer-prep → Læs et modtaget tilbud/en kontrakt sammen med kandidaten: gennemgang af klausuler + spørgsmål til advokaten (ikke juridisk rådgivning)
/career-ops titles    → Foreslå beslægtede jobtitler ud fra dit CV for at udvide søgningen
/career-ops upskill   → Samlet analyse af kompetencegab ud fra dine vurderede rapporter
/career-ops followup  → Tracker for opfølgningskadence: markér forfaldne, generér udkast
/career-ops reply-watch → Klassificér arbejdsgiverens svar og foreslå tracker-opdateringer
/career-ops outcome   → Registrér ansøgningens udfald og arkivér artefakter
/career-ops calibrate → Rådgivende rapport: forudsiger dine vurderingsscorer dine reelle udfald? Læser /outcome-data; ændrer aldrig scoringen
/career-ops update    → Opdatér career-ops' systemfiler med diff-forhåndsvisning + kompatibilitetstjek

Eller indsæt bare en job-URL eller beskrivelse direkte: career-ops registrerer den automatisk og kører den fulde pipeline.

I Codex er slash-kommandoer ikke garanteret. Brug i stedet de samme tilstandsnavne i en prompt, eller kald dem fra codex exec.

Sådan virker det

You paste a job URL or description
        │
        ▼
┌──────────────────┐
│  Archetype       │  Classifies: LLMOps / Agentic / PM / SA / FDE / Transformation
│  Detection       │
└────────┬─────────┘
         │
┌────────▼─────────┐
│  A-H Evaluation  │  Match, gaps, comp research, STAR stories, legitimacy
│  (reads cv.md)   │
└────────┬─────────┘
         │
    ┌────┼────┐
    ▼    ▼    ▼
 Report  PDF  Tracker
  .md   .pdf  entry

Antigravity CLI-integration

career-ops understøtter Antigravity CLI indbygget, på samme måde som Claude Code og OpenCode. Alle slash-kommandoer er tilgængelige gennem det fælles skill-indgangspunkt med samme modes/*.md-vurderingslogik.

Google har flyttet forbrugeradgangen til Gemini CLI over på Antigravity CLI. GEMINI.md er nu en virkningsløs kompatibilitetsvagt, så Antigravity ikke dublerer de fulde projektinstruktioner, når den læser både AGENTS.md og GEMINI.md.

Indbygget Antigravity CLI

# 1. Run in the career-ops directory
cd career-ops
agy

# 2. Use the unified /career-ops command with subcommands:
/career-ops "Senior AI Engineer at Anthropic..."
/career-ops pipeline
/career-ops scan
/career-ops pdf
/career-ops tracker

Skillet er defineret efter den åbne standard i .agents/skills/career-ops/SKILL.md og symlinket/refereret for hver understøttet CLI (fx .claude/, .cursor/, .qwen/, .antigravitycli/, .grok/).

Codex-integration

career-ops understøtter Codex gennem den samme fælles router, men kaldemodellen er anderledes end for CLI'er, der automatisk registrerer slash-kommandoer. Den fulde guide findes i docs/CODEX.md.

Interaktiv Codex

cd career-ops
codex

Slash-kommandoer er ikke garanteret i Codex. Hvis /career-ops ikke er tilgængelig, så bed Codex om at køre tilstanden direkte på almindeligt sprog:

Evaluate this JD with career-ops auto-pipeline: https://company.com/jobs/123
Run the career-ops scan mode and summarize new matches.
Run the career-ops pipeline mode for data/pipeline.md.
Run the career-ops pdf mode for the latest evaluated role.
Run the career-ops tracker mode and summarize the current statuses.

Codex i ét kald (codex exec)

codex exec "Evaluate this JD with career-ops auto-pipeline: https://company.com/jobs/123"
codex exec "Run career-ops scan mode in this repo and summarize new matches."
codex exec "Run career-ops pipeline mode for data/pipeline.md."
codex exec "Run career-ops pdf mode for the latest evaluated role."
codex exec "Run career-ops tracker mode and summarize the current statuses."

Grok Build CLI-integration

career-ops understøtter Grok Build CLI indbygget, på samme måde som Claude Code og OpenCode. AGENTS.md indlæses automatisk som projektregler, og alle slash-kommandoer er tilgængelige gennem det fælles skill-indgangspunkt.

Indbygget Grok Build CLI

# 1. Run in the career-ops directory
cd career-ops
grok

# 2. Use the unified /career-ops command with subcommands:
/career-ops "Senior AI Engineer at Anthropic..."
/career-ops pipeline
/career-ops scan
/career-ops pdf
/career-ops tracker

Til headless batch-workers, brug grok -p "prompt" (tilføj --yolo for automatisk at godkende værktøjskørsler).

Selvstændigt Gemini API-script (ingen CLI-installation nødvendig)

# 1. Get a free API key at https://aistudio.google.com/apikey
cp .env.example .env
# Edit .env, set GEMINI_API_KEY=your_key_here

# 2. Install dependencies
npm install

# 3. Evaluate a job description
node gemini-eval.mjs "We are looking for a Senior AI Engineer..."
node gemini-eval.mjs --file ./jds/my-job.txt
node agent-inbox.mjs add "..."   # queue a request for the next session
npm run gemini:eval -- "JD text here"

Gratis niveau: Begge muligheder virker uden betaling. Den indbyggede CLI bruger Google OAuth; API-scriptet bruger gemini-3.6-flash (rategrænser afhænger af model og niveau; se Google AI-dokumentationen for aktuelle kvoter).

Forudkonfigurerede portaler

Scanneren kommer med 100+ virksomheder klar til scanning og 45+ søgninger på tværs af de store jobportaler. Kopiér templates/portals.example.yml til portals.yml og tilføj dine egne:

AI-laboratorier: Anthropic, OpenAI, Mistral, Cohere, LangChain, Pinecone Stemme-AI: ElevenLabs, PolyAI, Parloa, Hume AI, Deepgram, Vapi, Bland AI AI-platforme: Retool, Airtable, Vercel, Temporal, Glean, Arize AI Kontaktcenter: Ada, LivePerson, Sierra, Decagon, Talkdesk, Genesys Enterprise: Salesforce, Twilio, Gong, Dialpad LLMOps: Langfuse, Weights & Biases, Lindy, Cognigy, Speechmatics Automatisering: n8n, Zapier, Make.com Europa: Factorial, Attio, Tinybird, Clarity AI, Travelperk

Jobportaler, der søges i: 55+ udbydermoduler dækker ATS-API'er, feeds for hele portaler, XML/RSS-feeds, markdown-feeds og lokale parsere. Se Understøttede jobportaler for den fulde tabel.

Som standard stoler node scan.mjs (alias npm run scan) på det, hvert ATS-feed returnerer. Nogle virksomheder lader forældede opslag stå i deres offentlige API, selv efter stillingen er lukket, så de udløbne poster kan sive ind i pipeline.md. Giv --verify for at starte Playwright efter API-gennemløbet og frasortere udløbne opslag, før de rammer pipelinen:

node scan.mjs --verify          # zero-token discovery + Playwright liveness check

Verifikationen er sekventiel og kører kun på nye opslag (efter deduplikering), så omkostningen forbliver begrænset.

Dashboard TUI

Det indbyggede terminal-dashboard lader dig gennemse din pipeline visuelt:

npm run serve:dashboard   # launch the TUI
npm run build:dashboard   # optional: build the standalone binary

Funktioner: 6 filterfaner, 4 sorteringstilstande, grupperet/flad visning, forhåndsvisninger med lazy loading, statusændringer inline.

Der findes også en eksperimentel web-UI (alfa, tilvalg: intet kører, medmindre du starter den): se web/README.md.

Projektstruktur

career-ops/
├── AGENTS.md                    # Canonical agent instructions (all CLIs)
├── CLAUDE.md                    # Claude Code wrapper (imports AGENTS.md)
├── CODEX.md                     # Codex wrapper (imports AGENTS.md)
├── OPENCODE.md                  # OpenCode wrapper (imports AGENTS.md)
├── GEMINI.md                    # Legacy no-op guard to avoid Antigravity duplicate context
├── cv.md                        # Your CV (create this)
├── article-digest.md            # Your proof points (optional)
├── config/
│   └── profile.example.yml      # Template for your profile
├── modes/                       # Skill modes
│   ├── _shared.md               # Shared context (customize this)
│   ├── oferta.md                # Single evaluation
│   ├── pdf.md                   # PDF generation
│   ├── cover.md                 # Cover letter generation
│   ├── email.md                 # Formal application email drafts
│   ├── scan.md                  # Portal scanner
│   ├── batch.md                 # Batch processing
│   └── ...
├── templates/
│   ├── cv-template.html         # ATS-optimized CV template
│   ├── portals.example.yml      # Scanner config template
│   └── states.yml               # Canonical statuses
├── batch/
│   ├── batch-prompt.md          # Self-contained worker prompt
│   └── batch-runner.sh          # Orchestrator script
├── dashboard/                   # Go TUI pipeline viewer
├── data/                        # Your tracking data (gitignored)
├── reports/                     # Evaluation reports (gitignored)
├── output/                      # Generated PDFs (gitignored)
├── fonts/                       # Space Grotesk + DM Sans
├── docs/                        # Setup, customization, budget guide, architecture
└── examples/                    # Sample CV, report, proof points

Ekstern datamappe (valgfri)

Som standard ligger brugerlagets data (såsom cv.md, portals.yml og mapperne data/, reports/, output/) i projektets rodmappe.

For at adskille dine personlige data fra koden (så det bliver lettere at skifte branch, hente opdateringer eller teste flere profiler) kan du konfigurere en ekstern datamappe med følgende rækkefølge:

  1. Miljøvariabler: Sæt miljøvariablen CAREER_OPS_ROOT eller CAREER_OPS_DATA_DIR:
    export CAREER_OPS_ROOT=~/my-career-data
    
  2. Markørfil: Opret en .career-ops-data-fil i repository-roden med stien til din datamappe.
  3. Standard: Repository-roden.

Når det er afgjort, opløses og skrives alle brugerfiler relativt til den mappe, mens promptfiler og scripts fortsat opløses relativt til repositoryet.

  • Tilsidesæt tracker: Du kan også sætte CAREER_OPS_TRACKER for direkte at tilsidesætte stien til ansøgningstrackerens fil.
  • Skrivninger: Alle skriveoperationer (såsom sammenfletninger) retter sig kanonisk mod {DATA_ROOT}/data/applications.md.

Go-dashboardets TUI, Node.js-scripts og AI-agenttilstande respekterer alle automatisk denne rækkefølge.

Teknologistak

Claude Code Node.js Playwright Go Bubble Tea

  • Agent: AI-kodnings-CLI med fælles skills og tilstande (AGENTS.md + CLI-wrapper)
  • PDF: Playwright + HTML-skabelon
  • Ansøgninger: HTML-skabelon + Playwright (A4-PDF, samme pipeline som CV'er)
  • Scanner: Playwright + Greenhouse API + WebSearch
  • Dashboard: Go + Bubble Tea + Lipgloss (Catppuccin Mocha-tema)
  • Data: Markdown-tabeller + YAML-konfiguration + TSV-batchfiler

Latest release

Built with Claude Code

Kører også i enhver CLI, der følger agent skill-standarden. Se understøttede CLI'er.
Claude Code OpenCode Antigravity CLI Codex Qwen Kimi GitHub Copilot Grok Build CLI
Node.js Go Playwright Bubble Tea MIT Trademark Policy

Også open source

  • cv-santiago: Porteføljesitet (santifer.io) med AI-chatbot, LLMOps-dashboard og casestudier. Hvis du har brug for en portefølje at vise frem ved siden af din jobsøgning, så fork det og gør det til dit eget.

FAQ

Hvad er career-ops? career-ops (career-ops.org, også kendt som careerops) er en open source AI-jobsøgning, der kører lokalt i din AI-kodnings-CLI (Claude Code, Codex, OpenCode og andre) og overlader hver beslutning til dig. Den vurderer jobopslag mod dit CV, genererer ATS-tilpassede PDF'er, finder den rette person at kontakte og holder styr på alt ét sted: du har altid det sidste ord. Den er den første referenceimplementering af CareerOps-manifestet.

Kan det tilpassede CV finde på ting? Det må det ikke, og prompterne siger det: omformuler, opdigt aldrig. Reglen håndhæves endnu ikke af en kontrol i koden. To åbne issues følger det: #2677 (jobtitler skal matche cv.md) og #1411 (troskabskontrol, der blokerer ved afvigelse). Indtil de er merget: læs hvert CV, før du sender det. Den juridiske ansvarsfraskrivelse siger det samme med flere ord.

Kan jeg køre career-ops gratis eller på en billigere / lokal model? Ja. career-ops er CLI-uafhængig og kører på gratis og lokale modeller (via gratis OpenRouter-modeller, Ollama eller ethvert OpenAI-kompatibelt endpoint), så du er ikke bundet til et betalt abonnement. Se docs/RUNNING_ON_A_BUDGET.md for den fulde opsætning.

Jeg betaler for Claude Pro/Max, men career-ops brænder API-kredit af. Hvorfor? Fordi en ANTHROPIC_API_KEY i dit miljø går forud for dit indloggede abonnement: CLI'en bruger nøglen og fakturerer pr. token. Kør echo $ANTHROPIC_API_KEY, og hvis den udskriver noget, så fjern den fra din shell-profil, genstart terminalen og kør /login. Batch-tilstand er undtagelsen, da claude -p-workers ikke bruger det interaktive login: kør claude setup-token én gang og eksportér resultatet som CLAUDE_CODE_OAUTH_TOKEN. Fuld gennemgang i docs/RUNNING_ON_A_BUDGET.md.

Hvilke AI-CLI'er virker career-ops med? career-ops kører på enhver større AI-kodnings-CLI (Claude Code, Codex, Gemini / Antigravity, OpenCode, Grok, Qwen og flere) gennem den åbne Agent Skill Standard, så den er aldrig låst til én leverandør. Brug den CLI, du allerede har.

Hvordan installerer jeg career-ops på Windows? career-ops kører på Windows. Platformspecifik opsætning og de kendte faldgruber (Git Bash-detektion, linjeskift, Opgavestyring) findes i docs/WINDOWS.md. Hvis skills ikke indlæses med en symlink-fejl under installationen, findes løsningen i docs/FAQ.md. Fulde trin findes i docs/SETUP.md.

Søger career-ops job for mig automatisk? Nej. career-ops er et filter, ikke en spray-and-pray-autosøger. AI'en vurderer, rangerer og skriver udkast; du gennemgår og beslutter. Den indsender, sender eller klikker aldrig på noget: du har altid det sidste ord. Det human-in-the-loop-design er hele pointen.

Er career-ops gratis og open source? Ja. career-ops er gratis og open source, og for kandidaten vil det altid være sådan: det er den første referenceimplementering af CareerOps-manifestet. Læs det, og hvis det siger, hvad du tror på, så skriv under.

Om forfatteren

Jeg er Santiago Fernández de Valderrama Aparicio (santifer): Head of Applied AI, tidligere stifter (byggede og solgte en virksomhed, der stadig kører med mit navn på). Jeg byggede career-ops til at styre min egen jobsøgning. Det virkede: jeg brugte det til at lande min nuværende stilling.

Nysgerrig efter, hvordan dette repository vedligeholdes på cirka 4 timer om ugen? Læs Agentic maintenance: how career-ops is run by a fleet of AI agents.

Min portefølje og andre open source-projekter → santifer.io

Wikidata: Santiago Fernández de Valderrama Aparicio · career-ops.

Juridisk ansvarsfraskrivelse

career-ops er et lokalt open source-værktøj, IKKE en hostet tjeneste. Ved at bruge denne software anerkender du:

  1. Du kontrollerer dine data. Dit CV, dine kontaktoplysninger og personlige data bliver på din maskine og sendes direkte til den AI-udbyder, du vælger (Anthropic, OpenAI osv.). Vi indsamler, gemmer eller har ikke adgang til nogen af dine data.
  2. Du kontrollerer AI'en. Standardprompterne instruerer AI'en i ikke at indsende ansøgninger automatisk, men AI-modeller kan opføre sig uforudsigeligt. Hvis du ændrer prompterne eller bruger andre modeller, gør du det på egen risiko. Gennemgå altid AI-genereret indhold for nøjagtighed, før du sender.
  3. Du overholder tredjeparters vilkår. Du skal bruge dette værktøj i overensstemmelse med vilkårene for de karriereportaler, du interagerer med (Greenhouse, Lever, Workday, LinkedIn osv.). Brug ikke dette værktøj til at spamme arbejdsgivere eller overbelaste ATS-systemer.
  4. Ingen garantier. Vurderinger er anbefalinger, ikke sandhed. AI-modeller kan hallucinere færdigheder eller erfaring. Forfatterne er ikke ansvarlige for beskæftigelsesresultater, afviste ansøgninger, kontobegrænsninger eller andre konsekvenser.

Se LEGAL_DISCLAIMER.md for alle detaljer. Denne software leveres under MIT-licensen "som den er", uden nogen form for garanti.

Bidragydere

Alle, der har leveret kode, dokumentation, oversættelser eller tests, står i CONTRIBUTORS.md, inklusive bidrag uden kode, som grafen ovenfor ikke kan vise.

Blev du ansat med career-ops? Del din historie!

Licens og varemærke

Koden er licenseret under MIT. Navnet og brandet "career-ops" er underlagt varemærkepolitikken, tilladende for community-brug, forbeholdt kommerciel produktnavngivning og anbefalinger.

Stjernehistorik

Live star telemetry of career-ops-hq/career-ops

Skabt og vedligeholdt af Santiago Fernández de Valderrama Aparicio (@santifer)

Lad os forbinde

Website LinkedIn X Discord Email