diff --git a/action.yml b/action.yml
index d0becb2..eeea51d 100644
--- a/action.yml
+++ b/action.yml
@@ -1,11 +1,16 @@
 name: "Generate BOM"
 description: >
-  Generate a BOM for the project using py-allspice and create an asset with it.
+  Generate a BOM for the project using py-allspice and attach it as an artifact
+  to the run.
+
+  Works for Altium and OrCAD projects.
 
-  Currently only works for Altium projects
 inputs:
-  project_path:
-    description: "Path to the project file from the root of the repo"
+  source_path:
+    description: >
+      Path to the source file from the root of the repo. For Altium projects,
+      this should be the path to the .PrjPcb file. For OrCAD projects, this
+      should be the path to the .dsn file.
     required: true
   output_file_name:
     description: "Name of the output file"
@@ -19,12 +24,13 @@ inputs:
     description: >
       A comma-separated list of columns to group the BOM by. If not present, the
       BOM will be flat.
-    default: ''
+    default: ""
   variant:
     description: >
       The variant of the project to generate the BOM for. If not present, the
-      BOM will be generated for the default variant.
-    default: ''
+      BOM will be generated for the default variant. Not supported for OrCAD
+      projects.
+    default: ""
 runs:
   using: "docker"
   image: "Dockerfile"
@@ -42,6 +48,6 @@ runs:
     - "--output_file"
     - "${{ github.workspace}}/${{ inputs.output_file_name }}"
     - ${{ github.repository }}
-    - ${{ inputs.project_path }}
+    - ${{ inputs.source_path }}
   env:
     ALLSPICE_AUTH_TOKEN: ${{ github.token }}
diff --git a/entrypoint.py b/entrypoint.py
index ee4cf1e..e41960b 100755
--- a/entrypoint.py
+++ b/entrypoint.py
@@ -11,19 +11,24 @@ import sys
 from contextlib import ExitStack
 
 from allspice import AllSpice
-from allspice.utils.bom_generation import generate_bom_for_altium
+from allspice.utils.bom_generation import generate_bom
 
 
 if __name__ == "__main__":
-    # Parse command line arguments. If you're writing a special purpose script,
-    # you can hardcode these values instead of using command line arguments.
     parser = argparse.ArgumentParser(
-        prog="generate_bom", description="Generate a BOM from a PrjPcb file."
+        prog="generate_bom", description="Generate a BOM from a project repository."
     )
     parser.add_argument(
         "repository", help="The repo containing the project in the form 'owner/repo'"
     )
-    parser.add_argument("prjpcb_file", help="The path to the PrjPcb file in the source repo.")
+    parser.add_argument(
+        "source_file",
+        help=(
+            "The path to the source file used to generate the BOM. If this is an Altium project, "
+            "this should be the .PrjPcb file. For an OrCAD project, this should be the .dsn file. "
+            "Example: 'Archimajor.PrjPcb', 'Schematics/Beagleplay.dsn'."
+        ),
+    )
     parser.add_argument(
         "--columns",
         help=(
@@ -59,9 +64,8 @@ if __name__ == "__main__":
         "--variant",
         help=(
             "The variant of the project to generate the BOM for. If not present, the BOM will be "
-            "generated for the default variant."
+            "generated for the default variant. This is not used for OrCAD projects."
         ),
-        default="",
     )
 
     args = parser.parse_args()
@@ -70,8 +74,6 @@ if __name__ == "__main__":
     with open(columns_file, "r") as f:
         columns = json.loads(f.read())
 
-    # Use Environment Variables to store your auth token. This keeps your token
-    # secure when sharing code.
     auth_token = os.environ.get("ALLSPICE_AUTH_TOKEN")
     if auth_token is None:
         print("Please set the environment variable ALLSPICE_AUTH_TOKEN")
@@ -84,19 +86,18 @@ if __name__ == "__main__":
 
     repo_owner, repo_name = args.repository.split("/")
     repository = allspice.get_repository(repo_owner, repo_name)
-    prjpcb_file = args.prjpcb_file
     group_by = args.group_by.split(",") if args.group_by else None
 
     print("Generating BOM...", file=sys.stderr)
 
-    bom_rows = generate_bom_for_altium(
+    bom_rows = generate_bom(
         allspice,
         repository,
-        prjpcb_file,
+        args.source_file,
         columns,
         group_by=group_by,
         ref=args.source_ref,
-        variant=args.variant if args.variant else None,
+        variant=args.variant,
     )
 
     with ExitStack() as stack:
diff --git a/requirements.txt b/requirements.txt
index 4a403e7..1dbdcdf 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1 +1 @@
-py-allspice==3.0.0
+py-allspice==3.1.0