Initial Abigail immigration AI prototype

This commit is contained in:
wangdequan
2026-06-16 23:41:10 -07:00
commit b257d15194
8 changed files with 1564 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
.DS_Store

14
README.md Normal file
View File

@@ -0,0 +1,14 @@
# Abigail Immigration AI
This folder contains a static prototype website and Chinese product documentation for an AI-assisted immigration platform inspired by TurboTax-style guided intake.
Open `index.html` in a browser to view the website.
Project structure:
- `index.html` - public website prototype
- `assets/styles.css` - visual system and responsive layout
- `assets/script.js` - interactive AI Pathfinder and document checklist
- `assets/abigail-hero.png` - local hero visual asset
- `docs/产品蓝图.md` - product strategy and feature blueprint
- `docs/签证服务范围.md` - visa/service coverage based on the provided screenshots

BIN
assets/abigail-hero.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

143
assets/script.js Normal file
View File

@@ -0,0 +1,143 @@
const routes = {
extraordinaryTemporary: {
title: "O-1A Extraordinary Ability",
summary:
"Best for a high-achieving founder, researcher, engineer, artist, or operator who can prove sustained acclaim.",
score: 92,
steps: ["Collect acclaim evidence", "Map facts to O-1 criteria", "Draft petition letter and expert letters"]
},
extraordinaryGreen: {
title: "EB-1A or EB-2 NIW",
summary:
"Best when the client has strong accomplishments and wants a permanent path without relying only on an employer sponsor.",
score: 88,
steps: ["Run EB-1A vs NIW matrix", "Build national importance narrative", "Prepare recommendation letter prompts"]
},
companyTemporary: {
title: "H-1B / TN / E-3 / H-1B1",
summary:
"Best when an employer can sponsor a defined specialty role and the applicant has matching credentials.",
score: 84,
steps: ["Validate role and credentials", "Collect employer documents", "Prepare LCA and petition data"]
},
managerTemporary: {
title: "L-1A / L-1B",
summary:
"Best for multinational transfers involving executives, managers, or specialized knowledge employees.",
score: 86,
steps: ["Confirm qualifying relationship", "Map foreign and U.S. duties", "Collect org charts and payroll evidence"]
},
investmentTemporary: {
title: "E-2 Treaty Investor",
summary:
"Best for founders or investors from treaty countries who have made or are making a substantial U.S. investment.",
score: 82,
steps: ["Confirm treaty nationality", "Organize investment evidence", "Draft business and source-of-funds story"]
},
aos: {
title: "Adjustment of Status Bundle",
summary:
"Best when the applicant is ready to file I-485 with related work authorization and travel documents.",
score: 79,
steps: ["Confirm priority date and eligibility", "Collect civil documents", "Prepare I-485, I-765, and I-131 data"]
},
renewal: {
title: "Extension, Amendment, or Change of Employer",
summary:
"Best when the existing immigration category is still viable but facts have changed or status needs to continue.",
score: 81,
steps: ["Compare current approval to new facts", "Identify material changes", "Refresh employer and status evidence"]
}
};
const form = document.querySelector("#intakeForm");
const routeTitle = document.querySelector("#routeTitle");
const routeSummary = document.querySelector("#routeSummary");
const fitMeter = document.querySelector("#fitMeter");
const fitScore = document.querySelector("#fitScore");
const nextSteps = document.querySelector("#nextSteps");
const packetButton = document.querySelector("#generatePacket");
function formValue(name) {
return new FormData(form).get(name);
}
function pickRoute() {
const strength = formValue("strength");
const goal = formValue("goal");
if (goal === "aos") return routes.aos;
if (goal === "renewal") return routes.renewal;
if (strength === "extraordinary" && goal === "green") return routes.extraordinaryGreen;
if (strength === "extraordinary") return routes.extraordinaryTemporary;
if (strength === "manager") return routes.managerTemporary;
if (strength === "investment") return routes.investmentTemporary;
return routes.companyTemporary;
}
function renderRoute() {
const route = pickRoute();
routeTitle.textContent = route.title;
routeSummary.textContent = route.summary;
fitScore.textContent = `${route.score}%`;
fitMeter.style.width = `${route.score}%`;
nextSteps.innerHTML = route.steps.map((step) => `<div>${step}</div>`).join("");
packetButton.textContent = "Generate case packet";
}
form.addEventListener("change", renderRoute);
renderRoute();
packetButton.addEventListener("click", () => {
packetButton.textContent = "Packet drafted for attorney review";
});
const detailCopy = {
passport: {
title: "Passport and I-94",
body: "Abigail checks name consistency, expiration dates, status history, admission class, and travel gaps.",
output: "Identity table, status timeline, and form-ready biographic data."
},
resume: {
title: "Resume and biography",
body: "The platform extracts employers, titles, education, publications, products, patents, and leadership history.",
output: "Chronology, achievement taxonomy, and role-specific narrative bullets."
},
awards: {
title: "Awards, press, publications",
body: "Abigail extracts dates, publication names, award criteria, circulation, and relevance to the proposed role.",
output: "Evidence summary, exhibit labels, expert letter talking points, and petition narrative bullets."
},
letters: {
title: "Recommendation letter inputs",
body: "Clients provide recommender context once. The AI creates letter outlines tailored to each legal criterion.",
output: "Recommender brief, draft letter structure, and conflict checks across letters."
},
company: {
title: "Company registration and job details",
body: "HR uploads company facts, role data, reporting lines, wage details, and signatory information into a reusable vault.",
output: "Employer support letter draft, role summary, org chart notes, and petition fields."
}
};
const uploadButtons = document.querySelectorAll(".upload-item");
const uploadDetail = document.querySelector("#uploadDetail");
uploadButtons.forEach((button) => {
button.addEventListener("click", () => {
uploadButtons.forEach((item) => item.classList.remove("is-active"));
button.classList.add("is-active");
const detail = detailCopy[button.dataset.doc];
uploadDetail.innerHTML = `
<p class="panel-label">Selected document</p>
<h3>${detail.title}</h3>
<p>${detail.body}</p>
<div class="draft-box">
<strong>AI draft output</strong>
<p>${detail.output}</p>
</div>
`;
});
});
document.querySelector('[data-doc="awards"]').classList.add("is-active");

