TwinEthosRequest access

Control

AEDT used without 10-day candidate notice

NYC employers must notify candidates ≥10 business days before using an AEDT, incl. how to request an alternative process.

Informational data, not legal advice. Summaries are TwinEthos's own words and rules have not been reviewed by a lawyer: check the official text before relying on any of it. A guard addresses an item; adding it is not a statement that your code meets any law.

Family: People are not told before or when AI is used in a decision about them · control id cond.aedt-used-without-candidate-notice

Reach

1items this one guard addresses
1jurisdictions where binding law on it is in force
0more where it is enacted, not yet applying
0standards and frameworks on the same control

Law in force in New York City (US-NY-NYC).

The guard to add

Send each candidate an AEDT notice with alternative-selection instructions at least 10 business days before the tool scores them, and hold scoring until then.

A notice step in the hiring or promotion pipeline that sends the AEDT notice (careers site, job posting, or e-mail) and stores a per-person aedt_notice_sent_at timestamp; the notice explains how to request an alternative selection process or an accommodation. The scoring job (score_candidate, rank_applicants, the model call) reads that timestamp and skips anyone whose notice is missing or younger than the 10-business-day lead time. Anyone who asked for the alternative process goes to a human-run queue and never reaches the model. Keep the notice template in the repo (templates/aedt_notice) so its content is reviewable.

Where it goes: 1 application source code, 2 data models, 14 user-facing text.

What reviewers look for: a notice template naming the AEDT and the alternative-selection or accommodation route; a send step (send_aedt_notice, notify_candidate) that records a timestamp per candidate or employee; and a check of that timestamp in the scoring function before the model call. Candidates who requested the alternative process are filtered out before scoring, not merely flagged afterwards.

Example (Python batch screening + OpenAI SDK), before:

def screen_candidates(job_id):
    for c in db.candidates(job_id):
        resp = client.chat.completions.create(model=MODEL, messages=build_screen_prompt(c))
        db.save_score(c.id, resp.choices[0].message.content)

After:

NOTICE_LEAD_BUSINESS_DAYS = 10

def screen_candidates(job_id):
    for c in db.candidates(job_id):
        if c.alternative_selection_requested:
            human_queue.add(c.id)            # never scored by the AEDT
            continue
        sent = c.aedt_notice_sent_at
        if sent is None or np.busday_count(sent.date(), date.today()) < NOTICE_LEAD_BUSINESS_DAYS:
            continue                         # notice missing or too recent
        resp = client.chat.completions.create(model=MODEL, messages=build_screen_prompt(c))
        db.save_score(c.id, resp.choices[0].message.content)

Engineering guidance, not legal advice. Each provision below may add its own details (a cadence, a deadline, a required notice element): open it for those.

Every rule this guard addresses

Binding law — in force (1)