Profile   William Bairamian   Los Angeles

I work out how it works, then I build it.

A builder and thinker who followed the machinery of influence through four fields, and kept building each time.

19years in content and editorial
~20years with executives in politics and business
~100AI workflows built (approx.)
4organizations led or directed

2007 to 2013  /  scene one

Politics

Campaigns and advocacy, in the halls of power.

  • Presidential campaign regional field director
  • ANCA Western Region executive director
  • Federal, state and local officials
UCLAB.A. Political Science, minor French
ColumbiaMaster of International Affairs, security and defense policy
  • Set up and ran regional offices on compressed timelines
  • Led staff, volunteers, boards and fundraising across states
  • Messaging and media in California, Texas and North Carolina
↓

Comfort with elected officials and the halls of power became a voice for institutions.

2013 to 2018  /  scene two

Communi­cations

Iron Ladle Media, then the American University of Armenia.

  • CEO Iron Ladle Media
  • Director American University of Armenia
  • Crisis spokesperson
  • Institutional rebrand

Handled media for an international human rights event in Yerevan featuring George Clooney.

CNNcampaign placement
The New York Timescampaign placement
The Washington Postplacement and event
Financial Timesplacement and event
Los Angeles Timesearned coverage
Intl Herald Tribuneevent coverage
↓

Then I became obsessed with the systems behind the message, so I learned how they work.

2018 to now  /  scene three

Market­ing

Overlap with communications, and a drive to build the machinery.

  • CEO Litteratus
  • HubSpot
  • Airtable
  • n8n
  • relational databases
  • SEO
  • Closed-loop revenue reporting
↓

Then AI arrived. I took it by the reins instead of letting it run me over.

Now  /  scene four

AI, by the reins.

I have always followed cutting-edge tech, because it matters in communications and marketing. I design these systems and build them by directing AI coding agents. Names, credentials and client data stay private.

The communicator's system

Job-search agent

Runs on a schedule in the cloud: finds roles, screens them, writes tailored documents, fills employer forms, and counts a job as sent only after the employer's email arrives.

  • Cloudflare Workers, D1 and private R2 storage; no front end.
  • Every statement in a document is tied to a source.
  • A claim-locked ledger prevents duplicate applications.

The operations system

Agent control plane

A persistent service that coordinates AI agents, jobs, approvals and results, so work no longer depends on one chat session or an open laptop.

  • Node.js API and a separate background worker.
  • PostgreSQL on a private network; migrations on every deploy.
  • Persistent artifact storage; secrets from a vault.

The research lab

Backtesting engine

When I want to test an idea, I build the lab: parameterized, restartable research for options strategies across many instruments at once.

  • Sharded parallel workers with checkpoints.
  • Data read once from object storage, reused across tests.
  • A private-network market-data endpoint in the cloud.

The marketing system

Graphics renderer

A containerized service that generates consistent, branded real-estate graphics from property data, in place of hand-built design files.

Property data in, branded layout drawn, image out.

Say only what you can prove.

People and press every claim traceable.
Systems sent only when the employer confirms.

Plan for the bad day.

People and press crisis plans before the crisis.
Systems checkpoints, restarts, no blind retries.

Make it repeatable.

People and press planning cycles and procedures.
Systems schedules and a ledger of every attempt.

Proof in code

What the work looks like.

Small generic illustrations written for this page. No production code, names or data.

claim-lock.sql / one attempt per job

-- the primary key makes duplicate sends impossible
CREATE TABLE claims (
  job_id      TEXT PRIMARY KEY,
  state       TEXT NOT NULL,  -- reserved | confirmed | uncertain
  reserved_at TEXT NOT NULL
);

-- reserve atomically; zero rows changed means it is already held
INSERT INTO claims (job_id, state, reserved_at)
VALUES (?1, 'reserved', datetime('now'))
ON CONFLICT(job_id) DO NOTHING;

shard.py / restartable parallel work

# deterministic partition: worker k of n takes every n-th task
def my_tasks(all_tasks, k, n):
    return [t for i, t in enumerate(sorted(all_tasks)) if i % n == k]

for task in my_tasks(tasks, WORKER_INDEX, WORKER_COUNT):
    if checkpoint.done(task):
        continue                 # finished before a restart
    result = run(task)
    checkpoint.save(task, result)    # durable before moving on