759
assets/styles.css Normal file
View File

@@ -0,0 +1,759 @@
:root {
--ink: #17212b;
--muted: #5f6972;
--forest: #254c45;
--pine: #123d3a;
--sage: #d7eadc;
--mist: #edf4f3;
--ivory: #fbf8f1;
--paper: #ffffff;
--clay: #b86b50;
--brass: #c6a15b;
--blue: #426578;
--line: #dce3df;
--shadow: 0 24px 70px rgba(18, 61, 58, 0.16);
}
* {
box-sizing: border-box;
}
html {
scroll-behavior: smooth;
}
body {
margin: 0;
color: var(--ink);
background: var(--ivory);
font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
line-height: 1.5;
}
a {
color: inherit;
text-decoration: none;
}
button,
input {
font: inherit;
}
.site-header {
position: sticky;
top: 0;
z-index: 20;
display: grid;
grid-template-columns: 1fr auto 1fr;
align-items: center;
gap: 24px;
min-height: 72px;
padding: 0 40px;
background: rgba(251, 248, 241, 0.9);
border-bottom: 1px solid rgba(37, 76, 69, 0.12);
backdrop-filter: blur(18px);
}
.brand {
display: inline-flex;
align-items: center;
gap: 10px;
font-weight: 800;
font-size: 18px;
}
.brand-mark {
display: inline-grid;
place-items: center;
width: 36px;
height: 36px;
color: white;
background: var(--forest);
border-radius: 50%;
}
nav {
display: flex;
align-items: center;
gap: 24px;
color: var(--muted);
font-size: 14px;
font-weight: 700;
}
.nav-action {
justify-self: end;
min-width: 132px;
padding: 12px 18px;
color: white;
text-align: center;
font-size: 14px;
font-weight: 800;
background: var(--pine);
border-radius: 8px;
}
.hero {
position: relative;
min-height: 760px;
display: grid;
align-items: center;
padding: 88px 56px 38px;
overflow: hidden;
background: var(--pine);
}
.hero-media {
position: absolute;
inset: 0;
background:
linear-gradient(90deg, rgba(18, 61, 58, 0.96) 0%, rgba(18, 61, 58, 0.78) 38%, rgba(18, 61, 58, 0.22) 78%),
url("abigail-hero.png") center right / cover no-repeat;
}
.hero-copy {
position: relative;
z-index: 2;
max-width: 720px;
color: white;
}
.eyebrow {
margin: 0 0 14px;
color: var(--clay);
font-size: 13px;
font-weight: 900;
letter-spacing: 0;
text-transform: uppercase;
}
.hero .eyebrow {
color: #f0c89f;
}
h1,
h2,
h3,
p {
overflow-wrap: anywhere;
}
h1 {
max-width: 760px;
margin: 0;
font-size: 66px;
line-height: 1.02;
letter-spacing: 0;
}
.hero-lede {
max-width: 620px;
margin: 24px 0 0;
color: rgba(255, 255, 255, 0.86);
font-size: 20px;
}
.hero-actions {
display: flex;
flex-wrap: wrap;
gap: 12px;
margin-top: 34px;
}
.primary-button,
.secondary-button {
display: inline-flex;
align-items: center;
justify-content: center;
min-height: 48px;
padding: 13px 18px;
border: 1px solid transparent;
border-radius: 8px;
font-weight: 900;
cursor: pointer;
}
.primary-button {
color: white;
background: var(--clay);
}
.secondary-button {
color: var(--pine);
background: var(--paper);
border-color: rgba(18, 61, 58, 0.14);
}
.hero .secondary-button {
color: white;
background: rgba(255, 255, 255, 0.12);
border-color: rgba(255, 255, 255, 0.3);
}
.hero-status {
position: relative;
z-index: 2;
align-self: end;
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 1px;
width: min(920px, 100%);
margin-top: 70px;
background: rgba(255, 255, 255, 0.2);
border: 1px solid rgba(255, 255, 255, 0.24);
}
.hero-status div {
min-height: 116px;
padding: 20px;
background: rgba(18, 61, 58, 0.78);
}
.hero-status span {
display: block;
color: #f1d4bf;
font-size: 30px;
font-weight: 900;
}
.hero-status p {
max-width: 220px;
margin: 7px 0 0;
color: rgba(255, 255, 255, 0.78);
font-size: 14px;
}
.section {
padding: 88px 56px;
}
.section-heading {
max-width: 860px;
margin-bottom: 34px;
}
h2 {
margin: 0;
font-size: 42px;
line-height: 1.1;
letter-spacing: 0;
}
h3 {
margin: 0;
font-size: 22px;
line-height: 1.2;
letter-spacing: 0;
}
.promise-grid,
.workflow {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 16px;
}
.promise-grid article,
.workflow article,
.visa-list,
.intake-panel,
.result-panel,
.upload-detail,
.hr-dashboard,
.packet-ui {
background: var(--paper);
border: 1px solid var(--line);
border-radius: 8px;
box-shadow: 0 12px 36px rgba(23, 33, 43, 0.06);
}
.promise-grid article,
.workflow article {
min-height: 250px;
padding: 24px;
}
.mini-icon,
.step-number {
display: inline-grid;
place-items: center;
width: 38px;
height: 38px;
margin-bottom: 26px;
color: white;
background: var(--forest);
border-radius: 50%;
font-weight: 900;
font-size: 13px;
}
.promise-grid p,
.workflow p,
.visa-list strong,
.packet-copy p,
.hr-copy p,
.upload-detail p,
.cta-band p,
.site-footer p {
color: var(--muted);
}
.tool-band {
background: var(--mist);
}
.pathfinder-layout {
display: grid;
grid-template-columns: minmax(0, 1.15fr) minmax(340px, 0.85fr);
gap: 18px;
align-items: start;
}
.intake-panel {
padding: 26px;
}
fieldset {
margin: 0;
padding: 0 0 24px;
border: 0;
}
fieldset + fieldset {
padding-top: 24px;
border-top: 1px solid var(--line);
}
legend {
margin-bottom: 14px;
font-weight: 900;
}
label {
display: flex;
gap: 11px;
align-items: flex-start;
min-height: 44px;
padding: 10px 0;
color: #263442;
}
input[type="radio"] {
accent-color: var(--clay);
margin-top: 4px;
}
.result-panel {
position: sticky;
top: 92px;
padding: 28px;
}
.panel-label {
margin: 0 0 10px;
color: var(--clay);
font-size: 12px;
font-weight: 900;
text-transform: uppercase;
}
.confidence-row {
display: grid;
grid-template-columns: auto 1fr auto;
align-items: center;
gap: 12px;
margin: 24px 0;
font-size: 14px;
}
.meter {
height: 10px;
overflow: hidden;
background: #e2e9e5;
border-radius: 20px;
}
.meter span {
display: block;
width: 92%;
height: 100%;
background: var(--forest);
border-radius: inherit;
transition: width 180ms ease;
}
.next-steps {
display: grid;
gap: 10px;
margin-bottom: 20px;
}
.next-steps div {
padding: 12px;
background: #f6f8f4;
border: 1px solid var(--line);
border-radius: 8px;
color: var(--muted);
}
.full-width {
width: 100%;
}
.platform-band {
background: var(--ivory);
}
.packet-preview {
display: grid;
grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
gap: 28px;
align-items: center;
margin-top: 34px;
padding: 30px;
background: #163c39;
border-radius: 8px;
}
.packet-copy {
color: white;
}
.packet-copy .eyebrow {
color: #f0c89f;
}
.packet-copy p {
color: rgba(255, 255, 255, 0.76);
}
.packet-ui {
padding: 18px;
}
.packet-header,
.packet-row {
display: flex;
justify-content: space-between;
gap: 16px;
padding: 16px;
border-bottom: 1px solid var(--line);
}
.packet-header span,
.packet-row strong {
color: var(--forest);
}
.packet-row:last-child {
border-bottom: 0;
}
.packet-row.complete strong {
color: var(--forest);
}
.packet-row.active strong {
color: var(--blue);
}
.packet-row.warning strong {
color: var(--clay);
}
.visas-band {
background: #f6efe5;
}
.visa-columns {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 18px;
}
.visa-list {
padding: 24px;
}
.visa-list ul {
list-style: none;
margin: 18px 0 0;
padding: 0;
}
.visa-list li {
display: grid;
grid-template-columns: 120px 1fr;
gap: 18px;
padding: 17px 0;
border-top: 1px solid var(--line);
}
.visa-list span {
font-weight: 900;
}
.visa-list strong {
font-weight: 650;
}
.upload-band {
background: var(--paper);
}
.upload-layout,
.hr-layout {
display: grid;
grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
gap: 24px;
align-items: start;
}
.upload-list {
display: grid;
gap: 10px;
}
.upload-item {
display: grid;
grid-template-columns: 1fr auto;
gap: 12px;
width: 100%;
min-height: 62px;
padding: 16px;
text-align: left;
background: #f6f8f4;
border: 1px solid var(--line);
border-radius: 8px;
cursor: pointer;
}
.upload-item strong {
color: var(--clay);
}
.upload-item.is-done strong {
color: var(--forest);
}
.upload-item.is-active {
border-color: var(--forest);
box-shadow: 0 0 0 3px rgba(37, 76, 69, 0.13);
}
.upload-detail {
min-height: 340px;
padding: 28px;
}
.draft-box {
margin-top: 24px;
padding: 18px;
background: var(--mist);
border-left: 4px solid var(--forest);
}
.hr-band {
color: white;
background: var(--pine);
}
.hr-band .eyebrow {
color: #f0c89f;
}
.hr-copy p,
.hr-band .section-heading {
color: rgba(255, 255, 255, 0.78);
}
.hr-copy h3 {
color: white;
font-size: 30px;
}
.hr-dashboard {
color: var(--ink);
padding: 20px;
}
.dashboard-top {
display: flex;
justify-content: space-between;
gap: 16px;
padding-bottom: 18px;
border-bottom: 1px solid var(--line);
}
.dashboard-top span {
color: var(--forest);
font-weight: 900;
}
.dashboard-grid {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 10px;
margin: 18px 0;
}
.dashboard-grid div {
min-height: 104px;
padding: 14px;
background: #f8f4ea;
border: 1px solid var(--line);
border-radius: 8px;
}
.dashboard-grid span,
.case-table em {
display: block;
color: var(--muted);
font-size: 13px;
font-style: normal;
}
.dashboard-grid strong {
display: block;
margin-top: 18px;
color: var(--forest);
}
.case-table {
display: grid;
gap: 8px;
}
.case-table div {
display: grid;
grid-template-columns: 90px 1fr auto;
gap: 14px;
align-items: center;
padding: 14px;
background: #f6f8f4;
border-radius: 8px;
}
.cta-band {
display: flex;
justify-content: space-between;
gap: 28px;
align-items: center;
background: #e2eadf;
}
.cta-band div {
max-width: 760px;
}
.site-footer {
display: flex;
justify-content: space-between;
gap: 28px;
padding: 36px 56px;
background: #11191f;
color: white;
}
.site-footer p {
margin: 6px 0 0;
color: rgba(255, 255, 255, 0.68);
}
.legal-note {
max-width: 520px;
}
@media (max-width: 980px) {
.site-header {
grid-template-columns: 1fr auto;
padding: 0 22px;
}
nav {
display: none;
}
h1 {
font-size: 48px;
}
h2 {
font-size: 34px;
}
.hero {
min-height: 720px;
padding: 74px 24px 28px;
}
.hero-media {
background:
linear-gradient(90deg, rgba(18, 61, 58, 0.97) 0%, rgba(18, 61, 58, 0.88) 58%, rgba(18, 61, 58, 0.62) 100%),
url("abigail-hero.png") center / cover no-repeat;
}
.section {
padding: 64px 24px;
}
.promise-grid,
.workflow,
.pathfinder-layout,
.packet-preview,
.visa-columns,
.upload-layout,
.hr-layout {
grid-template-columns: 1fr;
}
.result-panel {
position: static;
}
.dashboard-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.site-footer,
.cta-band {
flex-direction: column;
align-items: flex-start;
}
}
@media (max-width: 620px) {
.nav-action {
min-width: auto;
padding: 10px 12px;
}
h1 {
font-size: 40px;
}
.hero-lede {
font-size: 17px;
}
.hero-status {
grid-template-columns: 1fr;
}
.hero-status div {
min-height: 88px;
}
.visa-list li,
.upload-item,
.case-table div,
.packet-header,
.packet-row {
grid-template-columns: 1fr;
}
.dashboard-grid {
grid-template-columns: 1fr;
}
}

