feat: dark mode docs + add credits and citation to README
Browse filesdocs/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>
- README.md +27 -0
- 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: #
|
| 10 |
-
--surface: #
|
| 11 |
-
--sidebar-bg: rgba(
|
| 12 |
-
--border: rgba(
|
| 13 |
-
--text: #
|
| 14 |
-
--text-secondary: #
|
| 15 |
-
--accent: #
|
| 16 |
-
--accent-hover: #
|
| 17 |
-
--code-bg: #
|
| 18 |
--code-text: #e8e8ed;
|
| 19 |
-
--tag-bg: #
|
| 20 |
-
--tag-text: #
|
| 21 |
--radius: 12px;
|
| 22 |
--radius-sm: 8px;
|
| 23 |
-
--shadow: 0 2px 20px rgba(0,0,0,0.
|
| 24 |
-
--shadow-lg: 0 8px 40px rgba(0,0,0,0.
|
| 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(
|
| 242 |
padding: 2px 6px;
|
| 243 |
border-radius: 4px;
|
| 244 |
-
color: #
|
| 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(
|
| 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: #
|
| 328 |
-
.callout.warn { background: #
|
| 329 |
-
.callout.tip { background: #
|
| 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(
|
| 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:
|
| 881 |
CV file<br>
|
| 882 |
-
β <span style="color:#
|
| 883 |
Raw text<br>
|
| 884 |
-
β <span style="color:#
|
| 885 |
-
β <span style="color:#
|
| 886 |
profile_text<br>
|
| 887 |
β (in parallel with search)<br>
|
| 888 |
-
β <span style="color:#
|
| 889 |
jobs[]<br>
|
| 890 |
-
β <span style="color:#
|
| 891 |
scored_jobs[]<br>
|
| 892 |
β (per selected job)<br>
|
| 893 |
-
β <span style="color:#
|
| 894 |
-
β <span style="color:#
|
| 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 |
+
β <span style="color:#98989d">CVParser.extract_raw_text()</span><br>
|
| 883 |
Raw text<br>
|
| 884 |
+
β <span style="color:#98989d">CVParser.parse() β LLM β CVProfile JSON</span><br>
|
| 885 |
+
β <span style="color:#98989d">CVParser.summarize() β profile_text</span><br>
|
| 886 |
profile_text<br>
|
| 887 |
β (in parallel with search)<br>
|
| 888 |
+
β <span style="color:#98989d">JobSearcher.search() β scrapers β deduplicate β filter stale β label freshness</span><br>
|
| 889 |
jobs[]<br>
|
| 890 |
+
β <span style="color:#98989d">JobMatcher.score_all() β LLM Γ N β sort by score</span><br>
|
| 891 |
scored_jobs[]<br>
|
| 892 |
β (per selected job)<br>
|
| 893 |
+
β <span style="color:#98989d">CVTailor.generate() β LLM β TailoringHints</span><br>
|
| 894 |
+
β <span style="color:#98989d">CoverLetterWriter.generate() β LLM β draft letter</span><br>
|
| 895 |
approved_jobs[] β ZIP export
|
| 896 |
</p>
|
| 897 |
</div>
|