diff --git a/changelog.txt b/changelog.txt
index a002f4d..1657aef 100644
--- a/changelog.txt
+++ b/changelog.txt
@@ -8,6 +8,19 @@ The numbers in brackets denote the related GitHub issue and/or pull request.
 Version 0.25
 ============
 
+[0.25.1] -- 2023-XX-XX
+----------------------
+
+Fixed
++++++
+
+- Fix filter argument (#737, #738).
+
+Removed
++++++++
+
+- ``--doc-filter`` argument (#738).
+
 [0.25.0] -- 2023-03-30
 ----------------------
 
diff --git a/flow/project.py b/flow/project.py
index 8fdd92f..8bd2970 100644
--- a/flow/project.py
+++ b/flow/project.py
@@ -4223,12 +4223,6 @@ class FlowProject(signac.Project, metaclass=_FlowProjectClass):
             nargs="+",
             help="Only select jobs that match the given state point filter.",
         )
-        parser.add_argument(
-            "--doc-filter",
-            type=str,
-            nargs="+",
-            help="Only select jobs that match the given document filter.",
-        )
 
     @classmethod
     def _add_operation_selection_arg_group(cls, parser):
@@ -4757,7 +4751,6 @@ class FlowProject(signac.Project, metaclass=_FlowProjectClass):
                 "debug",
                 "job_id",
                 "filter",
-                "doc_filter",
             ]
         }
         if args.pop("full"):
@@ -4876,14 +4869,10 @@ class FlowProject(signac.Project, metaclass=_FlowProjectClass):
             operation_function(*aggregate)
 
     def _select_jobs_from_args(self, args):
-        """Select jobs with the given command line arguments ('-j/-f/--doc-filter/--job-id')."""
-        if (
-            not args.func == self._main_exec
-            and args.job_id
-            and (args.filter or args.doc_filter)
-        ):
+        """Select jobs with the given command line arguments ('-j/-f/--job-id')."""
+        if not args.func == self._main_exec and args.job_id and (args.filter):
             raise ValueError(
-                "Cannot provide both -j/--job-id and -f/--filter or --doc-filter in combination."
+                "Cannot provide both -j/--job-id and -f/--filter in combination."
             )
 
         if args.job_id:
@@ -4900,12 +4889,11 @@ class FlowProject(signac.Project, metaclass=_FlowProjectClass):
         elif args.func == self._main_exec:
             # exec command does not support filters, so we must exit early.
             return _AggregateStoresCursor(self)
-        elif args.filter or args.doc_filter:
-            # filter or doc_filter provided. Filters can only be used to select
+        elif args.filter:
+            # filter, including doc_filter provided. Filters can only be used to select
             # single jobs and not aggregates of multiple jobs.
             filter_ = parse_filter_arg(args.filter)
-            doc_filter = parse_filter_arg(args.doc_filter)
-            return _JobAggregateCursor(self, filter_, doc_filter)
+            return _JobAggregateCursor(self, filter_)
         else:
             # Use all aggregates
             return _AggregateStoresCursor(self)

diff --git a/tests/test_project.py b/tests/test_project.py
index a8b9940..7d06273 100644
--- a/tests/test_project.py
+++ b/tests/test_project.py
@@ -1307,6 +1307,18 @@ class TestProjectMainInterface(TestProjectBase):
             else:
                 assert not job.isfile("world.txt")
 