186
docs/产品蓝图.md Normal file
View File

@@ -0,0 +1,186 @@
# Abigail Immigration AI 产品蓝图
## 一句话定位
Abigail 是一个面向个人、企业 HR、移民律师的 AI 移民申请平台:像 TurboTax 一样问简单问题,自动判断路径、整理表格数据、收集材料、起草支持文件,最后由律师审核和提交。
## 核心用户
1. 个人申请人:创始人、工程师、研究员、艺术家、投资人、被雇佣员工、调整身份申请人。
2. 企业 HR / People Team需要管理 H-1B、L-1、TN、PERM、EB-1C、员工延期和变更雇主。
3. 移民律师:不再反复追问基础信息,把时间放在策略、风险判断、材料质量和最终审核。
## 产品承诺
- 让客户用简单语言完成 intake而不是读复杂法律清单。
- 让 AI 初步判断最适合的签证路径,并列出替代路径和风险。
- 让材料清单根据签证类型、客户身份、雇主情况自动变化。
- 让 AI 根据材料和问答起草 support letter、petition letter、recommendation letter outline、attorney memo。
- 让 HR 一次性上传公司资料,未来同一公司所有案件可以复用。
- 让律师在最后阶段审核结构化材料、风险标签和 AI 草稿。
## 产品模块
### 1. AI Pathfinder
AI 通过一组普通人能听懂的问题判断初步路径:
- 是否有雇主 sponsor
- 是否有 extraordinary ability 证据
- 是否是跨国公司调派
- 是否有 treaty nationality 和投资
- 是否要临时工作签证还是绿卡
- 是否是延期、amendment、change of employer
- 是否需要 AOS、EAD、AP
输出:
- 推荐签证路径
- 备用路径
- 证据强弱评分
- 缺失材料
- 律师需要重点审核的问题
### 2. Form Data Builder
把客户回答转成表格字段:
- 个人身份信息
- 地址、旅行、身份历史
- 教育和工作经历
- 雇主和职位信息
- 公司注册、规模、财务、组织架构
- 家庭成员和 dependent 信息
目标不是让 AI 自动提交,而是让律师拿到 form-ready 的结构化数据。
### 3. Evidence Checklist
系统按签证类型自动生成材料清单:
- 身份和身份历史
- 雇主文件
- 职位和工资文件
- 成就、媒体、奖项、出版、专利、引用、商业影响
- 推荐人信息
- 公司证明、组织架构、财务、办公室、员工信息
- AOS 所需 civil documents
每个文件状态:
- Missing
- Uploaded
- Needs clarification
- Verified
- Attorney reviewed
### 4. Support Letter Studio
AI 起草但不替代律师判断:
- O-1 / EB-1 petition letter
- NIW proposed endeavor narrative
- Employer support letter
- Expert recommendation letter outline
- PERM role summary
- RFE response outline
- Exhibit index
每一段草稿都应该能追溯到原始材料或客户回答。
### 5. HR Vault
公司只上传一次:
- 公司注册信息
- EIN / tax documents
- 财务资料
- 融资、客户、产品、组织架构
- 签字人信息
- Job description library
- Wage / worksite / reporting line
- 员工基础资料
HR 可以看到:
- active cases
- blockers
- pending employee action
- pending HR action
- attorney review status
- upcoming expiration dates
### 6. Attorney Review Layer
律师端重点不是重新收集材料,而是审核:
- 路径是否正确
- 风险是否充分识别
- 表格数据是否一致
- 支持文件是否有证据支撑
- 是否需要补材料
- 是否可以提交
## MVP 页面结构
1. 首页品牌定位、AI Pathfinder、签证覆盖、HR portal、律师审核层。
2. Intake问答式路径判断。
3. Case Workspace材料清单、上传、状态、AI 草稿。
4. HR Portal公司资料库、员工案件、复用资料。
5. Attorney Dashboard风险标签、草稿审核、表格数据、提交前 checklist。
6. Pricing / Services按签证类型展示固定费用和包含内容。
## 品牌方向
名称Abigail 或 abigail
气质:
- 高端、冷静、值得信任
- 法律专业感强,但语言简单
- 科技感来自产品体验,不靠浮夸视觉
- 适合创始人、工程师、科研人才、公司 HR
建议 tagline
- Immigration work, rebuilt around answers.
- The AI intake layer for attorney-led immigration.
- From first question to attorney-ready filing.
## 法律与安全边界
必须明确:
- AI 不单独提供法律意见。
- 所有移民策略和最终文件必须由 licensed attorney 审核。
- 系统输出应显示依据、来源材料和不确定性。
- USCIS 空白表格和说明本身是公开免费的。
- 客户和律师关系应通过单独 engagement agreement 建立。
安全要求:
- 文件加密存储
- 权限分级个人、HR、律师、管理员
- 审计日志
- PII 最小化
- 下载和删除权限控制
- AI 训练数据隔离
- SOC 2 路线图
## 第一阶段开发优先级
1. O-1A / EB-1A / EB-2 NIW intake 和材料清单。
2. H-1B / L-1 / TN employer-sponsored intake。
3. HR Vault 基础版。
4. AI support letter draft。
5. Attorney review dashboard。
6. Pricing and services page。
## 竞品参考提炼
- Alma强在企业和个人双入口、路径策略、案件进度可视化、律师团队兜底。
- Boundless强在个人和企业移民服务覆盖、表格和材料流程、透明服务承诺。
- Envoy Global强在企业全球移民、HR 使用场景、program management。
- Deel Immigration强在 HR 平台、员工流动、签证资格评估、renewal 和 tracker。
Abigail 的差异化应该是:更强的 AI intake、更清晰的证据到草稿链路、更适合律师审核的结构化 case packet。

