Tools
A Claude skill for Berlin job hunting
I built a free, open-source skill that job-hunts Berlin from your terminal. Pegel supplies live startup roles from public ATS feeds. It keeps German requirements and visa facts honest, and shows salary only when the employer disclosed one. The skill finds roles and checks your fit. It drafts a truthful application in the shape German recruiters expect, then keeps the decisions you log in a private file on your machine. It stops at the door. You apply.
npx skills add ElxMaj/pegel-berlin-job-skillWorks with Claude Code, Cursor, Codex and every agent the skills CLI supports. To install by hand instead: clone the repo and copy it to ~/.claude/skills/pegel-berlin-jobs. Review any skill before use; skills run with your agent's permissions.
How it works
Ask for Berlin roles the way you would ask a person: backend, no German, visa sponsored, salary disclosed. The skill queries the same live inventory this site runs on. Where Pegel does not know something, the answer is "unknown", not a guess.
Point it at your CV and a role. It reads the file locally, on your machine, and returns a gap analysis in three buckets: what genuinely matches, what is missing, what is a stretch. It never inflates the match to be nice.
It drafts a role-specific CV in the shape German recruiters expect (the tabular Lebenslauf) plus a cover letter when the posting actually wants one. German or English follows a real decision rule, not a coin flip. Nothing goes in that is not already true in your CV.
Interview prep from the company facts Pegel tracks, an offer check against German employment law (Probezeit, the § 622 BGB notice ladder, vacation minimums), and EU Blue Card threshold maths done in code so the model cannot fudge the number.
A fresh search used to return roles you had already dismissed or applied to. The skill now keeps every decision you log across sessions in a local JSON file. No Pegel account is created, and the file is never sent back to Pegel.
Normal searches hide every role already in the log. Shortlisted roles stay available when you ask for them.
Each status change appends a dated event instead of replacing the past. The skill never turns silence into a rejection or guesses an outcome.
You decide whether to save a short note or a contact name. Raw emails and message bodies do not belong in the log.
The public README documents the file format and all eight statuses. It also explains migration behavior.
These are not preferences. They are the product.
It never applies for you.
It surfaces the apply link. You click it. Auto-apply tools violate the ATS terms of service and get accounts banned; applying well beats applying at volume.
It never invents a fact.
No salary inferred from seniority, no visa answer inferred from company size. Unknown stays unknown, with a note on how to find out.
It never fabricates your experience.
No invented employer, date, tool, degree, or metric. A missing qualification is a fact to work with, not a gap to paper over.
It never sends your CV anywhere.
The CV is read locally on your machine. No upload, no server-side storage, nothing leaves your computer.
It never keyword-stuffs.
It reorders and re-emphasises what is truthfully there. Stuffing gets filtered by the systems it tries to game and reads as noise to the humans behind them.
- “Find me Berlin backend roles that need no German and sponsor visas.”
- “Here is my CV. Which of these roles actually fit me?”
- “Prepare my application for the second one, in English.”
- “Shortlist the first role. Note that I need to check its German requirement.”
- “Show my shortlisted roles, then open the history for the first one.”
The skill also ships a query script you can run directly, plus reference files on German application norms, immigration rules and employment law, each one date-stamped.
MIT licensed, no account, no tracking. The code, the eval suite and the full trust policy are public at github.com/ElxMaj/pegel-berlin-job-skill. It runs inside an AI coding agent such as Claude Code; this page installs it, it does not run it in the browser. Job data comes from the same public API anyone can use.