my changes
This commit is contained in:
parent
cfabee5f45
commit
354304d0db
96
README.md
96
README.md
@ -3,19 +3,39 @@
|
||||
AI-powered job discovery and application pipeline. Automatically finds jobs, scores them against your profile, and generates tailored resumes.
|
||||
|
||||
## Workflow
|
||||
|
||||
1. **Search**: Scrapes Gradcracker, Indeed, LinkedIn, and UK Visa Sponsorship jobs.
|
||||
2. **Score**: AI ranks jobs by suitability using the configured LLM provider (OpenRouter by default).
|
||||
3. **Tailor**: Generates a custom resume summary for top-tier matches.
|
||||
4. **Export**: Uses [RxResume v4](https://v4.rxresu.me) to create tailored PDFs.
|
||||
5. **Manage**: Review and mark jobs as "Applied" via the dashboard (syncs to Notion).
|
||||
5. **Manage**: Review and mark jobs as "Applied" via the dashboard (calls webhooks for lifecycle events).
|
||||
|
||||
## Example of generating a tailored resume for a job
|
||||
|
||||
https://github.com/user-attachments/assets/5b9157a9-13b0-4ec6-9bd2-a39dbc2b11c5
|
||||
|
||||
## Example of applying to a Ready job
|
||||
|
||||
https://github.com/user-attachments/assets/06e5e782-47f5-42d0-8b28-b89102d7ea1b
|
||||
|
||||
## Quick Start
|
||||
# How to Start
|
||||
|
||||
### Overview
|
||||
|
||||
- Run the app with Docker (this pulls the pre-built image).
|
||||
- Create accounts:
|
||||
- OpenRouter (LLM scoring/tailoring)
|
||||
- RxResume v4 (PDF export + editable resume data)
|
||||
|
||||
- Open the dashboard and complete the onboarding wizard:
|
||||
- Add API keys/credentials
|
||||
- Choose a resume template from RxResume
|
||||
- Run the pipeline to fetch jobs → score → tailor → export PDFs
|
||||
|
||||
- Review jobs in the dashboard and mark stages
|
||||
|
||||
### Quick Start (commands)
|
||||
|
||||
```bash
|
||||
# 1. Clone and move to directory
|
||||
git clone https://github.com/DaKheera47/job-ops.git
|
||||
@ -28,64 +48,32 @@ docker compose up -d
|
||||
open http://localhost:3005
|
||||
```
|
||||
|
||||
### Required accounts
|
||||
|
||||
- Create required accounts (so onboarding is smooth)
|
||||
- OpenRouter (LLM provider)
|
||||
- Create an account and generate an API key.
|
||||
|
||||
- RxResume v4
|
||||
- Create an account on v4.rxresu.me
|
||||
- The summary, title, chosen projects, and keywords in the Resume will be tailored for the job description
|
||||
- Recreate/import your resume there so JobOps can:
|
||||
- pick a template
|
||||
- generate tailored PDFs from your stored resume data
|
||||
|
||||
### App Onboarding
|
||||
|
||||
The app will guide you through setup on first launch. The onboarding wizard helps you:
|
||||
|
||||
- Configure the LLM provider (OpenRouter by default) and add an API key if required (for AI scoring/tailoring)
|
||||
- Add your RxResume credentials (for PDF export via v4.rxresu.me)
|
||||
- Select a template resume from your v4.rxresu.me account
|
||||
|
||||
Note: `OPENROUTER_API_KEY` is deprecated. Existing OpenRouter keys are automatically migrated/copied to `LLM_API_KEY` on upgrade. Other providers are also supported.
|
||||
## Technical Details
|
||||
|
||||
## Structure
|
||||
- `/orchestrator`: React frontend + Node.js backend & pipeline.
|
||||
- `/extractors`: Specialized scrapers (Gradcracker, JobSpy, UKVisaJobs).
|
||||
- `/data`: Persistent storage for SQLite DB and generated PDFs.
|
||||
|
||||
Technical breakdowns here: `documentation/extractors/README.md`
|
||||
Orchestrator docs here: `documentation/orchestrator.md`
|
||||
|
||||
## Read-only mode (Basic Auth)
|
||||
|
||||
You can make the app read-only for the public by setting a username and password in the **Settings** page.
|
||||
After this, all write actions (POST/PATCH/DELETE) require Basic Auth; browsing and viewing remain public.
|
||||
|
||||
Persistent data lives in `./data` (bind-mounted into the container).
|
||||
|
||||
## Public Demo Mode
|
||||
|
||||
Set `DEMO_MODE=true` to run an opinionated public demo experience.
|
||||
|
||||
- Works: browsing jobs, filtering, stage updates, and local demo DB changes.
|
||||
- Simulated: pipeline run, summarize/process/rescore/pdf/apply flows, onboarding validation.
|
||||
- Blocked: settings writes, database clear, backup create/delete, and status bulk-delete.
|
||||
- Reset policy: demo dataset automatically resets every 6 hours.
|
||||
|
||||
Demo responses include request metadata and may include:
|
||||
- `meta.simulated=true` for simulated actions
|
||||
- `meta.blockedReason` for blocked actions
|
||||
|
||||
## Running (local dev)
|
||||
|
||||
Prereqs: Node 20+, Python 3.10+, Playwright browsers (Firefox).
|
||||
|
||||
Install Node deps (both packages):
|
||||
|
||||
```bash
|
||||
cd orchestrator && npm install
|
||||
cd ../extractors/gradcracker && npm install
|
||||
```
|
||||
|
||||
Configure the orchestrator env + DB:
|
||||
|
||||
```bash
|
||||
cd ../orchestrator
|
||||
cp .env.example .env
|
||||
npm run db:migrate
|
||||
npm run dev
|
||||
```
|
||||
|
||||
Dev URLs:
|
||||
- API: `http://localhost:3001/api`
|
||||
- UI (Vite): `http://localhost:5173`
|
||||
- Technical breakdowns here: `documentation/extractors/README.md`
|
||||
- Orchestrator docs here: `documentation/orchestrator.md`
|
||||
- Persistent data lives in `./data` (bind-mounted into the container).
|
||||
|
||||
## Notes / sharp edges
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user