HipFil98 Claude Sonnet 4.6 commited on
Commit
e7eb232
Β·
1 Parent(s): cd1a9b6

feat: dark mode docs + add credits and citation to README

Browse files

docs/index.html:
- Switch all CSS variables to macOS dark palette (black bg, dark surfaces,
blue accent #2997ff, dark callouts/tags/code backgrounds)
- Fix hardcoded light colours (inline styles, scrollbar, hover, callouts)

README.md:
- Add Credits section (Euraxess, mlscientist, jobs.ac.uk, Groq)
- Add Cite this work section with BibTeX entry

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

Files changed (2) hide show
  1. README.md +27 -0
  2. docs/index.html +28 -28
README.md CHANGED
@@ -110,6 +110,33 @@ For local use, the app also supports **Ollama** β€” set `LLM_BACKEND=ollama` in
110
 
111
  ---
112
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
113
  ## License
114
 
115
  MIT
 
110
 
111
  ---
112
 
113
+ ## Credits
114
+
115
+ Job data sourced from:
116
+ - [Euraxess](https://euraxess.ec.europa.eu) β€” European Commission portal for research careers
117
+ - [mlscientist.com](https://mlscientist.com) β€” ML & AI academic job board
118
+ - [jobs.ac.uk](https://www.jobs.ac.uk) β€” UK academic jobs portal
119
+
120
+ LLM inference powered by [Groq](https://groq.com) free API.
121
+
122
+ ---
123
+
124
+ ## Cite this work
125
+
126
+ If you use PhdScout in your research or project, please cite it as:
127
+
128
+ ```bibtex
129
+ @software{pellegrino2026phdscout,
130
+ author = {Pellegrino, Filippo},
131
+ title = {{PhdScout}: an AI-powered search agent for academic positions},
132
+ year = {2026},
133
+ url = {https://github.com/Hipsterfil998/PhDScout},
134
+ license = {MIT}
135
+ }
136
+ ```
137
+
138
+ ---
139
+
140
  ## License
141
 
142
  MIT
docs/index.html CHANGED
@@ -6,22 +6,22 @@
6
  <title>PhdScout β€” Documentation</title>
7
  <style>
8
  :root {
9
- --bg: #f5f5f7;
10
- --surface: #ffffff;
11
- --sidebar-bg: rgba(255,255,255,0.72);
12
- --border: rgba(0,0,0,0.08);
13
- --text: #1d1d1f;
14
- --text-secondary: #6e6e73;
15
- --accent: #0071e3;
16
- --accent-hover: #0077ed;
17
- --code-bg: #1c1c1e;
18
  --code-text: #e8e8ed;
19
- --tag-bg: #e8f0fe;
20
- --tag-text: #1a73e8;
21
  --radius: 12px;
22
  --radius-sm: 8px;
23
- --shadow: 0 2px 20px rgba(0,0,0,0.08);
24
- --shadow-lg: 0 8px 40px rgba(0,0,0,0.12);
25
  --sidebar-w: 240px;
26
  --font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", Arial, sans-serif;
27
  --font-mono: "SF Mono", "Fira Code", "Cascadia Code", Menlo, monospace;
@@ -238,10 +238,10 @@
238
  code {
239
  font-family: var(--font-mono);
240
  font-size: 13px;
241
- background: rgba(0,0,0,0.06);
242
  padding: 2px 6px;
243
  border-radius: 4px;
244
- color: #c0392b;
245
  }
246
 
247
  pre code {
@@ -312,7 +312,7 @@
312
  }
313
 
314
  tr:last-child td { border-bottom: none; }
315
- tr:hover td { background: rgba(0,0,0,0.02); }
316
 
317
  /* ── Callout ─────────────────────────────────────────── */
318
  .callout {
@@ -324,9 +324,9 @@
324
  }
325
 
326
  .callout-icon { font-size: 18px; flex-shrink: 0; margin-top: 1px; }
327
- .callout.info { background: #e8f0fe; border-left: 3px solid #1a73e8; }
328
- .callout.warn { background: #fef9e0; border-left: 3px solid #f5a623; }
329
- .callout.tip { background: #e6f4ea; border-left: 3px solid #34a853; }
330
  .callout p { margin: 0; }
331
 
332
  /* ── Tag ─────────────────────────────────────────────── */
@@ -372,7 +372,7 @@
372
  /* ── Scrollbar ───────────────────────────────────────── */
373
  ::-webkit-scrollbar { width: 6px; }
374
  ::-webkit-scrollbar-track { background: transparent; }
375
- ::-webkit-scrollbar-thumb { background: rgba(0,0,0,0.2); border-radius: 3px; }
376
  </style>
377
  </head>
378
  <body>
@@ -877,21 +877,21 @@ The letter should be <span class="st">250-350 words (2-3 paragraphs)</span>.</co
877
 
878
  <h2>Pipeline flow</h2>
879
  <div class="card">
880
- <p style="font-family:var(--font-mono);font-size:13px;line-height:2;color:#1d1d1f;">
881
  CV file<br>
882
- &nbsp;&nbsp;↓ <span style="color:#6e6e73">CVParser.extract_raw_text()</span><br>
883
  Raw text<br>
884
- &nbsp;&nbsp;↓ <span style="color:#6e6e73">CVParser.parse() β†’ LLM β†’ CVProfile JSON</span><br>
885
- &nbsp;&nbsp;↓ <span style="color:#6e6e73">CVParser.summarize() β†’ profile_text</span><br>
886
  profile_text<br>
887
  &nbsp;&nbsp;↓ (in parallel with search)<br>
888
- &nbsp;&nbsp;↓ <span style="color:#6e6e73">JobSearcher.search() β†’ scrapers β†’ deduplicate β†’ filter stale β†’ label freshness</span><br>
889
  jobs[]<br>
890
- &nbsp;&nbsp;↓ <span style="color:#6e6e73">JobMatcher.score_all() β†’ LLM Γ— N β†’ sort by score</span><br>
891
  scored_jobs[]<br>
892
  &nbsp;&nbsp;↓ (per selected job)<br>
893
- &nbsp;&nbsp;↓ <span style="color:#6e6e73">CVTailor.generate() β†’ LLM β†’ TailoringHints</span><br>
894
- &nbsp;&nbsp;↓ <span style="color:#6e6e73">CoverLetterWriter.generate() β†’ LLM β†’ draft letter</span><br>
895
  approved_jobs[] β†’ ZIP export
896
  </p>
897
  </div>
 
6
  <title>PhdScout β€” Documentation</title>
7
  <style>
8
  :root {
9
+ --bg: #000000;
10
+ --surface: #1c1c1e;
11
+ --sidebar-bg: rgba(28,28,30,0.88);
12
+ --border: rgba(255,255,255,0.10);
13
+ --text: #f5f5f7;
14
+ --text-secondary: #98989d;
15
+ --accent: #2997ff;
16
+ --accent-hover: #47aaff;
17
+ --code-bg: #111113;
18
  --code-text: #e8e8ed;
19
+ --tag-bg: #0a2540;
20
+ --tag-text: #4da6ff;
21
  --radius: 12px;
22
  --radius-sm: 8px;
23
+ --shadow: 0 2px 20px rgba(0,0,0,0.40);
24
+ --shadow-lg: 0 8px 40px rgba(0,0,0,0.60);
25
  --sidebar-w: 240px;
26
  --font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", Arial, sans-serif;
27
  --font-mono: "SF Mono", "Fira Code", "Cascadia Code", Menlo, monospace;
 
238
  code {
239
  font-family: var(--font-mono);
240
  font-size: 13px;
241
+ background: rgba(255,255,255,0.08);
242
  padding: 2px 6px;
243
  border-radius: 4px;
244
+ color: #ff6b6b;
245
  }
246
 
247
  pre code {
 
312
  }
313
 
314
  tr:last-child td { border-bottom: none; }
315
+ tr:hover td { background: rgba(255,255,255,0.04); }
316
 
317
  /* ── Callout ─────────────────────────────────────────── */
318
  .callout {
 
324
  }
325
 
326
  .callout-icon { font-size: 18px; flex-shrink: 0; margin-top: 1px; }
327
+ .callout.info { background: #0a1f3a; border-left: 3px solid #2997ff; }
328
+ .callout.warn { background: #2a1f00; border-left: 3px solid #f5a623; }
329
+ .callout.tip { background: #0a2018; border-left: 3px solid #30d158; }
330
  .callout p { margin: 0; }
331
 
332
  /* ── Tag ─────────────────────────────────────────────── */
 
372
  /* ── Scrollbar ───────────────────────────────────────── */
373
  ::-webkit-scrollbar { width: 6px; }
374
  ::-webkit-scrollbar-track { background: transparent; }
375
+ ::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.2); border-radius: 3px; }
376
  </style>
377
  </head>
378
  <body>
 
877
 
878
  <h2>Pipeline flow</h2>
879
  <div class="card">
880
+ <p style="font-family:var(--font-mono);font-size:13px;line-height:2;color:var(--text);">
881
  CV file<br>
882
+ &nbsp;&nbsp;↓ <span style="color:#98989d">CVParser.extract_raw_text()</span><br>
883
  Raw text<br>
884
+ &nbsp;&nbsp;↓ <span style="color:#98989d">CVParser.parse() β†’ LLM β†’ CVProfile JSON</span><br>
885
+ &nbsp;&nbsp;↓ <span style="color:#98989d">CVParser.summarize() β†’ profile_text</span><br>
886
  profile_text<br>
887
  &nbsp;&nbsp;↓ (in parallel with search)<br>
888
+ &nbsp;&nbsp;↓ <span style="color:#98989d">JobSearcher.search() β†’ scrapers β†’ deduplicate β†’ filter stale β†’ label freshness</span><br>
889
  jobs[]<br>
890
+ &nbsp;&nbsp;↓ <span style="color:#98989d">JobMatcher.score_all() β†’ LLM Γ— N β†’ sort by score</span><br>
891
  scored_jobs[]<br>
892
  &nbsp;&nbsp;↓ (per selected job)<br>
893
+ &nbsp;&nbsp;↓ <span style="color:#98989d">CVTailor.generate() β†’ LLM β†’ TailoringHints</span><br>
894
+ &nbsp;&nbsp;↓ <span style="color:#98989d">CoverLetterWriter.generate() β†’ LLM β†’ draft letter</span><br>
895
  approved_jobs[] β†’ ZIP export
896
  </p>
897
  </div>