What problem does this solve?
Right now reviewing the queue means running python apply_now.py in a terminal. A simple local web dashboard would make this much more usable for non-engineers.
What to do
- Build a single-file FastAPI app at
agent/dashboard.py. Routes:
GET / → HTML page listing all packet_generated jobs from data/jobs.db
GET /job/{id} → detail view with the JD, the drafted resume, the drafted cover letter
POST /job/{id}/apply → kick off apply_now.py flow for that job
POST /job/{id}/skip → mark as skipped with a reason
- Reuse
agent/backend/static/dashboard.html as the template (it exists from the lift).
- Add
python setup.py dashboard (or a separate script) that opens http://localhost:3001 in the browser.
Proposed solution
Acceptance
python dashboard.py serves on localhost:3001
- Clicking a job opens the detail view
- Clicking "Apply" opens the same Playwright flow
apply_now.py uses
- No accounts, no auth — only listens on
localhost
Notes
- Keep it under 300 lines total. Single file. No SPA framework.
- FastAPI + Jinja2 + a tiny bit of vanilla JS is fine
Alternatives you considered
No response
Are you up for contributing this?
What problem does this solve?
Right now reviewing the queue means running
python apply_now.pyin a terminal. A simple local web dashboard would make this much more usable for non-engineers.What to do
agent/dashboard.py. Routes:GET /→ HTML page listing allpacket_generatedjobs fromdata/jobs.dbGET /job/{id}→ detail view with the JD, the drafted resume, the drafted cover letterPOST /job/{id}/apply→ kick offapply_now.pyflow for that jobPOST /job/{id}/skip→ mark as skipped with a reasonagent/backend/static/dashboard.htmlas the template (it exists from the lift).python setup.py dashboard(or a separate script) that openshttp://localhost:3001in the browser.Proposed solution
Acceptance
python dashboard.pyserves onlocalhost:3001apply_now.pyuseslocalhostNotes
Alternatives you considered
No response
Are you up for contributing this?