+    def test_main_run_filter(self):
+        assert len(self.project)
+        for job in self.project:
+            assert not job.isfile("world.txt")
+        self.call_subcmd("run -o op1 -f b 2")
+        even_jobs = [job for job in self.project if job.sp.b == 2]
+        for job in self.project:
+            if job in even_jobs:
+                assert job.isfile("world.txt")
+            else:
+                assert not job.isfile("world.txt")
+
     def test_main_run_invalid_op(self):
         assert len(self.project)
         run_output = self.call_subcmd(

Error when running jobs using -f on command line
### Description

When I use `python project.py run -f ...` on the command line, flow errors internally.

### To reproduce

```python
import signac
from flow import FlowProject

from pathlib import Path

project = signac.get_project(Path(__file__).parent / "SignacProject")

job_sps = [{'a': 1, 'b': 2},
           {'a': 1, 'b': 3}]

for job_sp in job_sps:
    job = project.open_job(job_sp)
    job.init()


class SignacProject(FlowProject):
    pass


@SignacProject.operation
def print_statepoint(job):
    print(job.sp)


if __name__ == "__main__":
    SignacProject.get_project(project.path).main()
```

Try to run the only job on the command line with

```bash
python script.py run -f b 2
```

### Error output

```bash
$ python script.py run -f b 2
Using environment configuration: StandardEnvironment
Interpreted filter arguments as '{"b": 2}'.
Traceback (most recent call last):
  File "/Users/tomwalt/scripts/signac/flow-2.0-bug/script.py", line 26, in <module>
    SignacProject.get_project(project.path).main()
  File "/Users/tomwalt/miniconda3/envs/py310/lib/python3.10/site-packages/flow/project.py", line 5132, in main
    args.func(args)
  File "/Users/tomwalt/miniconda3/envs/py310/lib/python3.10/site-packages/flow/project.py", line 4820, in _main_run
    aggregates = self._select_jobs_from_args(args)
  File "/Users/tomwalt/miniconda3/envs/py310/lib/python3.10/site-packages/flow/project.py", line 4908, in _select_jobs_from_args
    return _JobAggregateCursor(self, filter_, doc_filter)
TypeError: _JobAggregateCursor.__init__() takes from 2 to 3 positional arguments but 4 were given
```

### System configuration

Please complete the following information:

 - Operating System [e.g. macOS]: macOS, linux
 - Version of Python [e.g. 3.7]: 3.10.10
 - Version of signac [e.g. 1.0]: 2.0.0
 - Version of signac-flow: 0.25.0


tests/test_project.py::TestProjectMainInterface::test_main_run_filter tests/test_project.py::TestDynamicProjectMainInterface::test_main_run_filter tests/test_project.py::TestGroupDynamicProjectMainInterface::test_main_run_filter
tests/test_project.py::TestProjectStatusPerformance::test_status_performance tests/test_project.py::TestProjectStatusNoEligibleOperations::test_status_no_eligible_operations tests/test_project.py::TestProjectClass::test_operation_definition tests/test_project.py::TestProjectClass::test_repeat_operation_definition tests/test_project.py::TestProjectClass::test_repeat_anonymous_operation_definition tests/test_project.py::TestProjectClass::test_repeat_operation_name tests/test_project.py::TestProjectClass::test_condition_as_operation tests/test_project.py::TestProjectClass::test_operation_as_condition tests/test_project.py::TestProjectClass::test_repeat_operation_definition_with_inheritance tests/test_project.py::TestProjectClass::test_label_definition tests/test_project.py::TestProjectClass::test_conditions_with_inheritance tests/test_project.py::TestProjectClass::test_with_job_argument tests/test_project.py::TestProjectClass::test_cmd_operation_argument tests/test_project.py::TestProjectClass::test_with_job_works_with_cmd tests/test_project.py::TestProjectClass::test_operations_user_error_handling tests/test_project.py::TestProjectClass::test_with_job_user_error_handling tests/test_project.py::TestProjectClass::test_cmd_with_job_user_error_handling tests/test_project.py::TestProjectClass::test_function_in_directives tests/test_project.py::TestProjectClass::test_invalid_memory_directive tests/test_project.py::TestProjectClass::test_memory_directive tests/test_project.py::TestProjectClass::test_walltime_directive tests/test_project.py::TestProjectClass::test_invalid_walltime_directive tests/test_project.py::TestProjectClass::test_callable_directives tests/test_project.py::TestProjectClass::test_callable_directives_with_groups tests/test_project.py::TestProjectClass::test_copy_conditions tests/test_project.py::TestProjectClass::test_preconditions_and_postconditions tests/test_project.py::TestProjectClass::test_condition_using_functools tests/test_project.py::TestProject::test_instance tests/test_project.py::TestProject::test_labels tests/test_project.py::TestProject::test_next_operations tests/test_project.py::TestProject::test_get_job_status tests/test_project.py::TestProject::test_project_status_homogeneous_schema tests/test_project.py::TestProject::test_serial_project_status_homogeneous_schema tests/test_project.py::TestProject::test_thread_parallelized_project_status_homogeneous_schema tests/test_project.py::TestProject::test_process_parallelized_project_status_homogeneous_schema tests/test_project.py::TestProject::test_project_status_invalid_parallelization_config tests/test_project.py::TestProject::test_project_status_heterogeneous_schema tests/test_project.py::TestProject::test_init tests/test_project.py::TestProject::test_graph_detection_error_raising tests/test_project.py::TestExecutionProject::test_next_operations_order tests/test_project.py::TestExecutionProject::test_run_invalid_order tests/test_project.py::TestExecutionProject::test_run_order[None] tests/test_project.py::TestExecutionProject::test_run_order[none] tests/test_project.py::TestExecutionProject::test_run_order[cyclic] tests/test_project.py::TestExecutionProject::test_run_order[by-job] tests/test_project.py::TestExecutionProject::test_run_order[random] tests/test_project.py::TestExecutionProject::test_run_order[<lambda>] tests/test_project.py::TestExecutionProject::test_run_with_selection tests/test_project.py::TestExecutionProject::test_run_with_operation_selection tests/test_project.py::TestExecutionProject::test_run_parallel tests/test_project.py::TestExecutionProject::test_run_condition_inheritance tests/test_project.py::TestExecutionProject::test_run_fork tests/test_project.py::TestExecutionProject::test_run_invalid_ops tests/test_project.py::TestExecutionProject::test_submit_operations tests/test_project.py::TestExecutionProject::test_submit tests/test_project.py::TestExecutionProject::test_submit_bad_names_argument tests/test_project.py::TestExecutionProject::test_submit_limited tests/test_project.py::TestExecutionProject::test_submit_error tests/test_project.py::TestExecutionProject::test_resubmit tests/test_project.py::TestExecutionProject::test_bundles tests/test_project.py::TestExecutionProject::test_submit_status tests/test_project.py::TestExecutionProject::test_submit_operations_bad_directive tests/test_project.py::TestExecutionProject::test_condition_evaluation tests/test_project.py::TestExecutionDynamicProject::test_next_operations_order tests/test_project.py::TestExecutionDynamicProject::test_run_invalid_order tests/test_project.py::TestExecutionDynamicProject::test_run_order[None] tests/test_project.py::TestExecutionDynamicProject::test_run_order[none] tests/test_project.py::TestExecutionDynamicProject::test_run_order[cyclic] tests/test_project.py::TestExecutionDynamicProject::test_run_order[by-job] tests/test_project.py::TestExecutionDynamicProject::test_run_order[random] tests/test_project.py::TestExecutionDynamicProject::test_run_order[<lambda>] tests/test_project.py::TestExecutionDynamicProject::test_run_with_selection tests/test_project.py::TestExecutionDynamicProject::test_run_with_operation_selection tests/test_project.py::TestExecutionDynamicProject::test_run_parallel tests/test_project.py::TestExecutionDynamicProject::test_run_condition_inheritance tests/test_project.py::TestExecutionDynamicProject::test_run_fork tests/test_project.py::TestExecutionDynamicProject::test_run_invalid_ops tests/test_project.py::TestExecutionDynamicProject::test_submit_operations tests/test_project.py::TestExecutionDynamicProject::test_submit tests/test_project.py::TestExecutionDynamicProject::test_submit_bad_names_argument tests/test_project.py::TestExecutionDynamicProject::test_submit_limited tests/test_project.py::TestExecutionDynamicProject::test_submit_error tests/test_project.py::TestExecutionDynamicProject::test_resubmit tests/test_project.py::TestExecutionDynamicProject::test_bundles tests/test_project.py::TestExecutionDynamicProject::test_submit_status tests/test_project.py::TestExecutionDynamicProject::test_submit_operations_bad_directive tests/test_project.py::TestExecutionDynamicProject::test_condition_evaluation tests/test_project.py::TestProjectMainInterface::test_main_help tests/test_project.py::TestProjectMainInterface::test_main_exec tests/test_project.py::TestProjectMainInterface::test_main_run tests/test_project.py::TestProjectMainInterface::test_main_run_invalid_op tests/test_project.py::TestProjectMainInterface::test_main_run_invalid_job tests/test_project.py::TestProjectMainInterface::test_main_run_invalid_aggregate tests/test_project.py::TestProjectMainInterface::test_main_next tests/test_project.py::TestProjectMainInterface::test_main_next_invalid_op tests/test_project.py::TestProjectMainInterface::test_main_status tests/test_project.py::TestDynamicProjectMainInterface::test_main_help tests/test_project.py::TestDynamicProjectMainInterface::test_main_exec tests/test_project.py::TestDynamicProjectMainInterface::test_main_run tests/test_project.py::TestDynamicProjectMainInterface::test_main_run_invalid_op tests/test_project.py::TestDynamicProjectMainInterface::test_main_run_invalid_job tests/test_project.py::TestDynamicProjectMainInterface::test_main_run_invalid_aggregate tests/test_project.py::TestDynamicProjectMainInterface::test_main_next tests/test_project.py::TestDynamicProjectMainInterface::test_main_next_invalid_op tests/test_project.py::TestDynamicProjectMainInterface::test_main_status tests/test_project.py::TestDirectivesProjectMainInterface::test_main_submit_walltime_with_directive tests/test_project.py::TestDirectivesProjectMainInterface::test_main_submit_walltime_no_directive tests/test_project.py::TestDirectivesProjectMainInterface::test_main_submit_walltime_with_groups tests/test_project.py::TestDirectivesProjectMainInterface::test_main_submit_walltime_serial tests/test_project.py::TestDirectivesProjectMainInterface::test_main_submit_walltime_parallel tests/test_project.py::TestProjectDagDetection::test_dag tests/test_project.py::TestProjectSubmitOptions::test_main_submit_after[DefaultSlurmEnvironment-sbatch tests/test_project.py::TestProjectSubmitOptions::test_main_submit_after[DefaultPBSEnvironment-qsub tests/test_project.py::TestProjectSubmitOptions::test_main_submit_after[DefaultLSFEnvironment-bsub tests/test_project.py::TestProjectSubmitOptions::test_main_submit_hold[DefaultSlurmEnvironment-sbatch tests/test_project.py::TestProjectSubmitOptions::test_main_submit_hold[DefaultPBSEnvironment-qsub tests/test_project.py::TestProjectSubmitOptions::test_main_submit_hold[DefaultLSFEnvironment-bsub tests/test_project.py::TestProjectSubmitOptions::test_main_submit_job_output[DefaultSlurmEnvironment-job_output_flags0] tests/test_project.py::TestProjectSubmitOptions::test_main_submit_job_output[DefaultPBSEnvironment-job_output_flags1] tests/test_project.py::TestProjectSubmitOptions::test_main_submit_job_output[DefaultLSFEnvironment-job_output_flags2] tests/test_project.py::TestGroupProject::test_instance tests/test_project.py::TestGroupProject::test_directives_hierarchy tests/test_project.py::TestGroupProject::test_unique_group_operation_names tests/test_project.py::TestGroupProject::test_group_operation_without_operation_definition tests/test_project.py::TestGroupProject::test_group_operation_without_operation_definition_anonymous tests/test_project.py::TestGroupProject::test_repeat_group_definition tests/test_project.py::TestGroupProject::test_repeat_operation_group_definition tests/test_project.py::TestGroupProject::test_submission_combine_directives tests/test_project.py::TestGroupProject::test_flowgroup_repr tests/test_project.py::TestGroupProject::test_submit_options tests/test_project.py::TestGroupProject::test_run_options tests/test_project.py::TestGroupExecutionProject::test_run_with_operation_selection tests/test_project.py::TestGroupExecutionProject::test_run_parallel tests/test_project.py::TestGroupExecutionProject::test_submit_groups tests/test_project.py::TestGroupExecutionProject::test_submit_groups_invalid_char_with_error tests/test_project.py::TestGroupExecutionProject::test_submit_groups_invalid_char_avoid_error tests/test_project.py::TestGroupExecutionProject::test_submit tests/test_project.py::TestGroupExecutionProject::test_submit_invalid_char_with_error tests/test_project.py::TestGroupExecutionProject::test_submit_invalid_char_avoid_error tests/test_project.py::TestGroupExecutionProject::test_group_resubmit tests/test_project.py::TestGroupExecutionProject::test_operation_resubmit tests/test_project.py::TestGroupExecutionDynamicProject::test_run_with_operation_selection tests/test_project.py::TestGroupExecutionDynamicProject::test_run_parallel tests/test_project.py::TestGroupExecutionDynamicProject::test_submit_groups tests/test_project.py::TestGroupExecutionDynamicProject::test_submit_groups_invalid_char_with_error tests/test_project.py::TestGroupExecutionDynamicProject::test_submit_groups_invalid_char_avoid_error tests/test_project.py::TestGroupExecutionDynamicProject::test_submit tests/test_project.py::TestGroupExecutionDynamicProject::test_submit_invalid_char_with_error tests/test_project.py::TestGroupExecutionDynamicProject::test_submit_invalid_char_avoid_error tests/test_project.py::TestGroupExecutionDynamicProject::test_group_resubmit tests/test_project.py::TestGroupExecutionDynamicProject::test_operation_resubmit tests/test_project.py::TestGroupProjectMainInterface::test_main_run tests/test_project.py::TestGroupProjectMainInterface::test_main_submit tests/test_project.py::TestGroupDynamicProjectMainInterface::test_main_help tests/test_project.py::TestGroupDynamicProjectMainInterface::test_main_exec tests/test_project.py::TestGroupDynamicProjectMainInterface::test_main_run tests/test_project.py::TestGroupDynamicProjectMainInterface::test_main_run_invalid_op tests/test_project.py::TestGroupDynamicProjectMainInterface::test_main_run_invalid_job tests/test_project.py::TestGroupDynamicProjectMainInterface::test_main_run_invalid_aggregate tests/test_project.py::TestGroupDynamicProjectMainInterface::test_main_next tests/test_project.py::TestGroupDynamicProjectMainInterface::test_main_next_invalid_op tests/test_project.py::TestGroupDynamicProjectMainInterface::test_main_status tests/test_project.py::TestAggregatesProjectBase::test_aggregator_with_job tests/test_project.py::TestAggregationProjectMainInterface::test_aggregator_with_job tests/test_project.py::TestAggregationProjectMainInterface::test_main_run tests/test_project.py::TestAggregationProjectMainInterface::test_main_run_abbreviated tests/test_project.py::TestAggregationProjectMainInterface::test_main_run_cmd tests/test_project.py::TestAggregationProjectMainInterface::test_main_run_parallel tests/test_project.py::TestAggregationProjectMainInterface::test_main_submit tests/test_project.py::TestAggregationGroupProjectMainInterface::test_aggregator_with_job tests/test_project.py::TestAggregationGroupProjectMainInterface::test_main_run tests/test_project.py::TestAggregationGroupProjectMainInterface::test_main_run_abbreviated tests/test_project.py::TestAggregationGroupProjectMainInterface::test_main_run_abbreviated_duplicate tests/test_project.py::TestAggregationGroupProjectMainInterface::test_main_submit tests/test_project.py::TestHooksBase::test_start_and_finish[raise_exception-base] tests/test_project.py::TestHooksBase::test_start_and_finish[no_exception-base] tests/test_project.py::TestHooksBase::test_success[raise_exception-base] tests/test_project.py::TestHooksBase::test_success[no_exception-base] tests/test_project.py::TestHooksBase::test_fail[raise_exception-base] tests/test_project.py::TestHooksBase::test_fail[no_exception-base] tests/test_project.py::TestHooksCmd::test_start_and_finish[raise_exception-base_cmd] tests/test_project.py::TestHooksCmd::test_start_and_finish[no_exception-base_cmd] tests/test_project.py::TestHooksCmd::test_success[raise_exception-base_cmd] tests/test_project.py::TestHooksCmd::test_success[no_exception-base_cmd] tests/test_project.py::TestHooksCmd::test_fail[raise_exception-base_cmd] tests/test_project.py::TestHooksCmd::test_fail[no_exception-base_cmd] tests/test_project.py::TestHooksInstallBase::test_start_and_finish[raise_exception-base] tests/test_project.py::TestHooksInstallBase::test_start_and_finish[raise_exception-base_no_decorators] tests/test_project.py::TestHooksInstallBase::test_start_and_finish[no_exception-base] tests/test_project.py::TestHooksInstallBase::test_start_and_finish[no_exception-base_no_decorators] tests/test_project.py::TestHooksInstallBase::test_success[raise_exception-base] tests/test_project.py::TestHooksInstallBase::test_success[raise_exception-base_no_decorators] tests/test_project.py::TestHooksInstallBase::test_success[no_exception-base] tests/test_project.py::TestHooksInstallBase::test_success[no_exception-base_no_decorators] tests/test_project.py::TestHooksInstallBase::test_fail[raise_exception-base] tests/test_project.py::TestHooksInstallBase::test_fail[raise_exception-base_no_decorators] tests/test_project.py::TestHooksInstallBase::test_fail[no_exception-base] tests/test_project.py::TestHooksInstallBase::test_fail[no_exception-base_no_decorators] tests/test_project.py::TestHooksInstallCmd::test_start_and_finish[raise_exception-base_cmd] tests/test_project.py::TestHooksInstallCmd::test_start_and_finish[raise_exception-base_cmd_no_decorators] tests/test_project.py::TestHooksInstallCmd::test_start_and_finish[no_exception-base_cmd] tests/test_project.py::TestHooksInstallCmd::test_start_and_finish[no_exception-base_cmd_no_decorators] tests/test_project.py::TestHooksInstallCmd::test_success[raise_exception-base_cmd] tests/test_project.py::TestHooksInstallCmd::test_success[raise_exception-base_cmd_no_decorators] tests/test_project.py::TestHooksInstallCmd::test_success[no_exception-base_cmd] tests/test_project.py::TestHooksInstallCmd::test_success[no_exception-base_cmd_no_decorators] tests/test_project.py::TestHooksInstallCmd::test_fail[raise_exception-base_cmd] tests/test_project.py::TestHooksInstallCmd::test_fail[raise_exception-base_cmd_no_decorators] tests/test_project.py::TestHooksInstallCmd::test_fail[no_exception-base_cmd] tests/test_project.py::TestHooksInstallCmd::test_fail[no_exception-base_cmd_no_decorators] tests/test_project.py::TestHooksInstallWithDecorators::test_start_and_finish[raise_exception-base] tests/test_project.py::TestHooksInstallWithDecorators::test_start_and_finish[no_exception-base] tests/test_project.py::TestHooksInstallWithDecorators::test_success[raise_exception-base] tests/test_project.py::TestHooksInstallWithDecorators::test_success[no_exception-base] tests/test_project.py::TestHooksInstallWithDecorators::test_fail[raise_exception-base] tests/test_project.py::TestHooksInstallWithDecorators::test_fail[no_exception-base] tests/test_project.py::TestHooksInstallCmdWithDecorators::test_start_and_finish[raise_exception] tests/test_project.py::TestHooksInstallCmdWithDecorators::test_start_and_finish[no_exception] tests/test_project.py::TestHooksInstallCmdWithDecorators::test_success[raise_exception] tests/test_project.py::TestHooksInstallCmdWithDecorators::test_success[no_exception] tests/test_project.py::TestHooksInstallCmdWithDecorators::test_fail[raise_exception] tests/test_project.py::TestHooksInstallCmdWithDecorators::test_fail[no_exception] tests/test_project.py::TestHooksInstallNoDecorators::test_no_decorator_keys[base_no_decorators] tests/test_project.py::TestHooksInstallNoDecorators::test_no_decorator_keys[base_cmd_no_decorators] tests/test_project.py::TestHooksInvalidOption::test_invalid_hook tests/test_project.py::TestHooksInvalidOption::test_install_invalid_hook tests/test_project.py::TestHooksInvalidOption::test_raise_exception_in_hook tests/test_project.py::TestHooksInvalidOption::test_raise_exception_in_hook_cmd tests/test_project.py::TestIgnoreConditions::test_str tests/test_project.py::TestIgnoreConditions::test_invert