143
docs/签证服务范围.md Normal file
View File

@@ -0,0 +1,143 @@
# Abigail 签证与服务范围
以下范围根据你提供的截图整理,后续可扩展为网站 pricing 页面和后台 case type 配置。
## Non-Immigrant Visas
### O-1
| 服务 | 参考价格 |
| --- | ---: |
| O-1 New | $8,000 |
| O-1 Extension | $3,000 |
| O-1 Change of Employer | $3,000 |
| O-1 Amendment | $3,000 |
### H-1B
| 服务 | 参考价格 |
| --- | ---: |
| H-1B Lottery Registration | $500 |
| H-1B Cap / Cap-Exempt | $3,500 |
| H-1B Extension | $3,000 |
| H-1B Change of Employer | $3,000 |
| H-1B Amendment | $3,000 |
### L-1
| 服务 | 参考价格 |
| --- | ---: |
| L-1 Initial / New Office | $6,000 |
| L-1 Extension | $3,000 |
| L-1 Initial Company Blanket application | $8,000 |
| L-1 under approved Company Blanket | $3,000 |
### TN
| 服务 | 参考价格 |
| --- | ---: |
| TN New - USCIS | $3,000 |
| TN New - Border / Consulate | $3,000 |
| TN Extension | $2,500 |
| TN Change of Employer | $2,500 |
| TN Amendment | $2,500 |
### E-3
| 服务 | 参考价格 |
| --- | ---: |
| E-3 - USCIS | $3,500 |
| E-3 - Consulate | $3,500 |
| E-3 Extension | $3,000 |
| E-3 Change of Employer | $3,000 |
| E-3 Amendment | $3,000 |
### H-1B1
| 服务 | 参考价格 |
| --- | ---: |
| H-1B1 - USCIS | $3,500 |
| H-1B1 - Consulate | $3,500 |
| H-1B1 Extension | $3,000 |
| H-1B1 Change of Employer | $3,000 |
| H-1B1 Amendment | $3,000 |
### Other
| 服务 | 参考价格 |
| --- | ---: |
| J-1 No Objection Waiver | $4,000 |
| STEM OPT EAD Initial or Extension | $250 |
| STEM Training Plan | $1,000 |
| TPS (I-821 + I-765) | $2,000 |
| DACA EAD Renewals | $1,500 |
| Agent Fee for O-1 | $1,000 |
| I-539 dependent, per dependent | $500 |
## Immigrant Visas
### EB-1
| 服务 | 参考价格 |
| --- | ---: |
| EB-1A | $10,000 |
| EB-1B | $10,000 |
| EB-1C | $10,000 |
### EB-2 NIW
| 服务 | 参考价格 |
| --- | ---: |
| EB-2 NIW | $10,000 |
| EB-1 / EB-2 NIW with an approved O-1 | $7,000 |
### PERM
| 服务 | 参考价格 |
| --- | ---: |
| PERM Labor Cert | $8,000 |
### PERM-Based Green Cards
| 服务 | 参考价格 |
| --- | ---: |
| I-140, PERM based: EB-2 | $4,000 |
| I-140, PERM based: EB-3 | $4,000 |
### AOS
| 服务 | 参考价格 |
| --- | ---: |
| Adult AOS bundle: I-485, I-765, I-131 | $2,000 |
| Child U14 AOS bundle: I-485, I-131 | $1,500 |
| Child U14 AOS bundle: I-485, I-765, I-131 | $2,000 |
### Other
| 服务 | 参考价格 |
| --- | ---: |
| Consular Green Card | $2,500 |
| Renewal of Advance Parole | $1,500 |
| Renewal of EAD based on pending AOS | $1,500 |
## What's Included / Not Included 草案
可包含:
- AI intake
- 材料清单
- 文件上传和基础检查
- support letter / petition draft
- attorney review
- final filing checklist
- client and HR status portal
通常不包含:
- RFE response
- FedEx、printing、copying、postage 等行政费用
- 超出范围的持续咨询
- 政府 filing fee
- premium processing fee
- 第三方翻译、公证、评估费用
- 软件订阅或 enterprise implementation fee

