Initial Abigail immigration AI prototype
This commit is contained in:
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
.DS_Store
|
||||
14
README.md
Normal file
14
README.md
Normal 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
BIN
assets/abigail-hero.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 49 KiB |
143
assets/script.js
Normal file
143
assets/script.js
Normal 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
759
assets/styles.css
Normal 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
186
docs/产品蓝图.md
Normal 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
143
docs/签证服务范围.md
Normal 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
318
index.html
Normal 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>
|
||||
Reference in New Issue
Block a user