-
f0e0b82375
Fix service worker serving the homepage when clicking a job/applicant card
main
soroush.asadi
2026-06-26 20:03:37 +03:30
-
923a3fb90e
Stop the CDN serving a stale homepage (archived listings showing as live cards)
soroush.asadi
2026-06-26 03:41:09 +03:30
-
aaeb37e1af
Make dedupe stricter to avoid wrongly archiving distinct placeholder-facility ads
soroush.asadi
2026-06-26 03:26:25 +03:30
-
a97c556770
Show two rows of applicants on the homepage
soroush.asadi
2026-06-23 23:05:41 +03:30
-
5fcdb8599f
Add pagination to the Jobs / Shifts / Talent list pages
soroush.asadi
2026-06-23 19:27:41 +03:30
-
ccc5a954dd
Fold secondary nav links into a «بیشتر» dropdown
soroush.asadi
2026-06-23 19:05:29 +03:30
-
e3750b7d43
Declutter nav: browse items in the bar, personal items in the profile menu
soroush.asadi
2026-06-23 19:00:02 +03:30
-
fce13aaeb0
Fix dark/low-contrast text on the homepage recommendations banner
soroush.asadi
2026-06-23 18:51:16 +03:30
-
9fc83b231b
Show real exception details to admins on the error page (diagnostics)
soroush.asadi
2026-06-23 15:14:20 +03:30
-
2d4ea3a762
Fix «از X تا توافقی» salary display when only the minimum is known
soroush.asadi
2026-06-23 13:40:23 +03:30
-
c1c914df9f
Add per-user Like (پسندیدن) with a liked page and counts
soroush.asadi
2026-06-23 12:25:10 +03:30
-
39c866f4c7
Fix useless bare-divar.ir links + hide empty homepage shifts section
soroush.asadi
2026-06-23 11:50:21 +03:30
-
fdeefb7625
Move recommendations to a dedicated page + consolidate preferences there
soroush.asadi
2026-06-23 11:41:17 +03:30
-
1f628d971e
Default aggregated ads to Job, not Shift (stop fabricating shift dates/times)
soroush.asadi
2026-06-23 07:08:47 +03:30
-
b3e7123d74
Extract Iranian salary shorthand (X تومان = millions) + pay backfill
soroush.asadi
2026-06-22 17:21:32 +03:30
-
219207ad68
SEO polish: facility structured data + trim homepage description
soroush.asadi
2026-06-22 16:03:28 +03:30
-
410fc86c60
Fix maps not rendering: Neshan SDK URL was a 404
soroush.asadi
2026-06-21 22:13:29 +03:30
-
b223d3af2d
Collapse the sprawling role taxonomy (dedupe/compound/typo merge)
soroush.asadi
2026-06-21 21:35:43 +03:30
-
2b7ac96472
Fix cramped job cards on facility detail page
soroush.asadi
2026-06-21 20:32:16 +03:30
-
0334cac3dc
Make source-link listings reachable + skip uncontactable applicants
soroush.asadi
2026-06-21 20:28:04 +03:30
-
98fc01be8e
Reject filler/verb words as applicant names
soroush.asadi
2026-06-21 20:20:07 +03:30
-
33450a37ea
Filter out home childcare / babysitter ads (not کادر درمان)
soroush.asadi
2026-06-21 20:04:57 +03:30
-
17da713a35
Stop job/shift role fan-out: one aggregated ad = one listing
soroush.asadi
2026-06-21 19:47:19 +03:30
-
92802d0da0
Show a Persian added-X-ago timestamp on listing cards
soroush.asadi
2026-06-21 19:35:30 +03:30
-
c778b87e79
Capture the full Divar ad description, not just the search-row summary
soroush.asadi
2026-06-21 19:04:30 +03:30
-
b1d0d0d4fd
Fix empty hrefs on nav and homepage «مشاهده همه» links
soroush.asadi
2026-06-21 18:54:59 +03:30
-
cdb58eeb86
Paginate the admin review queue (and flagged list)
soroush.asadi
2026-06-21 18:42:36 +03:30
-
7bbb4e385e
Add in-place role-fix for existing «پزشک عمومی»-mislabeled listings
soroush.asadi
2026-06-21 18:06:22 +03:30
-
fbf8deaa8c
Generalize doctor-role correction: trust the keyword parser over the AI default
soroush.asadi
2026-06-21 18:01:58 +03:30
-
d39546389e
Correct dentist ads the AI labeled as general physician
soroush.asadi
2026-06-21 17:59:24 +03:30
-
5c04658faf
Unify recommendations across shifts AND jobs
soroush.asadi
2026-06-21 16:47:15 +03:30
-
845d0c9013
Show job counts, not shifts-only, on public pages
soroush.asadi
2026-06-21 16:21:50 +03:30
-
3e65c88765
Strip generic facility descriptors so distinctive names dont false-merge
soroush.asadi
2026-06-21 14:00:00 +03:30
-
1c580e0f7a
Fix role + contact mislabels seen on a live iranestekhdam ad
soroush.asadi
2026-06-21 13:29:43 +03:30
-
b48e7dbc65
Auto-clean the board after every crawl (no manual cleanup clicks)
soroush.asadi
2026-06-21 13:19:11 +03:30
-
bb8c6c3be5
Add medboom.ir as an ingestion source (doctor/dentist-heavy, VPN-free)
soroush.asadi
2026-06-21 11:18:56 +03:30
-
7740d9f8d7
iranestekhdam: restrict to Tehran for launch
soroush.asadi
2026-06-21 09:56:25 +03:30
-
f118db55ef
Add iranestekhdam.ir as an ingestion source (clinical job ads at named facilities)
soroush.asadi
2026-06-21 07:39:39 +03:30
-
da55f82c6c
Fix facility junk-fold: match the real placeholder by «نامشخص» marker
soroush.asadi
2026-06-21 07:17:24 +03:30
-
88eca92333
Facility data hygiene: merge duplicates, drop junk-named facilities
soroush.asadi
2026-06-21 05:40:29 +03:30
-
8be275596b
Make the listing purge SEO-standard: archive (not delete) + 410 Gone
soroush.asadi
2026-06-21 05:25:51 +03:30
-
e2011d335e
Ingestion data-quality + map fixes: AI salary, geocode coverage, in-place backfill & purge
soroush.asadi
2026-06-21 05:09:39 +03:30
-
a16a805869
Hide facility/location when it's the «نامشخص» placeholder — omit, don't print it
soroush.asadi
2026-06-20 22:57:36 +03:30
-
baa617daa9
Strip «آماده به کار» from role names + reject domestic-helper ads
soroush.asadi
2026-06-20 19:58:06 +03:30
-
7e17e7ccb3
Stop leaking the shared placeholder facility's phone onto unrelated shifts/jobs
soroush.asadi
2026-06-20 19:50:12 +03:30
-
f1a00cb955
Remove the call CTA from listing cards — contact only on the detail page
soroush.asadi
2026-06-20 19:44:07 +03:30
-
cdca4ad264
Admin: role merge tool + usage list (taxonomy hygiene)
soroush.asadi
2026-06-20 19:21:23 +03:30
-
5e1b2ee979
ItemList JSON-LD on Jobs/Shifts list & landing pages
soroush.asadi
2026-06-20 19:15:12 +03:30
-
3edd21d2b6
Breadcrumbs: visible trail + BreadcrumbList JSON-LD
soroush.asadi
2026-06-20 19:12:38 +03:30
-
142136ebc9
Landing pages: unique intro paragraph (avoid thin content)
soroush.asadi
2026-06-20 18:07:32 +03:30
-
9bc3fdec79
Google for Jobs: only emit JobPosting JSON-LD for a real named employer
soroush.asadi
2026-06-20 18:03:14 +03:30
-
a432fce858
Internal links to SEO landing pages (role quick-links on list pages)
soroush.asadi
2026-06-20 17:59:01 +03:30
-
8d0a403b36
Near-duplicate applicant detection (collapse source reposts)
soroush.asadi
2026-06-20 17:54:26 +03:30
-
21befd5b1e
Display timestamps in Tehran time, not UTC
soroush.asadi
2026-06-20 17:16:57 +03:30
-
fb7bfad9ce
Reprocess: SEO-safe applicants-only default (don't churn indexed shift/job URLs)
soroush.asadi
2026-06-20 16:08:20 +03:30
-
e582597b20
Geocoding fallback: use the registered AI model when the table can't resolve
soroush.asadi
2026-06-20 15:48:42 +03:30
-
85a5191c45
AI qualify round 2: strip gender/seniority from roles, aide synonyms, more tag noise
soroush.asadi
2026-06-20 15:41:06 +03:30
-
993c34758f
Geocode neighborhood names to an approximate location (no source coords)
soroush.asadi
2026-06-20 15:31:27 +03:30
-
4ab6ce29c9
Approximate-location map on aggregated listings (Divar coords)
soroush.asadi
2026-06-20 15:10:05 +03:30
-
704b68be16
Search typeahead: show total found count in the dropdown
soroush.asadi
2026-06-20 14:30:08 +03:30
-
d62929ca0d
AI qualify: de-dupe applicants, base roles, closed categories, tag hygiene + reprocess-stored action
soroush.asadi
2026-06-20 14:24:20 +03:30
-
4c0b29addf
Contact reveal modal: click phone/contact on cards and detail pages
soroush.asadi
2026-06-20 09:04:08 +03:30
-
0cf5b30dd8
SEO landing pages: dynamic role+city titles, pretty URLs, sitemap combos
soroush.asadi
2026-06-19 14:03:57 +03:30
-
38031cb189
Per-ad contacts for shifts/jobs, stale-applicant filter, review source link
soroush.asadi
2026-06-10 21:28:12 +03:30
-
b71d8b362b
Recommendation card: lead with the role, not the facility name
soroush.asadi
2026-06-10 17:52:40 +03:30
-
337b510540
Shift card: lead with the role, not the facility name
soroush.asadi
2026-06-10 17:10:33 +03:30
-
efbf998caf
Admin/Ingested: per-source breakdown (published vs total crawled)
soroush.asadi
2026-06-10 08:46:01 +03:30
-
a03dcb1157
Divar geo-coords to facility map + medical gate + RawListing FK/geo migrations 2
soroush.asadi
2026-06-09 22:01:04 +03:30
-
380243b669
Divar geo-coords to facility map + medical gate + RawListing FK/geo migrations
soroush.asadi
2026-06-09 21:38:55 +03:30
-
cf5e0011c4
AI ingestion: dynamic role/category creation + tags, hardcoded read-only prompt
soroush.asadi
2026-06-09 19:04:24 +03:30
-
59fb30ac77
AI auditor: surface the real connection error instead of swallowing it
soroush.asadi
2026-06-09 18:30:12 +03:30
-
753a14286f
Mobile hero search: compact magnify button + dropdown under the input
soroush.asadi
2026-06-09 07:39:23 +03:30
-
62e9bf1353
Nav: replace inline search box with a «🔎 جستجو» link to /Search
soroush.asadi
2026-06-08 23:26:37 +03:30
-
c92744fb50
Mobile: smaller hero/heading typography so titles aren't oversized
soroush.asadi
2026-06-08 23:21:32 +03:30
-
69e2a12a3a
Home hero search: polish mobile layout (stacked bordered input + full-width button)
soroush.asadi
2026-06-08 23:14:25 +03:30
-
bcf90f2437
Home hero: replace filter dropdowns with a search-engine box (+ live typeahead)
soroush.asadi
2026-06-08 22:34:31 +03:30
-
6cf7c6b573
Typeahead: search descriptions + show highlighted body snippet (fixes empty mmt dropdown)
soroush.asadi
2026-06-08 22:06:15 +03:30
-
1e96526bd9
Review/publish: multi-select roles → one listing per role
soroush.asadi
2026-06-08 22:03:09 +03:30
-
5e5d7f80ef
Admin queue: show fetched time (HH:mm) alongside date on review + ingested rows
soroush.asadi
2026-06-08 21:55:03 +03:30
-
8b0b21f24d
Search: Elasticsearch-style highlighted match snippets (results + typeahead)
soroush.asadi
2026-06-08 21:43:50 +03:30
-
bd8d754ee8
NuGet: drop Liara from root nuget.config too (Nexus-only everywhere)
soroush.asadi
2026-06-08 21:17:34 +03:30
-
69a630d185
CI/Docker NuGet: Nexus-only (drop Liara fallback)
soroush.asadi
2026-06-08 21:10:56 +03:30
-
3d1d72ed9b
ci: rerun after mirror cert fix
soroush.asadi
2026-06-08 21:07:52 +03:30
-
36612b6bf0
CI/Docker NuGet: Nexus nuget-group primary + Liara fallback
soroush.asadi
2026-06-08 19:44:57 +03:30
-
eb7d0f6559
Fix: search suggestions dropdown was clipped by the pill's overflow:hidden
soroush.asadi
2026-06-08 17:42:07 +03:30
-
61afc957aa
Search: fix header UI + instant typeahead (5 highlighted matches) + ranking
soroush.asadi
2026-06-08 11:58:30 +03:30
-
9db4deafbc
Site-wide rich search with keyword highlighting + header search box
soroush.asadi
2026-06-08 11:40:26 +03:30
-
234bcd1f88
Polished animated contact-reveal box (shift/job/talent details)
soroush.asadi
2026-06-08 11:33:41 +03:30
-
6b657c7795
Applicants: auto-tags + deep search w/ highlight; never delete (archive instead)
soroush.asadi
2026-06-08 11:25:32 +03:30
-
e4dc5180ad
Applicants: 1→N contact methods with types (phone/email/Instagram/Telegram/Bale/site)
soroush.asadi
2026-06-08 11:10:19 +03:30
-
48760c4e83
Multi-role ads: parse all roles + fan-out publish one listing per role
soroush.asadi
2026-06-08 10:58:29 +03:30
-
13e00ec011
Validator: phone optional for applicants (publish + redirect to Divar)
soroush.asadi
2026-06-08 09:32:48 +03:30
-
386e25c8fd
Validator: discard promotional/training ads (workshops, courses)
soroush.asadi
2026-06-08 09:30:23 +03:30
-
70c048a37b
Add دندانپزشک + پرستار سالمندان roles (idempotent ensure on startup)
soroush.asadi
2026-06-08 09:27:34 +03:30
-
fb02c81830
Social auto-posting (phase 1): daily applicant digest to Telegram/Bale + Instagram caption
soroush.asadi
2026-06-08 09:20:49 +03:30
-
2bb8771ade
Normalize ریال→تومان pricing; stop exposing crawl source (medjobs/telegram)
soroush.asadi
2026-06-08 09:05:34 +03:30
-
490821a637
Talent lifecycle (21-day expiry) + noindex expired job/shift details
soroush.asadi
2026-06-08 08:59:54 +03:30
-
f9d7c48d88
Admin settings: give each ingestion source its own card
soroush.asadi
2026-06-08 08:49:27 +03:30
-
0622270cd2
Fix: site-wide phone on every Medjobs ad + phone mistaken for price
soroush.asadi
2026-06-08 08:42:21 +03:30
-
b092a5cfe5
Admin: bulk-delete published ingested posts; talent: point to source when no phone
soroush.asadi
2026-06-08 08:36:12 +03:30