318
index.html Normal file
View File

@@ -0,0 +1,318 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Abigail Immigration AI</title>
<meta
name="description"
content="Abigail is an AI-assisted immigration platform for individuals, employers, HR teams, and attorney review."
/>
<link rel="stylesheet" href="assets/styles.css" />
</head>
<body>
<header class="site-header">
<a class="brand" href="#top" aria-label="Abigail home">
<span class="brand-mark">A</span>
<span>Abigail</span>
</a>
<nav aria-label="Main navigation">
<a href="#pathfinder">AI Pathfinder</a>
<a href="#platform">Platform</a>
<a href="#visas">Visas</a>
<a href="#hr">For HR</a>
</nav>
<a class="nav-action" href="#pathfinder">Start intake</a>
</header>
<main id="top">
<section class="hero" aria-labelledby="hero-title">
<div class="hero-media" aria-hidden="true"></div>
<div class="hero-copy">
<p class="eyebrow">AI immigration intake + attorney review</p>
<h1 id="hero-title">Immigration work, rebuilt around answers.</h1>
<p class="hero-lede">
Abigail asks plain-language questions, recommends the strongest visa pathway,
prepares form-ready data, organizes evidence, and drafts support materials for
attorney review.
</p>
<div class="hero-actions">
<a class="primary-button" href="#pathfinder">Find the right path</a>
<a class="secondary-button" href="#hr">See HR portal</a>
</div>
</div>
<div class="hero-status" aria-label="Platform metrics">
<div>
<span>90%</span>
<p>casework prepared before attorney review</p>
</div>
<div>
<span>1</span>
<p>shared workspace for applicant, HR, and counsel</p>
</div>
<div>
<span>24/7</span>
<p>intake, checklist, and draft generation</p>
</div>
</div>
</section>
<section class="section intro-band" aria-labelledby="intro-title">
<div class="section-heading">
<p class="eyebrow">Built for immigrants, companies, and lawyers</p>
<h2 id="intro-title">A TurboTax-style flow for U.S. immigration.</h2>
</div>
<div class="promise-grid">
<article>
<span class="mini-icon">01</span>
<h3>Choose the visa</h3>
<p>Adaptive questions map the client to O-1, H-1B, L-1, TN, E-2, EB-1, NIW, PERM, AOS, and related paths.</p>
</article>
<article>
<span class="mini-icon">02</span>
<h3>Prepare the forms</h3>
<p>Answers are converted into structured case data that can populate immigration forms and attorney workpapers.</p>
</article>
<article>
<span class="mini-icon">03</span>
<h3>Build the evidence</h3>
<p>The platform requests the right documents, checks gaps, and turns raw achievements into support letter drafts.</p>
</article>
<article>
<span class="mini-icon">04</span>
<h3>Bring in HR once</h3>
<p>Company registration, job, wage, and employee data live in one reusable HR vault for every future case.</p>
</article>
</div>
</section>
<section id="pathfinder" class="section tool-band" aria-labelledby="pathfinder-title">
<div class="section-heading">
<p class="eyebrow">AI Pathfinder</p>
<h2 id="pathfinder-title">Answer a few questions. See the likely pathway.</h2>
</div>
<div class="pathfinder-layout">
<form class="intake-panel" id="intakeForm">
<fieldset>
<legend>Who is this case for?</legend>
<label><input type="radio" name="profile" value="founder" checked /> Founder or executive</label>
<label><input type="radio" name="profile" value="employee" /> Sponsored employee</label>
<label><input type="radio" name="profile" value="individual" /> Individual applicant</label>
<label><input type="radio" name="profile" value="family" /> Family or adjustment case</label>
</fieldset>
<fieldset>
<legend>What is the strongest fact pattern?</legend>
<label><input type="radio" name="strength" value="extraordinary" checked /> Awards, press, publications, judging, or major impact</label>
<label><input type="radio" name="strength" value="company" /> Employer sponsorship with a defined role</label>
<label><input type="radio" name="strength" value="manager" /> Multinational manager or specialized knowledge</label>
<label><input type="radio" name="strength" value="investment" /> Treaty investor or founder investment</label>
</fieldset>
<fieldset>
<legend>What does the client need?</legend>
<label><input type="radio" name="goal" value="temporary" checked /> Temporary work authorization</label>
<label><input type="radio" name="goal" value="green" /> Green card strategy</label>
<label><input type="radio" name="goal" value="renewal" /> Extension, amendment, or change of employer</label>
<label><input type="radio" name="goal" value="aos" /> Adjustment of status bundle</label>
</fieldset>
<fieldset>
<legend>Timing</legend>
<label><input type="radio" name="timing" value="urgent" checked /> Needs fast filing</label>
<label><input type="radio" name="timing" value="standard" /> Standard timeline</label>
</fieldset>
</form>
<aside class="result-panel" aria-live="polite">
<p class="panel-label">Recommended route</p>
<h3 id="routeTitle">O-1A Extraordinary Ability</h3>
<p id="routeSummary">
Best for a high-achieving founder, researcher, engineer, artist, or operator who can prove sustained acclaim.
</p>
<div class="confidence-row">
<span>Fit score</span>
<div class="meter"><span id="fitMeter"></span></div>
<strong id="fitScore">92%</strong>
</div>
<div class="next-steps" id="nextSteps"></div>
<button class="primary-button full-width" type="button" id="generatePacket">Generate case packet</button>
</aside>
</div>
</section>
<section id="platform" class="section platform-band" aria-labelledby="platform-title">
<div class="section-heading">
<p class="eyebrow">The Abigail workflow</p>
<h2 id="platform-title">From intake to attorney-ready packet.</h2>
</div>
<div class="workflow">
<article>
<span class="step-number">1</span>
<h3>Plain-language intake</h3>
<p>Clients answer simple questions. The AI asks follow-ups only when facts change the legal path.</p>
</article>
<article>
<span class="step-number">2</span>
<h3>Evidence checklist</h3>
<p>Each visa gets a live checklist for identity, status, company, role, achievements, and supporting exhibits.</p>
</article>
<article>
<span class="step-number">3</span>
<h3>Drafting engine</h3>
<p>Support letters, petition narratives, recommendation letter outlines, and attorney memos are drafted from verified facts.</p>
</article>
<article>
<span class="step-number">4</span>
<h3>Lawyer review layer</h3>
<p>Attorneys review risk flags, missing evidence, AI drafts, and final forms before anything is filed.</p>
</article>
</div>
<div class="packet-preview">
<div class="packet-copy">
<p class="eyebrow">Attorney-ready workspace</p>
<h3>Every case becomes a structured file.</h3>
<p>
Abigail separates raw uploads from verified facts, flags contradictions, and keeps a clear audit trail for the lawyer.
</p>
</div>
<div class="packet-ui" aria-label="Case packet preview">
<div class="packet-header">
<strong>O-1A Packet · Priya S.</strong>
<span>Attorney review</span>
</div>
<div class="packet-row complete"><span>Identity + status</span><strong>Complete</strong></div>
<div class="packet-row complete"><span>Achievement matrix</span><strong>Complete</strong></div>
<div class="packet-row active"><span>Support letter drafts</span><strong>7 drafts</strong></div>
<div class="packet-row warning"><span>Press translation</span><strong>Needed</strong></div>
</div>
</div>
</section>
<section id="visas" class="section visas-band" aria-labelledby="visas-title">
<div class="section-heading">
<p class="eyebrow">Visa coverage</p>
<h2 id="visas-title">Built around the cases you already handle.</h2>
</div>
<div class="visa-columns">
<article class="visa-list">
<h3>Non-Immigrant Visas</h3>
<ul>
<li><span>O-1</span><strong>new, extension, employer change, amendment</strong></li>
<li><span>H-1B</span><strong>lottery, cap/cap-exempt, extension, amendment</strong></li>
<li><span>L-1</span><strong>new office, extension, blanket, L-1A, L-1B</strong></li>
<li><span>TN</span><strong>USCIS, border/consulate, extension, employer change</strong></li>
<li><span>E-2 / E-3 / H-1B1</span><strong>consular and USCIS routes</strong></li>
<li><span>Other</span><strong>J-1 waiver, STEM OPT, TPS, DACA, I-539</strong></li>
</ul>
</article>
<article class="visa-list">
<h3>Immigrant Visas</h3>
<ul>
<li><span>EB-1</span><strong>EB-1A, EB-1B, EB-1C</strong></li>
<li><span>EB-2 NIW</span><strong>self-petition and O-1-to-NIW strategy</strong></li>
<li><span>PERM</span><strong>labor certification and I-140 handoff</strong></li>
<li><span>EB-2 / EB-3</span><strong>PERM-based green card workflow</strong></li>
<li><span>AOS</span><strong>I-485, I-765, I-131 adult and child bundles</strong></li>
<li><span>Consular green card</span><strong>document and interview prep</strong></li>
</ul>
</article>
</div>
</section>
<section id="uploads" class="section upload-band" aria-labelledby="uploads-title">
<div class="section-heading">
<p class="eyebrow">Evidence collection</p>
<h2 id="uploads-title">The checklist changes with the case.</h2>
</div>
<div class="upload-layout">
<div class="upload-list">
<button class="upload-item is-done" type="button" data-doc="passport">
<span>Passport and I-94</span><strong>Uploaded</strong>
</button>
<button class="upload-item is-done" type="button" data-doc="resume">
<span>Resume and biography</span><strong>Uploaded</strong>
</button>
<button class="upload-item" type="button" data-doc="awards">
<span>Awards, press, publications</span><strong>Needs review</strong>
</button>
<button class="upload-item" type="button" data-doc="letters">
<span>Recommendation letter inputs</span><strong>Drafting</strong>
</button>
<button class="upload-item" type="button" data-doc="company">
<span>Company registration and job details</span><strong>Waiting on HR</strong>
</button>
</div>
<div class="upload-detail" id="uploadDetail">
<p class="panel-label">Selected document</p>
<h3>Awards, press, publications</h3>
<p>
Abigail extracts dates, publication names, award criteria, circulation, and relevance to the proposed role.
</p>
<div class="draft-box">
<strong>AI draft output</strong>
<p>Evidence summary, exhibit labels, expert letter talking points, and petition narrative bullets.</p>
</div>
</div>
</div>
</section>
<section id="hr" class="section hr-band" aria-labelledby="hr-title">
<div class="section-heading">
<p class="eyebrow">For HR and employers</p>
<h2 id="hr-title">Company data uploaded once. Reused across matters.</h2>
</div>
<div class="hr-layout">
<div class="hr-copy">
<h3>One source of truth for company immigration.</h3>
<p>
HR can upload registration documents, EIN confirmations, financials, organizational charts, job descriptions,
wage data, employee records, and signatory information once. Abigail reuses verified company facts across
H-1B, L-1, PERM, EB-1C, TN, and amendment workflows.
</p>
<a class="secondary-button" href="#pathfinder">Run a sponsored case</a>
</div>
<div class="hr-dashboard" aria-label="HR dashboard preview">
<div class="dashboard-top">
<strong>Abigail HR Vault</strong>
<span>18 active cases</span>
</div>
<div class="dashboard-grid">
<div><span>Company profile</span><strong>Verified</strong></div>
<div><span>Signatories</span><strong>3 ready</strong></div>
<div><span>Job library</span><strong>42 roles</strong></div>
<div><span>Case blockers</span><strong>4 open</strong></div>
</div>
<div class="case-table">
<div><span>Marco L.</span><strong>H-1B transfer</strong><em>Wage review</em></div>
<div><span>Lin W.</span><strong>L-1B extension</strong><em>Drafting</em></div>
<div><span>Priya S.</span><strong>O-1A</strong><em>Attorney review</em></div>
</div>
</div>
</div>
</section>
<section class="section cta-band" aria-labelledby="cta-title">
<div>
<p class="eyebrow">Abigail Legal AI</p>
<h2 id="cta-title">A premium immigration firm, with software at the center.</h2>
<p>
The product promise is simple: clients move faster, HR stops repeating itself,
and attorneys spend their time on judgment instead of chasing basic facts.
</p>
</div>
<a class="primary-button" href="#pathfinder">Start with AI intake</a>
</section>
</main>
<footer class="site-footer">
<div>
<strong>Abigail</strong>
<p>AI-assisted immigration case preparation for attorney-led legal services.</p>
</div>
<p class="legal-note">
Prototype content only. Immigration guidance must be reviewed by a licensed attorney before use.
</p>
</footer>
<script src="assets/script.js"></script>
</body>
</html>