mirror of
https://github.com/prdlk/jobyssey.git
synced 2026-11-02 13:12:49 +00:00
docs: update README and SECURITY for Twenty CRM sync, add CSV templates and scripts
This commit is contained in:
1 parent
f2fda73b52
commit
7007c4aa9d
9 files changed
+22
-6
No files matched your search
@@ -150,8 +150,8 @@ Postings are treated as untrusted input (the workflow follows no instructions em
|
||||
|
||||
- **`/interview`** preps you for a scheduled interview on a tracked application. It builds a stage-specific prep pack from the application's archive (the exact posting, the CV and cover letter the interviewer actually read, feedback recorded from earlier rounds), researches the company and interviewers with a verify-before-use rule, maps likely questions to your STAR examples, and offers a mock interview following the roleplay protocol in `07-interview-prep.md`. Gaps get honest bridge answers, never invented experience.
|
||||
- **`/outcome`** records what happened to an application - interview stages, offers, rejections, silence. It archives the submitted CV, cover letter, and posting text into `documents/applications/<company>_<role>/`, keeps `outcome.md` in the format `/setup` Path A parses, and updates the tracker. It also owns the stretch before there is an outcome to record: `/outcome followup` surfaces open applications that have gone quiet (default 10 days), drafts a short channel-appropriate follow-up in your writing style using only claims from the materials you already submitted (drafts only, never sends; at most twice per application), and offers a thank-you note in the same turn an interview stage is recorded. Once a few applications resolve, it points you back to `/setup` to calibrate the fit framework from what actually got interviews.
|
||||
- **`/notion-sync`** publishes a one-way, read-only view of the pipeline into a Notion database via the official Notion MCP server (OAuth, no API keys) - one row per ranked job plus every tracked application, with a write-once briefing page per row. The repo files stay the system of record: nothing syncs back, and documents sync as filenames only. Complements `/html-report`: that is the deep offline dashboard you regenerate at your desk; this is the glanceable live view from anywhere Notion runs (desktop, web, phone).
|
||||
- **`/gmail-sync`** reads your Gmail (via the Gmail connector) for status signals on your open applications - interview invites, assessment links, offers, rejections - and proposes them as a batch for you to approve before anything is written to the tracker or `outcome.md`, citing the source email on every proposed change. Offers stop short of proposing `hired`/`offer_declined` since that's your call; conflicting or unmatched signals get flagged for a manual `/outcome` pass instead of guessed.
|
||||
- **`/sync-twenty`** publishes a one-way, read-only view of the pipeline into a self-hosted [Twenty CRM](https://twenty.com) workspace via its MCP server (OAuth) - one Opportunity per ranked job plus every tracked application, each linked to an enriched Company record (domain, LinkedIn, HQ, revenue - sourced from the local postings database and verified web search). The repo files stay the system of record: nothing syncs back, and documents sync as filenames only. Twenty is the pipeline backend; `/html-report` remains the deep offline dashboard you regenerate at your desk.
|
||||
- **`/gather-recent-context`** scans your Fastmail inbox (via the Fastmail MCP server) for conversations about active job loops - interview invites, assessments, scheduling, offers - classifies each thread, and syncs a dated summary note onto the matching Opportunity in Twenty via `tools/gather_recent_context.py`. Read-only against the mailbox, summaries only (never raw email bodies), idempotent by thread id.
|
||||
- **`/rank`** bridges `/scrape` and `/apply`: it batch-scores all newly scraped postings against the fit framework (parallel agents fetch each posting and score the five evaluation dimensions) and returns a ranked shortlist with honest per-job strengths and gaps. Deal-breakers veto, deadlines get urgency flags, dead postings get marked expired. Pick a number and it hands off to the full `/apply` workflow.
|
||||
- **`/expand`** enriches your profile by scanning public sources you've already linked in it (GitHub repos, portfolio site, Kaggle, Google Scholar) and looking up syllabi for named courses and certifications. Discovered competencies are added to your profile with a source tag. Useful right after `/setup` to surface skills that documents alone don't make explicit.
|
||||
- **`/upskill`** analyzes the gap between your profile, your tracked job postings, and your ranked-but-untracked postings (`/rank`'s recorded gaps in `seen_jobs.json`) — or a single posting via `/upskill <URL>`. Produces a prioritized heatmap of skill gaps and a learning plan with web-searched study resources and time estimates. Useful for career planning between applications.
|
||||
@@ -175,10 +175,10 @@ ai-job-search/
|
||||
│ │ ├── add-portal.md # /add-portal generate a job-portal search skill for your market
|
||||
│ │ ├── rank.md # /rank triage scraped jobs into a ranked shortlist
|
||||
│ │ ├── outcome.md # /outcome record application results, archive materials
|
||||
│ │ ├── gmail-sync.md # /gmail-sync auto-detect application status from Gmail
|
||||
│ │ ├── interview.md # /interview stage-specific prep pack + mock interview
|
||||
│ │ ├── html-report.md # /html-report generate application tracker dashboard
|
||||
│ │ ├── notion-sync.md # /notion-sync one-way pipeline view in a Notion database
|
||||
│ │ ├── sync-twenty.md # /sync-twenty one-way pipeline + company sync into Twenty CRM
|
||||
│ │ ├── gather-recent-context.md # /gather-recent-context email context → Twenty CRM notes
|
||||
│ │ └── reset.md # /reset wipe profile data or documents folder
|
||||
│ ├── skills/
|
||||
│ │ ├── job-application-assistant/ # Core application skill
|
||||
@@ -221,9 +221,11 @@ ai-job-search/
|
||||
│ ├── convert_salary_excel.py # Convert salary Excel to JSON
|
||||
│ ├── lint_skills.py # CI lint for skills, commands, settings.json
|
||||
│ ├── security_guards.py # CI guards: permission allowlist, gitignore rules, manifests
|
||||
│ ├── twenty_client.py # Minimal Twenty CRM REST client (stdlib only)
|
||||
│ ├── twenty_enrich.py # Twenty enrichment plan: salary ladder, company fills, name cleanup
|
||||
│ ├── gather_recent_context.py # Email-thread → opportunity note sync (deterministic core)
|
||||
│ └── README_SALARY_TOOL.md # Salary tool setup instructions
|
||||
├── job_scraper/ # Scraper state (seen jobs, results)
|
||||
├── gmail_sync/ # /gmail-sync state (processed message IDs, last sync date)
|
||||
├── upskill/ # /upskill report output (markdown reports per run)
|
||||
├── job_search_tracker.csv # Application tracking spreadsheet
|
||||
└── SETUP.md # Detailed setup guide
|
||||
|
||||
Reference in new issue
Block a user