diff --git a/cryosparc/job.py b/cryosparc/job.py
index 6cd38c8a..71e3ddfc 100644
--- a/cryosparc/job.py
+++ b/cryosparc/job.py
@@ -106,7 +106,6 @@ def refresh(self):
         self._doc = self.cs.cli.get_job(self.project_uid, self.uid)  # type: ignore
         return self
 
-    @property
     def dir(self) -> PurePosixPath:
         """
         Get the path to the job directory.
diff --git a/cryosparc/project.py b/cryosparc/project.py
index 20809d9b..9b874afd 100644
--- a/cryosparc/project.py
+++ b/cryosparc/project.py
@@ -46,7 +46,6 @@ def refresh(self):
         self._doc = self.cs.cli.get_project(self.uid)  # type: ignore
         return self
 
-    @property
     def dir(self) -> PurePosixPath:
         """
         Get the path to the project directory.
diff --git a/docs/examples/connect_series_to_class3D.ipynb b/docs/examples/connect_series_to_class3D.ipynb
index 53be514c..43f8b9e0 100644
--- a/docs/examples/connect_series_to_class3D.ipynb
+++ b/docs/examples/connect_series_to_class3D.ipynb
@@ -61,7 +61,7 @@
     "desired_volume_series = 0\n",
     "\n",
     "series_path = var3Ddisp_job.load_output(f\"series_{desired_volume_series}\")[\"series/path\"][0]\n",
-    "series_path = str(project.dir / series_path)"
+    "series_path = str(project.dir() / series_path)"
    ]
   },
   {
diff --git a/docs/examples/cryolo.ipynb b/docs/examples/cryolo.ipynb
index e7f6b5f5..f1d1e34a 100644
--- a/docs/examples/cryolo.ipynb
+++ b/docs/examples/cryolo.ipynb
@@ -312,7 +312,7 @@
     "        \"--train_image_folder train_image \"\n",
     "        \"--train_annot_folder train_annot\"\n",
     "    ).split(\" \"),\n",
-    "    cwd=job.dir,\n",
+    "    cwd=job.dir(),\n",
     ")"
    ]
   },
@@ -337,7 +337,7 @@
    "source": [
     "job.subprocess(\n",
     "    \"cryolo_train.py -c config_cryolo.json -w 5 -g 0 -e 15\".split(\" \"),\n",
-    "    cwd=job.dir,\n",
+    "    cwd=job.dir(),\n",
     "    mute=True,\n",
     "    checkpoint=True,\n",
     "    checkpoint_line_pattern=r\"Epoch \\d+/\\d+\",  # e.g., \"Epoch 42/200\"\n",
@@ -364,7 +364,7 @@
     "job.mkdir(\"boxfiles\")\n",
     "job.subprocess(\n",
     "    \"cryolo_predict.py -c config_cryolo.json -w cryolo_model.h5 -i full_data -g 0 -o boxfiles -t 0.3\".split(\" \"),\n",
-    "    cwd=job.dir,\n",
+    "    cwd=job.dir(),\n",
     "    mute=True,\n",
     "    checkpoint=True,\n",
     ")"
@@ -395,7 +395,7 @@
     "\n",
     "    starfile_name = micrograph_name.rsplit(\".\", 1)[0] + \".star\"\n",
     "    starfile_path = \"boxfiles/STAR/\" + starfile_name\n",
-    "    locations = star.read(job.dir / starfile_path)[\"\"]\n",
+    "    locations = star.read(job.dir() / starfile_path)[\"\"]\n",
     "    center_x = locations[\"rlnCoordinateX\"] / width\n",
     "    center_y = locations[\"rlnCoordinateY\"] / height\n",
     "\n",
diff --git a/docs/examples/delete-rejected-exposures.ipynb b/docs/examples/delete-rejected-exposures.ipynb
index a90fa40e..9da36ed5 100644
--- a/docs/examples/delete-rejected-exposures.ipynb
+++ b/docs/examples/delete-rejected-exposures.ipynb
@@ -53,7 +53,7 @@
     "from pathlib import Path\n",
     "\n",
     "project = cs.find_project(\"P251\")\n",
-    "project_dir = Path(project.dir)"
+    "project_dir = Path(project.dir())"
    ]
   },
   {