# General instructions Use script efficienly, do not verbosely detailed your answer, be concise and efficient. Do not read the job_listing.csv content unless it is necessary, instead use job_listing_head.py (see below). ## API endpoints (preferred) — server: `src/server/main.ts`, run: `npm run dev` - `GET /job-listing/head?n=5` → `{ headers, rows }` first N rows with empty jobboard_url+master_extractor_path - `PUT /job-listing/:domain` body: JSON fields to update. 422 if master_extractor_path given but file missing. 404 if domain unknown. - `POST /src/` raw body → saved to `src/`. Dirs auto-created. ### Upload a file curl -X POST http://localhost:3000/src/extractors/bebee.ts \ -H 'Content-Type: text/plain' \ --data-binary @./bebee.ts --- /home/ec2-user/222-COWORK-JOB-LISTING/src ├── app.ts ├── extractors │   ├── apply_refline_ch.ts │   ├── careers_epfl_ch.ts │   ├── careers_mpi-cbg_de.ts │   ├── embl_wd103_myworkdayjobs_com.ts │   ├── emea3_recruitmentplatform_com.ts │   ├── jobs_inria_fr.ts │   ├── karriere_plus_ac_at.ts │   ├── sanger_wd103_myworkdayjobs_com.ts │   ├── utils.ts │   ├── www2_daad_de.ts │   ├── www_ie-freiburg_mpg_de.ts │   ├── www_mdc-berlin_de.ts │   ├── www_molgen_mpg_de.ts │   ├── www_myscience_ch.ts │   ├── www_pepr-cell-id_fr.ts │   ├── www_sfbi_fr.ts │   ├── www_spaxio_eu.ts │   └── www_uni_lu.ts ├── server │   └── main.ts └── test └── hello.txt 3 directories, 21 files