bama
BAMA: Build Any Mac App. Agent skills to research, clone, design, build, optimize, and test native macOS apps with Swift and SwiftUI.
翻译准备中
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证A job-search agent that runs in your own Claude Code: it reads public LinkedIn postings against your criteria and shows why each role passed. Local-first, open source.
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
Stop reading every job description yourself. FTJA is a job-search agent
that runs inside your own Claude Code. You give it your resume and your
standards; it reads public LinkedIn postings for you and shows only the roles
worth your attention, with the reason for each one.
Click the recording to watch it full size.
Beta. Built and tested with Claude Code on macOS. Codex and other
agents come next. Until then, fork it and make it yours.查看完整 README ↗Stop reading every job description yourself. FTJA is a job-search agent that runs inside your own Claude Code. You give it your resume and your standards; it reads public LinkedIn postings for you and shows only the roles worth your attention, with the reason for each one.
Click the recording to watch it full size.
Beta. Built and tested with Claude Code on macOS and Windows. Scheduled runs and the "run finished" notification are macOS only. Linux is not supported yet: most of it should work, but it is untested and the resume chooser does not open there. Codex and other agents come next. Until then, fork it and make it yours.
It is free and open source. There is no FTJA account and no FTJA server: it is a folder on your computer and a set of skills your agent follows.
You need a Mac or a Windows PC and Claude Code. Setup installs Git and Python if your computer does not have them yet.
Open https://ftja.vercel.app and copy the setup prompt, or copy it from here:
Set up FTJA: clone https://github.com/TaegyuJEONG/ftja.git into a new local FTJA folder, connect this session to it, then follow .claude/skills/ftja-setup/SKILL.md. Do not guess my preferences.
Paste it into a new Claude Code session.
That is all. Your agent downloads FTJA, opens a web view next to the chat and walks you through four steps: add your resume, confirm the profile it drafts, confirm your search settings, and answer three short questions that become your judgment rubric.
/ftja-run. The web view shows the run as it
happens and then the results./ftja-run, your agent reads those reasons and proposes changes to your
rubric. Nothing changes until you approve it./ftja-remote and your
agent writes the keywords and rules for where you live; the results
download as a table.How much of your Claude plan a run uses. A run is real work for your agent, and it scales with how many postings it reads. Our largest run so far (4 titles, up to 1,000 postings each, 1,991 scraped) ran for well over an hour, used roughly 12 million tokens by the agent's own estimate, and hit the session usage limit partway through. Start with one or two titles and 100 results per title, then widen.
Your resume, profile, criteria, run history and results are files in your FTJA folder. They are excluded from git, so updating FTJA never uploads them. FTJA has no server of its own and collects nothing.
What does leave your computer:
VERSION file, at most twice a day, to
tell you when an update exists. It sends nothing about you. Set
FTJA_NO_UPDATE_CHECK=1 to turn it off.The web view runs on 127.0.0.1 only and refuses requests from other sites.
The landing page at ftja.vercel.app is separate from the tool. It uses Vercel Web Analytics, which counts page visits without cookies. The tool itself has no analytics.
Next
Then
Vision
The roadmap is a direction, not a schedule. BACKLOG.md records what was deliberately deferred and why.
This is a beta, and your reaction decides what comes next. Open an issue for anything that broke, confused you, or judged a job wrongly.
Skills are the instructions your agent follows. You only need the first two.
| Skill | What it does | When |
|---|---|---|
/ftja-setup | Onboarding: profile, search settings, rubric | Once, or to start over |
/ftja-run | Scrape, filter, judge, show results | Whenever you want a search |
/ftja-remote | Writes the Remote check's keywords, categories and rules for where you live | When you switch the Remote check on, or move |
/ftja-keywords | Writes the keywords for a language you started reading postings in | When you add a language |
/ftja-tune | Adds a preference you state in chat to your rubric | When you say one |
/ftja-review | Turns your apply/skip reasons into proposed rubric changes | Automatically at the start of a run |
/ftja-update | Updates FTJA and tells you what changed | When a run tells you an update exists |
/ftja-profile-update | Rewrites your profile summary from your source files | After you change your resume |
FTJA stays at the version you downloaded until you update. The web view shows
a banner when a newer version exists, and /ftja-run asks at the start of a
run whether to update first. You can also run /ftja-update at any time. It
pulls the new version, reinstalls dependencies, restarts the web view and
summarizes what changed (CHANGELOG.md). Your own files are
never touched.
Do this only after you trust the manual runs. Copy the example LaunchAgent,
replace every /path/to/FTJA in it with your FTJA folder, then load it:
cp com.ftja.run.example.plist ~/Library/LaunchAgents/com.ftja.run.plist
launchctl load ~/Library/LaunchAgents/com.ftja.run.plist
A scheduled run has no one to click "allow" on a permission prompt. Either
configure a permission allowlist for this project in .claude/settings.json
covering the commands /ftja-run makes, or accept the risk of
--dangerously-skip-permissions in the plist (only if you understand what it
disables). This is a real safety tradeoff, so it is left to you. After the
first scheduled run, check launchd.err.log to confirm it ran.
To stop it:
launchctl unload ~/Library/LaunchAgents/com.ftja.run.plist
Needs Git and Python 3.10 or newer. The Python that comes with macOS (3.9) is too old; the setup in Claude Code finds or installs a newer one.
git clone https://github.com/TaegyuJEONG/ftja.git ~/FTJA
cd ~/FTJA && python3.12 -m venv venv && venv/bin/pip install -r requirements.txt
On Windows, in PowerShell:
git clone https://github.com/TaegyuJEONG/ftja.git $HOME\FTJA
cd $HOME\FTJA; py -3 -m venv venv; venv\Scripts\pip install -r requirements.txt
Then open the folder in Claude Code and run /ftja-setup.
criteria.example.json, rubric.example.md # public templates
criteria.json, rubric.md # your search settings and rubric — gitignored
rubric-criteria.json # the rubric as a list of single criteria, edited in the Pipeline tab — gitignored
remote-check.json # the Remote check's keywords, categories and rules — gitignored
profile/ # your resume and profile summary — gitignored
seen.db # which jobs were already judged (SQLite) — gitignored
digest-*.md, rejected-*.md # results of each run — gitignored
run.log, runs.jsonl # run history — gitignored
.ftja-run/ # each run's working files (last 5 runs) — gitignored
.ftja-trash/ # runs you deleted in the viewer, until you empty the trash — gitignored
ftja/ # the pipeline code and the web view
.claude/skills/ftja-*/ # the skills for Claude Code
.agents/skills/ftja-*/ # the same skills adapted for Codex (no Claude-only tools)
landing.html # the public landing page (deployed to ftja.vercel.app)
SPEC.md is the original design note. CONTRIBUTING.md covers development and releasing.